fix: state why WinUAE needs the CD extended ROMs

A missing extended ROM only raises a notice (memory.cpp:1833-1849), but
the machine then runs on the Kickstart alone. cdstrap, cd.device,
cdtv.device and cdfs.library are resident modules of the CD32 and CDTV
extended ROMs and absent from their Kickstarts, the CD32 and base CDTV
models have no floppy drive (cfgfile.cpp:9375-9379, 9405-9406), so no CD
is read or booted. Both entries stay required. The AROS replacement
stands in only for a missing Kickstart (memory.cpp:3055-3063), so the
CDTV entry loses hle_fallback.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 06:06:35 +02:00
1 parent d678e6acfa
commit 7056dd84ea
2 files changed
+28 -2

No files matched your search

+10 -2
View File
@@ -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"
+18
View File
@@ -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()