Files
libretro/emulators/reicast.yml
T
Abdessamad Derraz 9c15246d88 fix: place reicast flash and rom under data/
nullDC.cpp:182-188 loads both from get_readonly_data_path("/data/"); dc/ was the Recalbox patch.
2026-10-24 00:48:55 +02:00

72 lines
3.2 KiB
YAML

emulator: Reicast
type: standalone
core_classification: community_fork
source: "https://github.com/skmp/reicast-emulator"
upstream: "https://github.com/skmp/reicast-emulator"
profiled_date: "2026-10-17"
source_commit: "ad61f95dd6b4c6218846a25de6194550311a5d28"
pin_frozen: "Recalbox 10.1.1 builds this revision (package/reicast/reicast.mk REICAST_VERSION). Later commits on reicast-emulator are not part of that build."
core_version: "Git"
display_name: "Sega - Dreamcast (Reicast)"
cores:
- "reicast"
systems:
- "sega-dreamcast"
data_root:
linux:
path: "$XDG_DATA_HOME/reicast, else ~/.local/share/reicast"
source_ref: "core/linux-dist/main.cpp:287-326,396, shell/linux/Makefile:254"
note: "~/.reicast when that folder exists. The boot ROM and flash are read from its data/ subfolder, which Recalbox replaces with /recalbox/share/bios/dc"
notes: |
Dreamcast emulator descended from nullDC. The Linux build is compiled
for one platform, and the default is dreamcast, which sets the ROM prefix
dc_, a 2 MB boot ROM, a 128 KB flash and NVR_OPTIONAL 0
(ref: core/types.h:209-217).
LoadRomFiles() tries dc_boot.bin, dc_boot.bin.bin, dc_bios.bin and
dc_bios.bin.bin for the boot ROM, then dc_nvmem.bin, dc_flash_wb.bin,
dc_flash.bin and dc_flash.bin.bin for the flash
(ref: core/hw/holly/sb_mem.cpp:30-51). Each candidate is accepted
when a full chip's worth of bytes can be read from it
(ref: core/hw/flashrom/flashrom.h:39-49, 61-99). No hash is checked.
With NVR_OPTIONAL 0 a missing flash fails LoadRomFiles() the same way
a missing boot ROM does.
When LoadRomFiles() fails, or the reios setting is on, the core starts
its HLE BIOS instead and loads only the flash, if present
(ref: core/nullDC.cpp:183-200, core/hw/holly/sb_mem.cpp:58-64).
Upstream resolves the directory as <data dir>/data/, the data dir
being ~/.reicast when it exists, else $XDG_DATA_HOME/reicast or
~/.local/share/reicast, then each $XDG_DATA_DIRS entry plus /reicast
(ref: core/nullDC.cpp:182-188, core/stdclass.cpp:83-100,
core/linux-dist/main.cpp:287-326, 355-379). The paths below are
relative to that data dir. Recalbox patches nullDC.cpp to read and
write both files in /recalbox/share/bios/dc/ instead.
files:
- name: "dc_boot.bin"
path: "data/dc_boot.bin"
aliases: ["dc_boot.bin.bin", "dc_bios.bin", "dc_bios.bin.bin"]
system: "sega-dreamcast"
required: false
hle_fallback: true
min_size: 2097152
validation: [size]
description: "Dreamcast boot ROM"
source_ref: "core/hw/holly/sb_mem.cpp:20, 30-36, core/types.h:211, 215"
note: "First of the four names that reads 2097152 bytes wins. Missing, the HLE BIOS runs."
- name: "dc_nvmem.bin"
path: "data/dc_nvmem.bin"
aliases: ["dc_flash_wb.bin", "dc_flash.bin", "dc_flash.bin.bin"]
system: "sega-dreamcast"
required: false
hle_fallback: true
min_size: 131072
validation: [size]
description: "Dreamcast flash memory"
source_ref: "core/hw/holly/sb_mem.cpp:22-23, 37-48, 58-64, core/types.h:212, 217"
note: "Tried as dc_nvmem.bin, dc_flash_wb.bin, dc_flash.bin, then dc_flash.bin.bin. Written back as dc_nvmem.bin on exit. Missing, LoadRomFiles() fails even with a boot ROM present and the HLE BIOS runs."