mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
168 lines
7.2 KiB
YAML
168 lines
7.2 KiB
YAML
emulator: Gopher2600
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/JetSetIlly/Gopher2600"
|
|
upstream: "https://github.com/JetSetIlly/Gopher2600"
|
|
profiled_date: "2026-08-08"
|
|
source_commit: "6bfd0abeb61ff109e3e354efad8274da1ac629d6"
|
|
core_version: "v0.57.0"
|
|
display_name: "Atari - 2600 (Gopher2600)"
|
|
cores:
|
|
- gopher2600
|
|
systems:
|
|
- atari-2600
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Atari 2600 emulator written in Go. The 6507, TIA and RIOT are emulated in
|
|
software and the console needs no ROM of its own, so a plain cartridge boots
|
|
with nothing supplied.
|
|
|
|
Supercharger emulation is the only path that reads a BIOS. NewSupercharger
|
|
branches three ways (supercharger.go:93-119). A tape held as WAV or MP3 sets
|
|
Loader.IsSoundData and calls loadBIOS, and the error is returned, so the
|
|
cartridge fails to attach without the file. A demo unit image calls loadBIOS
|
|
and substitutes fastloadOnlyBIOS() on failure. Everything else, including the
|
|
usual Supercharger BIN, takes fastloadOnlyBIOS() without ever looking for the
|
|
file: a 2048 byte stub holding a touch of the tape load register and the CPU
|
|
jump table (bios.go:151-166).
|
|
|
|
loadBIOS reads the current working directory, then the directory holding the
|
|
tape or BIN, then the configuration directory (bios.go:53-116). Each candidate
|
|
name is tried in turn and the content is gated on MD5 before the caller checks
|
|
the 2048 byte length, so a file under the right name with the wrong content is
|
|
refused. ReqSpec selects the PAL table and the PAL hash (bios.go:56-59);
|
|
ReqSpec comes from the television specification, the stella.pro entry or the
|
|
filename (cartridgeloader/loader.go:194-201).
|
|
|
|
The demo unit is recognised by MD5 of the 256 bytes at 0x300 of the loaded
|
|
image (demounit.go:58,78). When that image carries more than 2048 bytes it
|
|
holds the Schweber chip and the carousel together; otherwise the eight ROMs
|
|
are read from the directory of the loaded file (demounit_controller.go:
|
|
178-200). A read error or a length other than 8192 logs and returns nil, and
|
|
the peripheral is left unplugged.
|
|
|
|
stella.pro is Stella's cartridge properties database, read from the
|
|
configuration directory (properties.go:28,48-58). It is loaded by
|
|
NewDebugger (debugger.go:356), which drives play as well as debug
|
|
(gopher2600.go:261,307,326), so it applies to the plain `gopher2600 <rom>`
|
|
invocation. A missing file is logged and start-up continues; the ROM selector
|
|
then falls back to the filename and no television specification is inferred
|
|
from the cartridge name.
|
|
|
|
The ROM selector also reads a Named_Boxarts directory from the configuration
|
|
directory, listing it at start-up and fuzzy matching the cartridge name
|
|
against the entries before reading one image (win_rom_select.go:92,127-138,
|
|
678-689). It holds the box art of the libretro-thumbnails Atari 2600 set,
|
|
pinned upstream at commit 4ea759821724d6c7bcf2f46020d79fc4270ed2f6
|
|
(win_rom_select.go:91). Its content is whatever the user copies in and no
|
|
name is fixed by the code, so it carries no file entry here.
|
|
|
|
Fonts, shaders, bevels, the CPU instruction table and the Movie Cart core are
|
|
compiled in with go:embed. The remaining paths under the configuration
|
|
directory are written by the emulator or authored by hand: preferences,
|
|
debugger_imgui.ini, managerState, managerHotkeys, savekey, fa2_nvram,
|
|
elf_nvram, regression, patches and setupDB. ARM map files and DWARF sources
|
|
are read from a project build tree beside the ROM. AtariVox speech calls the
|
|
festival binary as a process, with the path taken from preferences
|
|
(atarivox_preferences.go:51).
|
|
|
|
files:
|
|
- name: "Supercharger BIOS.bin"
|
|
system: atari-2600
|
|
aliases:
|
|
- "Supercharger.BIOS.bin"
|
|
- "Supercharger_BIOS.bin"
|
|
- "supercharger_bios.bin"
|
|
- "SUPERCHARGER_BIOS.bin"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 2048
|
|
md5: "4565c1a7abce773e53c75b35414adefd"
|
|
validation: [size, md5]
|
|
description: "Starpath Supercharger BIOS, required to load a tape held as WAV or MP3"
|
|
source_ref: "hardware/memory/cartridge/supercharger/bios.go:30-36,45,53-116,141"
|
|
|
|
- name: "Supercharger BIOS PAL.bin"
|
|
system: atari-2600
|
|
aliases:
|
|
- "Supercharger_BIOS_PAL.bin"
|
|
- "SUPERCHARGER_BIOS_PAL.bin"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 2048
|
|
md5: "4a8c743396b8ad69d97e6fd3dd3e3132"
|
|
validation: [size, md5]
|
|
description: "PAL Supercharger BIOS, selected when the loader resolves a PAL specification"
|
|
source_ref: "hardware/memory/cartridge/supercharger/bios.go:38-42,46,56-59,141"
|
|
|
|
- name: "Starpath Demonstration Unit 1P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 1, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 2P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 2, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 3P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 3, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 4P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 4, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 5P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 5, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 6P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 6, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 7P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 7, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "Starpath Demonstration Unit 8P.bin"
|
|
system: atari-2600
|
|
required: false
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Demo unit carousel ROM 8, read from the directory of the loaded image"
|
|
source_ref: "hardware/memory/cartridge/supercharger/demounit_controller.go:37-46,178-200"
|
|
|
|
- name: "stella.pro"
|
|
system: atari-2600
|
|
required: false
|
|
description: "Stella cartridge properties database, keyed by cartridge MD5"
|
|
source_ref: "properties/properties.go:28,48-58; debugger/debugger.go:356"
|