mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 03:09:08 -05:00
atari800 scans the system folder and recognises each OS and BASIC ROM by CRC32 (sysrom.c:104, 317-420), whatever its name. RetroDECK's ROM_* names are those config keys. Eleven entries carry md5, crc32 and size, under the label altirra already uses for the same dump where one exists.
401 lines
16 KiB
YAML
401 lines
16 KiB
YAML
emulator: Atari800
|
|
type: standalone + libretro
|
|
core_classification: official_port
|
|
source: "https://github.com/libretro/libretro-atari800"
|
|
upstream: "https://github.com/atari800/atari800"
|
|
profiled_date: "2026-03-23"
|
|
source_commit: "4e7fbc73765c1a9670c7506616046ad1d4ccda51"
|
|
core_version: "3.1.0"
|
|
display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)"
|
|
cores: [atari800]
|
|
systems: [atari-400-800, atari-5200, xegs]
|
|
|
|
# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console.
|
|
# All BIOS files are optional -- the core ships built-in Altirra OS replacements
|
|
# (altirraos_800, altirraos_xl, altirra_5200_os, altirra_basic) compiled into the
|
|
# binary. If real ROM files are found in the system directory they take priority.
|
|
#
|
|
# ROM discovery (sysrom.c SYSROM_FindInDir):
|
|
# 1. Scan system directory for files of valid size (0x800, 0x2000, 0x2800, 0x4000)
|
|
# 2. Match by CRC32 against known ROM revisions
|
|
# 3. If no CRC match, try case-insensitive filename match (MatchByName)
|
|
# 4. Results stored in .atari800.cfg (generated on first run)
|
|
#
|
|
# The core generates .atari800.cfg in the frontend home directory on first boot.
|
|
# Core option "atari800_system" selects the emulated machine type:
|
|
# 400/800, 800XL (64KB), 130XE (128KB), Modern XL/XE(320KB), Modern XL/XE(576KB),
|
|
# Modern XL/XE(1088KB), 5200
|
|
|
|
files:
|
|
# -- Atari 5200 BIOS --
|
|
# Original 5200 OS ($F800-$FFFF, 2 KB). Matched by CRC32: 0x4248d3e3 (orig)
|
|
# or 0xc2ba2613 (rev A). Altirra 5200 OS used as fallback.
|
|
# Filename match (case-insensitive): atari5200.rom, atar5200.rom, 5200.rom,
|
|
# 5200.bin, atari_5200.rom
|
|
|
|
- name: "5200.rom"
|
|
path: "5200.rom"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 2048
|
|
md5: 281f20ea4320404ec820fb7ec0693b38
|
|
aliases: [atari5200.rom, atar5200.rom, 5200.bin, atari_5200.rom]
|
|
validation: [size]
|
|
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"
|
|
|
|
- name: "atari-5200-os-2port.rom"
|
|
path: "atari-5200-os-2port.rom"
|
|
aliases: [ROM_5200_A]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 2048
|
|
crc32: "c2ba2613"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 5200 OS rev A, from the 2-port 5200. Any file name: every file
|
|
of the system directory of 2048 bytes whose CRC32 is c2ba2613 is taken
|
|
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"
|
|
|
|
# -- Atari BASIC ROM --
|
|
# Atari BASIC interpreter (8 KB). Three known revisions:
|
|
# Rev A: CRC32 0x4bec4de2, Rev B: CRC32 0xf0202fb3, Rev C: CRC32 0x7d684184
|
|
# Auto-select prefers Rev C > B > A > custom > Altirra BASIC.
|
|
# Filename match: ataribasic.rom, ataribas.rom, basic.rom, atari_basic.rom
|
|
# Core option "atari800_opt2" enables BASIC (needed for some 400/800 software).
|
|
|
|
- name: "ATARIBAS.ROM"
|
|
path: "ATARIBAS.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 8192
|
|
md5: 0bac0c6a50104045d902df4503a4c30b
|
|
aliases: [ataribasic.rom, basic.rom, atari_basic.rom]
|
|
validation: [size]
|
|
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"
|
|
|
|
# -- Atari 400/800 OS A --
|
|
# Original Atari 400/800 OS (10 KB). Two known CRC32 values:
|
|
# NTSC: 0xc1b3bb02, PAL: 0x72b3fed4
|
|
# Filename match: atariosa.rom, atari_osa.rom, atari_os_a.rom
|
|
|
|
- name: "ATARIOSA.ROM"
|
|
path: "ATARIOSA.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 10240
|
|
md5: eb1f32f5d9f382db1bbfb8d7f9cb343a
|
|
aliases: [atari_osa.rom, atari_os_a.rom]
|
|
validation: [size]
|
|
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"
|
|
|
|
# -- Atari 400/800 OS B --
|
|
# OS revision B (10 KB), NTSC: CRC32 0x0e86d61d
|
|
# Filename match: atariosb.rom, atari_osb.rom, atari_os_b.rom
|
|
|
|
- name: "ATARIOSB.ROM"
|
|
path: "ATARIOSB.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 10240
|
|
md5: 4177f386a3bac989a981d3fe3388cb6c
|
|
crc32: 0e86d61d
|
|
aliases: [atari_osb.rom, atari_os_b.rom]
|
|
validation: [size]
|
|
note: >
|
|
Atari 400/800 OS Rev B (NTSC). CRC32 0x0e86d61d matches sysrom.c
|
|
SYSROM_B_NTSC. Preferred over Rev A for 400/800 mode.
|
|
Note: .info lists md5 a3e8d617c95d08031fe1b20d541434b2 which is a
|
|
different dump (crc32 3e28a1fe) -- both in repo, the CRC32-matched
|
|
version is the one sysrom.c auto-detects.
|
|
source_ref: "source atari800/src/sysrom.c:91, source atari800/src/sysrom.c:286"
|
|
|
|
# -- Atari XL/XE OS --
|
|
# XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c:
|
|
# BB01R2 (800XL stock): 0x1f9cd270
|
|
# CC01R4: 0x0e000b99
|
|
# BB01R4: 0x1eaf4002
|
|
# Auto-select prefers BB01R2 for 800XL, BB01R3 for XE, BB01R4 for XEGS.
|
|
# Filename match: atarixlxe.rom, atarixl.rom, atari_xlxe.rom, atari_xl_xe.rom
|
|
|
|
- name: "ATARIXL.ROM"
|
|
path: "ATARIXL.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 06daac977823773a3eea3422fd26a703
|
|
aliases: [atarixlxe.rom, atari_xlxe.rom, atari_xl_xe.rom]
|
|
validation: [size]
|
|
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"
|
|
|
|
# -- Atari XL/XE/XEGS OS v4 (BB01R4) --
|
|
# XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002
|
|
# Preferred for XEGS machine mode. Same filename matching as ATARIXL above.
|
|
|
|
- name: "BB01R4_OS.ROM"
|
|
path: "BB01R4_OS.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: b7a2a04677d34f069eeb643d5238bf86
|
|
crc32: "1eaf4002"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode.
|
|
source_ref: "source atari800/src/sysrom.c:100"
|
|
|
|
# -- XEGS Missile Command built-in game --
|
|
# The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb
|
|
# No filename auto-match -- must be set via config or detected by CRC.
|
|
|
|
- name: "XEGAME.ROM"
|
|
path: "XEGAME.ROM"
|
|
required: false
|
|
size: 8192
|
|
md5: d7eb37aec6960cba36bc500e0e5d00bc
|
|
crc32: "bdca01fb"
|
|
validation: [size, crc32]
|
|
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"
|
|
|
|
# -- Further revisions identified by CRC32 in the system directory scan --
|
|
|
|
- name: "atari-800-os-a-ntsc.rom"
|
|
path: "atari-800-os-a-ntsc.rom"
|
|
aliases: [ROM_OS_A_NTSC]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 10240
|
|
md5: a3c1585b5d19719f8acfa2b093bea75f
|
|
crc32: "c1b3bb02"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 400/800 OS rev A, NTSC (SYSROM_A_NTSC). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-1200xl-os-rev-10.rom"
|
|
path: "atari-1200xl-os-rev-10.rom"
|
|
aliases: [ROM_OS_AA00R10]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: e3e8c74bfe1dcd6b56af50bd9a82dc15
|
|
crc32: "c5c11546"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 1200XL OS rev 10 (SYSROM_AA00R10). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-1200xl-os-rev-11.rom"
|
|
path: "atari-1200xl-os-rev-11.rom"
|
|
aliases: [ROM_OS_AA00R11]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: eacb8069c45e2ec4e0a19978bf2fc334
|
|
crc32: "1a1d7b1b"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 1200XL OS rev 11 (SYSROM_AA01R11). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-xl-os-ver-1.rom"
|
|
path: "atari-xl-os-ver-1.rom"
|
|
aliases: [ROM_OS_BB00R1]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 9aea45e724d2588fbbeda658c7dc53ee
|
|
crc32: "643bcc98"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 600XL OS (SYSROM_BB00R1). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "ROM_OS_BB02R3V4"
|
|
path: "ROM_OS_BB02R3V4"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 9f5449c881475a5cca40849c743205f8
|
|
crc32: "d425a9cf"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari XL/XE OS BB02R3V4 (SYSROM_BB02R3V4). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "ROM_OS_CC01R4"
|
|
path: "ROM_OS_CC01R4"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 65020266380e33cce50ebf8b9d91122a
|
|
crc32: "0e000b99"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari XL/XE OS CC01R4 (SYSROM_CC01R4). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-xl-os-ver-3.rom"
|
|
path: "atari-xl-os-ver-3.rom"
|
|
aliases: [ROM_OS_BB01R3]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 54e704558a6aedfc45cebf8f8ac9c312
|
|
crc32: "29f133f7"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari 65XE/130XE OS (SYSROM_BB01R3). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "ROM_OS_BB01R59"
|
|
path: "ROM_OS_BB01R59"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: d467f55fb7643553b69b34bf7e805b7d
|
|
crc32: "45f47988"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari XL/XE OS BB01R59 (SYSROM_BB01R59). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "ROM_OS_BB01R59A"
|
|
path: "ROM_OS_BB01R59A"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
md5: 69396860e53f58d798421d06d766c3ba
|
|
crc32: "f0a236d3"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari XL/XE OS BB01R59A (SYSROM_BB01R59A). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-basic-rev-a.rom"
|
|
path: "atari-basic-rev-a.rom"
|
|
aliases: [ROM_BASIC_A]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 8192
|
|
md5: a4dc52536d526ecc51ea857b9fa2b90f
|
|
crc32: "4bec4de2"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari BASIC rev A (SYSROM_BASIC_A). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
- name: "atari-basic-rev-b.rom"
|
|
path: "atari-basic-rev-b.rom"
|
|
aliases: [ROM_BASIC_B]
|
|
required: false
|
|
hle_fallback: true
|
|
size: 8192
|
|
md5: 04ea6a4e386601445ca5bfc8e37fb620
|
|
crc32: "f0202fb3"
|
|
validation: [size, crc32]
|
|
note: >
|
|
Atari BASIC rev B (SYSROM_BASIC_B). Any file name: a file of the system directory of
|
|
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"
|
|
|
|
# Known ROM revisions from sysrom.c (CRC32 identifiers):
|
|
#
|
|
# 400/800 OS:
|
|
# SYSROM_A_NTSC 0xc1b3bb02 10 KB OS Rev A (NTSC)
|
|
# SYSROM_A_PAL 0x72b3fed4 10 KB OS Rev A (PAL)
|
|
# SYSROM_B_NTSC 0x0e86d61d 10 KB OS Rev B (NTSC)
|
|
#
|
|
# XL/XE OS (all 16 KB):
|
|
# SYSROM_AA00R10 0xc5c11546 1200XL first rev
|
|
# SYSROM_AA01R11 0x1a1d7b1b 1200XL second rev
|
|
# SYSROM_BB00R1 0x643bcc98 600XL stock
|
|
# SYSROM_BB01R2 0x1f9cd270 800XL stock
|
|
# SYSROM_BB02R3 0x0d477aa1 XL/XE rev 3a
|
|
# SYSROM_BB02R3V4 0xd425a9cf XL/XE rev 3b
|
|
# SYSROM_CC01R4 0x0e000b99 XL/XE rev 5
|
|
# SYSROM_BB01R3 0x29f133f7 XE stock
|
|
# SYSROM_BB01R4 0x1eaf4002 XEGS stock
|
|
# SYSROM_BB01R59 0x45f47988 XL/XE rev 59
|
|
# SYSROM_BB01R59A 0xf0a236d3 XL/XE rev 59a
|
|
#
|
|
# 5200 OS (2 KB):
|
|
# SYSROM_5200 0x4248d3e3 Original
|
|
# SYSROM_5200A 0xc2ba2613 Rev A
|
|
#
|
|
# BASIC (8 KB):
|
|
# SYSROM_BASIC_A 0x4bec4de2 Rev A
|
|
# SYSROM_BASIC_B 0xf0202fb3 Rev B
|
|
# SYSROM_BASIC_C 0x7d684184 Rev C
|
|
#
|
|
# XEGAME (8 KB):
|
|
# SYSROM_XEGAME 0xbdca01fb Missile Command
|
|
#
|
|
# Built-in Altirra replacements (no file needed):
|
|
# altirraos_800 10 KB 400/800 OS replacement
|
|
# altirraos_xl 16 KB XL/XE OS replacement
|
|
# altirra_5200_os 2 KB 5200 OS replacement
|
|
# altirra_basic 8 KB BASIC replacement
|
|
|
|
notes:
|
|
altirra_note: >
|
|
The Altirra OS/BASIC replacements are open-source alternatives compiled
|
|
directly into the core binary (roms/ directory in source). They provide
|
|
good compatibility for most software but real ROMs give better accuracy.
|
|
cfg_note: >
|
|
On first boot the core creates .atari800.cfg in the frontend home directory.
|
|
It scans the system directory for ROM files by CRC32 first, then by filename.
|
|
The core option atari800_opt1 controls whether this legacy config is loaded.
|
|
machine_selection: >
|
|
Core option atari800_system selects the emulated machine. Each machine type
|
|
has its own preferred OS ROM auto-select order defined in sysrom.c.
|