mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 12:19:13 -05:00
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:
1 parent
d678e6acfa
commit
7056dd84ea
2 files changed
+28
-2
No files matched your search
+10
-2
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user