diff --git a/emulators/ares.yml b/emulators/ares.yml index 6362bf7f..72ed6c9f 100644 --- a/emulators/ares.yml +++ b/emulators/ares.yml @@ -11,6 +11,7 @@ mode: standalone systems: - arcade - atari-2600 + - atari-5200 - colecovision - myvision - famicom @@ -51,7 +52,8 @@ systems: notes: | Multi-system emulator by Near (byuu), successor to higan/bsnes. Focuses on - accuracy and preservation. 38 systems emulated. + accuracy and preservation. 41 emulators registered at this pin + (desktop-ui/emulator/emulators.cpp). Firmware identification uses SHA256 hashes. Filenames are user-defined; ares scans a configured directory and matches by hash. EmuDeck installs ares as @@ -89,6 +91,16 @@ notes: | SuperGrafx, SG-1000, SC-3000. files: + # --- Atari 5200 --- + - name: 5200.rom + system: atari-5200 + required: true + size: 2048 + sha256: "06b250f18983d058c0f156ce7ee88ae48b6eaf11e6f10f21dccf6ac7ffb6a6af" + validation: [size, sha256] + description: "Atari 5200 BIOS (NTSC-U four-port)" + source_ref: "desktop-ui/emulator/atari-5200.cpp:12-16, desktop-ui/emulator/atari-5200.cpp:82-88, mia/system/atari-5200.cpp:7-10" + # --- ColecoVision --- - name: colecovision.rom system: colecovision diff --git a/tests/test_profile_checks.py b/tests/test_profile_checks.py index b74e3787..b38c0ce4 100644 --- a/tests/test_profile_checks.py +++ b/tests/test_profile_checks.py @@ -132,5 +132,21 @@ class Atari800SystemRoms(_Probe): self.assertFalse(self.accepts("atari800", name, b"\1" * size)) +class AresAtari5200Bios(unittest.TestCase): + """ares registers an Atari 5200 firmware by sha256 and refuses to load a + game without it (desktop-ui/emulator/atari-5200.cpp:12-16, 82-88 at + 4cb8d92); the profile left the system out, so no pack carried the BIOS.""" + + def test_the_profile_declares_it(self): + profile = _profile("ares") + self.assertIn("atari-5200", profile["systems"]) + entry = next(f for f in profile["files"] if f.get("system") == "atari-5200") + self.assertTrue(entry["required"]) + self.assertEqual( + entry["sha256"], + "06b250f18983d058c0f156ce7ee88ae48b6eaf11e6f10f21dccf6ac7ffb6a6af", + ) + + if __name__ == "__main__": unittest.main()