Files
libretro/emulators/a7800.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

119 lines
5.0 KiB
YAML

emulator: A7800
type: standalone
core_classification: enhanced_fork
source: "https://github.com/7800-devtools/a7800"
upstream: "https://github.com/mamedev/mame"
profiled_date: "2026-08-08"
source_commit: "7a2afdc1ea08fc331b16b750d8c1f02d4ef62fc8"
core_version: "5.2"
display_name: "Atari - 7800 (A7800)"
cores:
- a7800
systems:
- atari-7800
mode: standalone
notes: |
MAME fork by 7800.8bitdev.org built with the Atari 7800 driver alone. The
released binary carries eight machines, all declaring a7800 as parent: NTSC
and PAL at three palette temperatures, plus a developer mode showing DMA
usage per scanline (a7800.cpp:1837-1844). The temperature variants were
renamed after 5.2, from a7800u1/a7800u2/a7800pu1/a7800pu2 to
a7800a1/a7800a2/a7800pa1/a7800pa2. ROM definitions are identical in both.
Console BIOS is optional. Every entry carries ROM_OPTIONAL, so absence
yields a warning rather than the fatal "Required files are missing" exit
(romload.cpp:373-379, 488-493). The region is ERASEFF, and machine_reset
reads the reset vector: when 0xfffe and 0xffff both hold 0xff, m_ctrl_reg is
set to 4 and the console starts the cartridge (a7800.cpp:1529-1532). No code
substitutes for the BIOS when it is absent.
Lookup runs under rompath, which the shipped a7800.ini sets to "bios;roms".
open_rom_file walks the parent chain (romload.cpp:567-572), so all eight
machines fall back to the a7800 set, and the manual documents one merged
archive at bios/a7800.zip. Inside an archive the search tries name with CRC,
then CRC alone, then name (fileio.cpp:692-701), so a ROM whose filename
differs from the driver still resolves. Loose files under rompath/a7800/
match by name only. Loaded ROMs are checked for exact length and against the
declared CRC32 and SHA1, and a mismatch is a warning (romload.cpp:417-455).
The PAL BIOS keeps the filename 7800pal.rom, which mainline MAME has since
renamed to c300558-001b.u7 for the same dump. Mainline also marks the 7800
ROMs mandatory.
Software list a7800 (hash/a7800.xml), attached by every machine
(a7800.cpp:1577, 1608, 1654, 1684), holds add-on hardware rather than games:
the High Score Cartridge and the XM Expansion Module, both backed by the
same 4KB highscre.bin served as the pass-through cart ROM
(hiscore.cpp:49-52, xm.cpp:177-183). Software list ROMs resolve as
a7800/<setname> then <setname> under rompath (romload.cpp:628-650) and carry
no optional flag, so selecting either configuration without the image exits
with EMU_ERR_MISSING_FILES.
The release ships the binary, a7800.ini, the manual, hash/a7800.xml, cfg
defaults, bgfx shaders and artwork masks, and no roms, samples, plugins or
language directory. The driver adds no samples device and no external
layout. Crosshair bitmaps fall back to a compiled-in shape
(crsshair.cpp:180-214) and the UI font to compiled-in data
(rendfont.cpp:587-600).
files:
- name: a7800.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "source src/mame/drivers/a7800.cpp:1698-1748"
note: >-
Merged console BIOS archive documented by the manual at bios/a7800.zip.
Serves all eight machines through the parent chain, since the PAL
machines are clones of a7800 rather than of a7800p.
contents:
- name: 7800.u7
description: NTSC BIOS, default system BIOS "a7800", mapped at 0x3000
size: 4096
crc32: "5d13730c"
sha1: "d9d134bb6b36907c615a594cc7688f7bfcef5b43"
- name: c300558-001a.u7
description: NTSC prototype BIOS with Asteroids, system BIOS "a7800pr"
size: 16384
crc32: "a0e10edf"
sha1: "14584b1eafe9721804782d4b1ac3a4a7313e455f"
- name: 7800pal.rom
description: PAL BIOS with Asteroids, named c300558-001b.u7 in mainline MAME
size: 16384
crc32: "d5b61170"
sha1: "5a140136a16d1d83e4ff32a19409ca376a8df874"
- name: hiscore.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "source hash/a7800.xml:8-21"
note: >-
Software list set for the High Score Cartridge configuration (CX78HSC,
slot a78_hsc). Fatal when that configuration is selected and the set is
absent.
contents:
- name: highscre.bin
description: High Score Cartridge ROM, read through the pass-through cart
size: 4096
crc32: "9be408d3"
sha1: "a3af676991391a6dd716c79022d4947206b78164"
- name: xm.zip
required: false
category: bios_zip
system: atari-7800
source_ref: "source hash/a7800.xml:24-38"
note: >-
Software list set for the XM Expansion Module configuration (slot
a78_xm), which reuses the High Score Cartridge ROM alongside 128KB RAM,
POKEY and YM2151. Fatal when that configuration is selected and the set
is absent.
contents:
- name: highscre.bin
description: High Score Cartridge ROM, gated by XM control register bit 3
size: 4096
crc32: "9be408d3"
sha1: "a3af676991391a6dd716c79022d4947206b78164"