mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
Where each shipped build finds the config a platform installs and reads every key it opens a file from, read at the build the platform ships: duckstation (EmuELEC, ROCKNIX, RetroBat), xemu, armsx2, hatari, melonDS, dsperate, NanoBoyAdvance, mednafen (ROCKNIX's sydarn fork) and ares, gzdoom, xroar, lrps2 and the amiberry builds at their pins. pin_build names the builds ROCKNIX, EmuELEC and AmberELEC compile, revision the ones RetroBat and Flathub install unpinned. tests/test_launcher_evidence.py covers the rule, the extractor helpers, the invariants and the chains that move placements.
194 lines
9.4 KiB
YAML
194 lines
9.4 KiB
YAML
emulator: "DSperate"
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/beebono/DSperate"
|
|
profiled_date: "2026-11-09"
|
|
source_commit: "ddf2910e6d80220c6b22b4df61f0786ac9879cda"
|
|
pin_frozen: "ROCKNIX 20261101 ships the v3.0.5 release binaries, built by CI from the v3.0.5 tag at this commit."
|
|
pin_build:
|
|
- platform: rocknix
|
|
repo: "https://github.com/ROCKNIX/distribution"
|
|
revision: "20261101"
|
|
path: "projects/ROCKNIX/packages/emulators/standalone/dsperate-sa/package.mk"
|
|
variable: PKG_VERSION
|
|
value: "3.0.5"
|
|
core_version: "v3.0.5"
|
|
version_basis:
|
|
kind: tag
|
|
tag: "v3.0.5"
|
|
distance: 0
|
|
display_name: "Nintendo - DS / DSi (DSperate)"
|
|
cores:
|
|
- "dsperate"
|
|
- "dsperate-sa"
|
|
found_by: content
|
|
systems:
|
|
- nintendo-ds
|
|
- nintendo-dsi
|
|
|
|
data_root:
|
|
linux:
|
|
path: "$XDG_CONFIG_HOME/dsperate"
|
|
source_ref: "src/frontend/sdl/config.cpp:39-49"
|
|
note: "~/.config/dsperate when XDG_CONFIG_HOME is unset. System files are read wherever the [paths] keys of the ini point."
|
|
|
|
config_reads:
|
|
- file: "dsperate.ini"
|
|
platforms: [rocknix]
|
|
revision: "ddf2910e6d80220c6b22b4df61f0786ac9879cda"
|
|
revision_from: "PKG_VERSION 3.0.5, the release binaries CI built from tag v3.0.5"
|
|
source_ref: "src/frontend/sdl/main.cpp:1065, 1155-1157, src/frontend/sdl/config.cpp:64-81"
|
|
keys:
|
|
- key:
|
|
- "[paths] bios9"
|
|
- "[paths] bios7"
|
|
source_ref: "src/frontend/sdl/main.cpp:1175, 1270-1274, src/core/nds.cpp:114-129"
|
|
condition: "both present, otherwise FreeBIOS"
|
|
- key: "[paths] firmware"
|
|
source_ref: "src/frontend/sdl/main.cpp:1178, 1270, src/core/nds.cpp:123, 134-135"
|
|
- key:
|
|
- "[paths] bios9i"
|
|
- "[paths] bios7i"
|
|
source_ref: "src/frontend/sdl/main.cpp:1179-1186, 1319-1322, 1331-1334, src/core/nds_dsi.cpp:88-99"
|
|
condition: "DSi session"
|
|
- key: "[paths] dsi_firmware"
|
|
source_ref: "src/frontend/sdl/main.cpp:1176-1178, 1270"
|
|
condition: "DSi session"
|
|
- key: "[paths] dsi_nand"
|
|
source_ref: "src/frontend/sdl/main.cpp:1158-1162, 1324-1326, 1337, src/core/nds_dsi.cpp:114-120"
|
|
condition: "--dsi-mode, BootMenuDSi.nds or a .dspr.nds shortcut"
|
|
|
|
notes: |
|
|
Nintendo DS emulator for ARM handhelds with a DSi mode. ROCKNIX installs the
|
|
release tarball for its architecture and runs it with --config pointing at
|
|
/storage/.config/dsperate/dsperate.ini.
|
|
|
|
No file name is built in: every system file is a [paths] key of the ini (or
|
|
the matching command-line flag), and a key that is unset or names no file
|
|
counts as absent. The names below are labels for the dumps. ROCKNIX's
|
|
dsperate.ini gives the same ones, all in /storage/roms/bios/.
|
|
ref: src/frontend/sdl/config.cpp:177-217, src/frontend/sdl/main.cpp:1175-1181
|
|
|
|
DS BIOS: both halves or neither, the ARM9 image 4 KB and the ARM7 image 16 KB
|
|
exactly. Without them the built-in FreeBIOS runs games by direct boot. The
|
|
firmware may be any non-empty file. Without one a firmware is generated from
|
|
the [user] settings. Booting the DS menu needs both BIOS dumps and a real
|
|
firmware. No hash is checked: an FNV-1a of the loaded regions only tags save
|
|
states.
|
|
ref: src/core/nds.cpp:114-145, src/core/mem/bus.h:137-138,
|
|
src/frontend/sdl/main.cpp:1268-1274, src/frontend/sdl/main.cpp:1291-1299
|
|
|
|
DSi: DSiWare and --dsi-mode need the DSi BIOS pair, 64 KB each, and the DS
|
|
BIOS dumps as well. FreeBIOS cannot run a DSi session. dsi_firmware replaces
|
|
firmware for a DSi session when no --firmware is given. The NAND is needed by
|
|
--dsi-mode and by NAND title shortcuts only, and it must carry the nocash footer
|
|
(at the end, or at 0x000FF800). DSiWare without a NAND runs on a generated
|
|
console whose system font is DSperate's own unless dsi_font names a
|
|
TWLFontTable.dat.
|
|
ref: src/frontend/sdl/main.cpp:1153-1186, src/frontend/sdl/main.cpp:1301-1303,
|
|
src/core/nds_dsi.cpp:88-104, src/core/nds_dsi.cpp:112-118,
|
|
src/core/io/dsi_sd.cpp:105-138, src/core/nds_dsi.cpp:310-327,
|
|
src/frontend/sdl/main.cpp:1774-1778
|
|
|
|
Cheats come from usrcheat.dat: the [paths] cheats entry, else beside the ROM,
|
|
else the config directory.
|
|
ref: src/frontend/sdl/main.cpp:635-657
|
|
|
|
files:
|
|
- name: "bios9.bin"
|
|
system: nintendo-ds
|
|
required: false
|
|
hle_fallback: true
|
|
size: 4096
|
|
validation: [size]
|
|
config_key: "paths.bios9"
|
|
description: "DS ARM9 BIOS"
|
|
note: "Loaded only together with bios7.bin. Absent, FreeBIOS runs games by direct boot. Needed to boot the DS menu and for any DSi session."
|
|
source_ref: "src/core/nds.cpp:119-121, src/core/mem/bus.h:137, src/frontend/sdl/main.cpp:1268-1274, src/frontend/sdl/main.cpp:1291-1303"
|
|
|
|
- name: "bios7.bin"
|
|
system: nintendo-ds
|
|
required: false
|
|
hle_fallback: true
|
|
size: 16384
|
|
validation: [size]
|
|
config_key: "paths.bios7"
|
|
description: "DS ARM7 BIOS"
|
|
note: "Loaded only together with bios9.bin. Absent, FreeBIOS runs games by direct boot. Needed to boot the DS menu and for any DSi session."
|
|
source_ref: "src/core/nds.cpp:119-120, src/core/nds.cpp:122, src/core/mem/bus.h:138, src/frontend/sdl/main.cpp:1268-1274, src/frontend/sdl/main.cpp:1291-1303"
|
|
|
|
- name: "firmware.bin"
|
|
system: nintendo-ds
|
|
required: false
|
|
hle_fallback: true
|
|
config_key: "paths.firmware"
|
|
description: "DS firmware"
|
|
note: "Any non-empty file is accepted. Absent, a firmware is generated from [user]. Needed to boot the DS menu."
|
|
source_ref: "src/core/nds.cpp:123, src/core/nds.cpp:133-134, src/frontend/sdl/main.cpp:1178, src/frontend/sdl/main.cpp:1292-1299"
|
|
|
|
- name: "dsi_bios9.bin"
|
|
system: nintendo-dsi
|
|
required: false
|
|
size: 65536
|
|
validation: [size]
|
|
config_key: "paths.bios9i"
|
|
description: "DSi ARM9 BIOS"
|
|
note: "Loaded only together with dsi_bios7.bin. Without the pair DSiWare and --dsi-mode are refused, while DS games do not use it."
|
|
source_ref: "src/core/nds_dsi.cpp:88-104, src/core/mem/bus.h:128, src/frontend/sdl/main.cpp:1179-1186"
|
|
|
|
- name: "dsi_bios7.bin"
|
|
system: nintendo-dsi
|
|
required: false
|
|
size: 65536
|
|
validation: [size]
|
|
config_key: "paths.bios7i"
|
|
description: "DSi ARM7 BIOS"
|
|
note: "Loaded only together with dsi_bios9.bin. Without the pair DSiWare and --dsi-mode are refused, while DS games do not use it."
|
|
source_ref: "src/core/nds_dsi.cpp:88-104, src/core/mem/bus.h:129, src/frontend/sdl/main.cpp:1179-1186"
|
|
|
|
- name: "dsi_firmware.bin"
|
|
system: nintendo-dsi
|
|
required: false
|
|
config_key: "paths.dsi_firmware"
|
|
description: "DSi firmware"
|
|
note: "Used instead of firmware.bin for a DSi session when no --firmware is given."
|
|
source_ref: "src/frontend/sdl/main.cpp:1176-1178"
|
|
|
|
- name: "dsi_nand.bin"
|
|
system: nintendo-dsi
|
|
required: false
|
|
config_key: "paths.dsi_nand"
|
|
description: "DSi NAND image with nocash footer"
|
|
note: "Read only by --dsi-mode and NAND title shortcuts. DSiWare run from the game list does without it. Opened read-only, rejected without the \"DSi eMMC CID/CPU\" footer."
|
|
source_ref: "src/frontend/sdl/main.cpp:1153-1166, src/frontend/sdl/main.cpp:1331-1337, src/core/nds_dsi.cpp:112-118, src/core/io/dsi_sd.cpp:105-138"
|
|
|
|
- name: "dsi_boot.bin"
|
|
system: nintendo-dsi
|
|
required: false
|
|
size: 340
|
|
validation: [size]
|
|
found_by: content
|
|
description: "DSi console data blob"
|
|
note: "Read only by dsperate-headless, through --dsi-boot, which has no default, so the name is a label. A file of any size other than 0x154 bytes stops the run. The blob is TWLCFG bytes 0x88-0x1AF, HWINFO_N bytes 0x88-0x9B and HWINFO_S bytes 0x88-0x9F, copied to 0x02000400, 0x02000600 and 0x02FFFD68 when a DSi title starts. Without it the same bytes are read from shared1/TWLCFG0.dat or TWLCFG1.dat (the higher save count at byte 0x81) and sys/HWINFO_N.dat and sys/HWINFO_S.dat of an attached NAND, generated for DSiWare run without a NAND, and left zero in card mode. Cut from a retail NAND's TWLCFG and HWINFO files, the blob differs per console."
|
|
source_ref: "src/frontend/headless/main.cpp:304, src/frontend/headless/main.cpp:386, src/frontend/headless/main.cpp:508, src/core/nds_dsi.cpp:107-111, src/core/nds_dsi.cpp:294, src/core/nds_dsi.cpp:340-343, src/core/nds_dsi.cpp:454-464, src/core/io/dsi_nand_launch.cpp:147-167, src/core/io/dsi_nand_synth.cpp:114-120"
|
|
|
|
- name: "TWLFontTable.dat"
|
|
system: nintendo-dsi
|
|
required: false
|
|
hle_fallback: true
|
|
min_size: 256
|
|
validation: [size]
|
|
config_key: "paths.dsi_font"
|
|
description: "DSi system font"
|
|
note: "Used for DSiWare run without a NAND. A path that names no file falls back to DSperate's own tables, linked into the binary. ROCKNIX's ini leaves the key unset. A file under 256 bytes stops the session. No hash is checked. The layout is read from bytes 0x84 and 0x86: 3 and 0 for the normal table (Japan, Americas, Europe, Australia), 9 and 4 for the Chinese one, 9 and 5 for the Korean one. Chinese and Korean titles need their own layout and every other title the normal one. Another layout only draws a warning, and the title does not find its fonts."
|
|
source_ref: "src/core/nds_dsi.cpp:311-323, src/core/io/dsi_font.cpp:38-43, src/frontend/sdl/main.cpp:1774-1778"
|
|
|
|
- name: "usrcheat.dat"
|
|
system: nintendo-ds
|
|
required: false
|
|
category: game_data
|
|
config_key: "paths.cheats"
|
|
description: "Action Replay cheat database"
|
|
note: "Looked up by game code and header checksum. Nothing is enabled by its presence."
|
|
source_ref: "src/frontend/sdl/main.cpp:635-657"
|