From 969907e29b102fbe0c04f5d08e18c6efcbe27baa Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 18:10:05 +0100 Subject: [PATCH] feat: name the atari800 rom config keys atari800 reads each ROM path from its config key (sysrom.c:123-149, 616-623) and identifies a file by the CRC32 of its slot (sysrom.c:89- 108). AmberELEC's atari800.cfg sets ROM_5200_A, ROM_BASIC_A and ROM_BASIC_B to 5200a.rom, BASIC_Rev_A.rom and BASIC_Rev_B.rom. --- emulators/atari800.yml | 57 ++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/emulators/atari800.yml b/emulators/atari800.yml index 85a78c4c4..f10dff6c7 100644 --- a/emulators/atari800.yml +++ b/emulators/atari800.yml @@ -49,7 +49,8 @@ files: note: > Atari 5200 BIOS (original). Mapped at $F800-$FFFF. Altirra 5200 OS is used when this file is absent. - source_ref: "source atari800/src/sysrom.c:103-104, source atari800/src/sysrom.c:290" + config_key: "ROM_5200" + source_ref: "source atari800/src/sysrom.c:103-104, source atari800/src/sysrom.c:290, source atari800/src/sysrom.c:138, source atari800/src/sysrom.c:616-623" - name: "atari-5200-os-2port.rom" path: "atari-5200-os-2port.rom" @@ -65,7 +66,8 @@ files: as SYSROM_5200A, and the automatic choice for the 5200 tries it after the original OS and before the Altirra 5200 OS. ROM_5200_A is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:104, source atari800/src/sysrom.c:139, source atari800/src/sysrom.c:317-420, source atari800/src/sysrom.c:473, source atari800/src/sysrom.c:674, source atari800/src/atari.c:537" + config_key: "ROM_5200_A" + source_ref: "source atari800/src/sysrom.c:104, source atari800/src/sysrom.c:139, source atari800/src/sysrom.c:317-420, source atari800/src/sysrom.c:473, source atari800/src/sysrom.c:674, source atari800/src/atari.c:537, source atari800/src/sysrom.c:139, source atari800/src/sysrom.c:616-623" # -- Atari BASIC ROM -- # Atari BASIC interpreter (8 KB). Three known revisions: @@ -85,7 +87,8 @@ files: note: > Atari BASIC Rev C. Required for 400/800 software that needs BASIC. Altirra BASIC is used as fallback. Enable via core option atari800_opt2. - source_ref: "source atari800/src/sysrom.c:105-107, source atari800/src/sysrom.c:292" + config_key: "ROM_BASIC_C" + source_ref: "source atari800/src/sysrom.c:105-107, source atari800/src/sysrom.c:292, source atari800/src/sysrom.c:142, source atari800/src/sysrom.c:616-623" # -- Atari 400/800 OS A -- # Original Atari 400/800 OS (10 KB). Two known CRC32 values: @@ -103,7 +106,8 @@ files: note: > Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback. Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra. - source_ref: "source atari800/src/sysrom.c:89-90, source atari800/src/sysrom.c:285" + config_key: "ROM_OS_A_PAL" + source_ref: "source atari800/src/sysrom.c:89-90, source atari800/src/sysrom.c:285, source atari800/src/sysrom.c:125, source atari800/src/sysrom.c:616-623" # -- Atari 400/800 OS B -- # OS revision B (10 KB), NTSC: CRC32 0x0e86d61d @@ -123,7 +127,8 @@ files: SYSROM_B_NTSC. Preferred over Rev A for 400/800 mode. The .info lists md5 a3e8d617c95d08031fe1b20d541434b2, a different dump (crc32 3e28a1fe). sysrom.c detects the CRC32-matched one. - source_ref: "source atari800/src/sysrom.c:91, source atari800/src/sysrom.c:286" + config_key: "ROM_OS_B_NTSC" + source_ref: "source atari800/src/sysrom.c:91, source atari800/src/sysrom.c:286, source atari800/src/sysrom.c:126, source atari800/src/sysrom.c:616-623" # -- Atari XL/XE OS -- # XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c: @@ -144,7 +149,8 @@ files: note: > Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes. Altirra XL OS is used as fallback. - source_ref: "source atari800/src/sysrom.c:92-101, source atari800/src/sysrom.c:288" + config_key: "ROM_OS_BB01R2" + source_ref: "source atari800/src/sysrom.c:92-101, source atari800/src/sysrom.c:288, source atari800/src/sysrom.c:130, source atari800/src/sysrom.c:616-623" # -- Atari XL/XE/XEGS OS v4 (BB01R4) -- # XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002 @@ -160,7 +166,8 @@ files: validation: [size, crc32] note: > Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode. - source_ref: "source atari800/src/sysrom.c:100" + config_key: "ROM_OS_BB01R4" + source_ref: "source atari800/src/sysrom.c:100, source atari800/src/sysrom.c:135, source atari800/src/sysrom.c:616-623" # -- XEGS Missile Command built-in game -- # The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb @@ -176,7 +183,8 @@ files: note: > XEGS built-in Missile Command ROM. Only used in XEGS machine mode. No built-in replacement exists for this ROM. - source_ref: "source atari800/src/sysrom.c:108" + config_key: "ROM_XEGAME" + source_ref: "source atari800/src/sysrom.c:108, source atari800/src/sysrom.c:143, source atari800/src/sysrom.c:616-623" # -- Further revisions identified by CRC32 in the system directory scan -- @@ -194,7 +202,8 @@ files: 10240 bytes whose CRC32 is c1b3bb02 is taken for this slot. ROM_OS_A_NTSC is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:89, source atari800/src/sysrom.c:124, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_A_NTSC" + source_ref: "source atari800/src/sysrom.c:89, source atari800/src/sysrom.c:124, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:124, source atari800/src/sysrom.c:616-623" - name: "atari-1200xl-os-rev-10.rom" path: "atari-1200xl-os-rev-10.rom" @@ -210,7 +219,8 @@ files: 16384 bytes whose CRC32 is c5c11546 is taken for this slot. ROM_OS_AA00R10 is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:92, source atari800/src/sysrom.c:127, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_AA00R10" + source_ref: "source atari800/src/sysrom.c:92, source atari800/src/sysrom.c:127, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:127, source atari800/src/sysrom.c:616-623" - name: "atari-1200xl-os-rev-11.rom" path: "atari-1200xl-os-rev-11.rom" @@ -226,7 +236,8 @@ files: 16384 bytes whose CRC32 is 1a1d7b1b is taken for this slot. ROM_OS_AA00R11 is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:93, source atari800/src/sysrom.c:128, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_AA00R11" + source_ref: "source atari800/src/sysrom.c:93, source atari800/src/sysrom.c:128, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:128, source atari800/src/sysrom.c:616-623" - name: "atari-xl-os-ver-1.rom" path: "atari-xl-os-ver-1.rom" @@ -242,7 +253,8 @@ files: 16384 bytes whose CRC32 is 643bcc98 is taken for this slot. ROM_OS_BB00R1 is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:94, source atari800/src/sysrom.c:129, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_BB00R1" + source_ref: "source atari800/src/sysrom.c:94, source atari800/src/sysrom.c:129, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:129, source atari800/src/sysrom.c:616-623" - name: "ROM_OS_BB02R3V4" path: "ROM_OS_BB02R3V4" @@ -257,7 +269,8 @@ files: 16384 bytes whose CRC32 is d425a9cf is taken for this slot. The name is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:97, source atari800/src/sysrom.c:132, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_BB02R3V4" + source_ref: "source atari800/src/sysrom.c:97, source atari800/src/sysrom.c:132, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:132, source atari800/src/sysrom.c:616-623" - name: "ROM_OS_CC01R4" path: "ROM_OS_CC01R4" @@ -272,7 +285,8 @@ files: 16384 bytes whose CRC32 is 0e000b99 is taken for this slot. The name is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:98, source atari800/src/sysrom.c:133, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_CC01R4" + source_ref: "source atari800/src/sysrom.c:98, source atari800/src/sysrom.c:133, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:133, source atari800/src/sysrom.c:616-623" - name: "atari-xl-os-ver-3.rom" path: "atari-xl-os-ver-3.rom" @@ -288,7 +302,8 @@ files: 16384 bytes whose CRC32 is 29f133f7 is taken for this slot. ROM_OS_BB01R3 is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:99, source atari800/src/sysrom.c:134, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_BB01R3" + source_ref: "source atari800/src/sysrom.c:99, source atari800/src/sysrom.c:134, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:134, source atari800/src/sysrom.c:616-623" - name: "ROM_OS_BB01R59" path: "ROM_OS_BB01R59" @@ -303,7 +318,8 @@ files: 16384 bytes whose CRC32 is 45f47988 is taken for this slot. The name is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:101, source atari800/src/sysrom.c:136, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_BB01R59" + source_ref: "source atari800/src/sysrom.c:101, source atari800/src/sysrom.c:136, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:136, source atari800/src/sysrom.c:616-623" - name: "ROM_OS_BB01R59A" path: "ROM_OS_BB01R59A" @@ -318,7 +334,8 @@ files: 16384 bytes whose CRC32 is f0a236d3 is taken for this slot. The name is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:102, source atari800/src/sysrom.c:137, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_OS_BB01R59A" + source_ref: "source atari800/src/sysrom.c:102, source atari800/src/sysrom.c:137, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:137, source atari800/src/sysrom.c:616-623" - name: "atari-basic-rev-a.rom" path: "atari-basic-rev-a.rom" @@ -334,7 +351,8 @@ files: 8192 bytes whose CRC32 is 4bec4de2 is taken for this slot. ROM_BASIC_A is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:105, source atari800/src/sysrom.c:140, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_BASIC_A" + source_ref: "source atari800/src/sysrom.c:105, source atari800/src/sysrom.c:140, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:140, source atari800/src/sysrom.c:616-623" - name: "atari-basic-rev-b.rom" path: "atari-basic-rev-b.rom" @@ -350,7 +368,8 @@ files: 8192 bytes whose CRC32 is f0202fb3 is taken for this slot. ROM_BASIC_B is the configuration key this ROM is stored under in .atari800.cfg. - source_ref: "source atari800/src/sysrom.c:106, source atari800/src/sysrom.c:141, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537" + config_key: "ROM_BASIC_B" + source_ref: "source atari800/src/sysrom.c:106, source atari800/src/sysrom.c:141, source atari800/src/sysrom.c:317-427, source atari800/src/atari.c:537, source atari800/src/sysrom.c:141, source atari800/src/sysrom.c:616-623" # Known ROM revisions from sysrom.c (CRC32 identifiers): #