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.
This commit is contained in:
Abdessamad Derraz committed 2026-10-19 23:11:44 +02:00
1 parent 8fd8437351
commit 843f0ddc0e
2 files changed
+32 -5

No files matched your search

+5 -5
View File
@@ -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"
+27
View File
@@ -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()