diff --git a/emulators/winuae.yml b/emulators/winuae.yml index 5bd1a1a5..1a3c4cfe 100644 --- a/emulators/winuae.yml +++ b/emulators/winuae.yml @@ -35,7 +35,16 @@ notes: | file name matches the configured one (rommgr.cpp:2428-2461). The Kickstart entries below are named after other profiles' names for the same dumps: the code opens none of those names. kickstart_ext_rom_file is opened as given, and a missing extended ROM - only raises a notice (memory.cpp:1833-1849). + only raises a notice (memory.cpp:1833-1849). The machine then starts on + the Kickstart alone with nothing mapped in place of the extended ROM, and + the AROS replacement is used only when the Kickstart itself is missing + (memory.cpp:3055-3063). The CD drivers and CD boot code are resident + modules of the extended ROMs: cdstrap, cd.device and cdfs.library in the + CD32 ROM, cdtv.device, cdfs.library and cdstrap in the CDTV ROM. The CD32 + and CDTV Kickstarts carry none. The CD32 quickstart model and the base + CDTV model have no floppy drive (cfgfile.cpp:9375-9379, 9405-9406), and + both ask for the extended ROM (cfgfile.cpp:9390-9395, 9414-9423), so + without it no CD is read or booted. CDTV and A600/A1200 internal devices are enabled with :ENABLED, which needs no ROM file. Cloanto encrypted ROMs are decoded with rom.key, searched in the @@ -126,7 +135,6 @@ files: - name: "amiga-ext-130-cdtv.rom" system: commodore-cdtv required: true - hle_fallback: true size: 262144 crc32: "42baa124" sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be" diff --git a/tests/test_audit_regressions.py b/tests/test_audit_regressions.py index b05b3418..9ebf16ab 100644 --- a/tests/test_audit_regressions.py +++ b/tests/test_audit_regressions.py @@ -6147,5 +6147,23 @@ class SkipPacksHelpSaysWhatRuns(unittest.TestCase): self.assertEqual(skipped, {"4", "4b", "4c", "6"}) +class AmigaCdDriversLiveInTheExtendedRom(unittest.TestCase): + """WinUAE starts without the CD32 or CDTV extended ROM, but cd.device, + cdtv.device, cdfs.library and cdstrap are resident modules of those ROMs + and the Kickstarts carry none. Its AROS replacement stands in only for a + missing Kickstart (memory.cpp:3055-3063), so the CDTV ROM has no + fallback to downgrade its absence.""" + + def test_both_extended_roms_are_required_without_fallback(self): + profile = yaml.safe_load( + (ROOT / "emulators" / "winuae.yml").read_text(encoding="utf-8") + ) + entries = {f["name"]: f for f in profile["files"]} + for name in ("amiga-ext-310-cd32.rom", "amiga-ext-130-cdtv.rom"): + with self.subTest(name=name): + self.assertIs(entries[name]["required"], True) + self.assertNotIn("hle_fallback", entries[name]) + + if __name__ == "__main__": unittest.main()