From 843f0ddc0e9eefe92162b1e04d5a43bfcecc9059 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 19 Oct 2026 23:11:44 +0200 Subject: [PATCH] fix: ares labels name ares's own dumps ares matches its firmware by sha256 and opens no file by name, so its entry names are labels. Five reused names that other cores give to different dumps (MSX.ROM, MSX2.ROM, bios_CD_E/J/U.bin). On RetroBat that put ares's revision where the platform pins another, slots blamed the platform's declaration, and the pack dropped ares's own dump behind the platform's file. The labels now name the dumps the hashes identify. --- emulators/ares.yml | 10 +++++----- tests/test_audit_regressions.py | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/emulators/ares.yml b/emulators/ares.yml index 324c04c8..afe61555 100644 --- a/emulators/ares.yml +++ b/emulators/ares.yml @@ -168,7 +168,7 @@ files: # --- Mega CD --- # Also used by Mega CD 32X (desktop-ui/emulator/mega-cd-32x.cpp) - - name: bios_CD_U.bin + - name: SegaCDBIOS9303.bin system: mega-cd region: [north-america] required: true @@ -177,7 +177,7 @@ files: description: "Mega CD / Sega CD BIOS (US)" source_ref: "desktop-ui/emulator/mega-cd.cpp:17" - - name: bios_CD_J.bin + - name: jp_mcd2_921222.bin system: mega-cd region: [japan] required: true @@ -186,7 +186,7 @@ files: description: "Mega CD BIOS (Japan)" source_ref: "desktop-ui/emulator/mega-cd.cpp:18" - - name: bios_CD_E.bin + - name: eu_mcd2_9303.bin system: mega-cd region: [europe, oceania] required: true @@ -216,7 +216,7 @@ files: source_ref: "desktop-ui/emulator/mega-ld.cpp:17" # --- MSX --- - - name: MSX.ROM + - name: msx-japanese.rom system: msx required: true sha256: "413a2b601a94b3792e054be2439cc77a1819cceadbfa9542f88d51c7480f2ef0" @@ -225,7 +225,7 @@ files: source_ref: "desktop-ui/emulator/msx.cpp:19" # --- MSX2 --- - - name: MSX2.ROM + - name: MSX2J.rom system: msx2 required: true sha256: "0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1" diff --git a/tests/test_audit_regressions.py b/tests/test_audit_regressions.py index 20ee27c7..9a78a0e5 100644 --- a/tests/test_audit_regressions.py +++ b/tests/test_audit_regressions.py @@ -5220,5 +5220,32 @@ class VerifyPacksRefusesWhatItCannotDo(unittest.TestCase): self.assertFalse((Path(out) / ".lock").exists()) +class AHashScanningCoreContradictsNoPlatform(unittest.TestCase): + """ares finds its firmware by sha256 in a folder and opens no file by + name, so its entries' names are labels. Labels reused from other dumps + (MSX2.ROM, bios_CD_U.bin) put ares's revision on a path where RetroBat + pins another: slots called RetroBat's declaration wrong, and the pack + dropped ares's own dump behind the platform's.""" + + def test_no_conflict_names_ares(self): + import json + + from scripts import slots + from scripts.common import list_registered_platforms, load_emulator_profiles + + root = ROOT + if not (root / "database.json").exists(): + self.skipTest("database.json is not built") + profiles = load_emulator_profiles(str(root / "emulators")) + db = json.loads((root / "database.json").read_text(encoding="utf-8")) + claimed = [ + (platform, conflict.destination) + for platform in list_registered_platforms(str(root / "platforms"), include_archived=True) + for conflict in slots.scan_platform(platform, profiles, db, str(root / "platforms")) + if any(claim.emulator == "ares" for claim in conflict.profile_claims) + ] + self.assertEqual(claimed, []) + + if __name__ == "__main__": unittest.main()