mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-12 13:03:54 -06:00
pin_frozen was prose, and no tool read the build file it cites, so a platform building another revision left the profile holding one nobody ships. pin_build records the platform, its repository, the revision read, the file, the variable and its value. check_freshness reads the file again where the platform's YAML now stands and reports STALE when the value moved. 36 of the 46 held profiles carry it, each value read from the build file at the platform's scraped revision. The other ten name no build file and are counted on one row: six RetroBat binary packages and four holds not tied to a platform build.
179 lines
8.5 KiB
YAML
179 lines
8.5 KiB
YAML
emulator: "DSperate"
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/beebono/DSperate"
|
|
profiled_date: "2026-10-17"
|
|
source_commit: "81b73832c2e68e2b10cb5850f0a6d393ffc6fbb7"
|
|
pin_frozen: "ROCKNIX 20261001 ships the v2.0.1 release binaries, built by CI from the v2.0.1 tag at this commit."
|
|
pin_build:
|
|
- platform: rocknix
|
|
repo: "https://github.com/ROCKNIX/distribution"
|
|
revision: "20261001"
|
|
path: "projects/ROCKNIX/packages/emulators/standalone/dsperate-sa/package.mk"
|
|
variable: PKG_VERSION
|
|
value: "2.0.1"
|
|
core_version: "v2.0.1"
|
|
version_basis:
|
|
kind: tag
|
|
tag: "v2.0.1"
|
|
distance: 0
|
|
display_name: "Nintendo - DS / DSi (DSperate)"
|
|
cores:
|
|
- "dsperate"
|
|
- "dsperate-sa"
|
|
systems:
|
|
- nintendo-ds
|
|
- nintendo-dsi
|
|
|
|
data_root:
|
|
linux:
|
|
path: "$XDG_CONFIG_HOME/dsperate"
|
|
source_ref: "src/frontend/sdl/config.cpp:31-41"
|
|
note: "~/.config/dsperate when XDG_CONFIG_HOME is unset. System files are read wherever the [paths] keys of the ini point."
|
|
|
|
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 the ones ROCKNIX's dsperate.ini gives,
|
|
all in /storage/roms/bios/.
|
|
ref: src/frontend/sdl/config.cpp:184-205, src/frontend/sdl/main.cpp:1289-1303
|
|
|
|
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:101-133, src/core/mem/bus.h:121-131,
|
|
src/frontend/sdl/main.cpp:1410, src/frontend/sdl/main.cpp:1440-1447
|
|
|
|
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:1294-1308, src/frontend/sdl/main.cpp:1452-1460,
|
|
src/core/nds_dsi.cpp:95-112, src/core/nds_dsi.cpp:121-127,
|
|
src/core/io/dsi_sd.cpp:111-140, src/core/nds_dsi.cpp:356-373,
|
|
src/frontend/sdl/main.cpp:1915-1919
|
|
|
|
Cheats come from usrcheat.dat: the [paths] cheats entry, else beside the ROM,
|
|
else the config directory.
|
|
ref: src/frontend/sdl/main.cpp:709-735
|
|
|
|
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:105-108, src/core/mem/bus.h:130, src/frontend/sdl/main.cpp:1440-1460"
|
|
|
|
- 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:105-109, src/core/mem/bus.h:131, src/frontend/sdl/main.cpp:1440-1460"
|
|
|
|
- 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:110, src/core/nds.cpp:124-125, src/frontend/sdl/main.cpp:1441-1447"
|
|
|
|
- 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:95-106, src/core/mem/bus.h:121, src/frontend/sdl/main.cpp:1301-1308"
|
|
|
|
- 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:95-106, src/core/mem/bus.h:122, src/frontend/sdl/main.cpp:1301-1308"
|
|
|
|
- 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:1294-1298"
|
|
|
|
- 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:1263-1272, src/core/nds_dsi.cpp:121-127, src/core/io/dsi_sd.cpp:111-140"
|
|
|
|
- name: "TWLFontTable.dat"
|
|
system: nintendo-dsi
|
|
required: false
|
|
hle_fallback: true
|
|
size: 863296
|
|
sha1: "c1101d7c9224acfa0350b5fc62da97d4c6d36141"
|
|
config_key: "paths.dsi_font"
|
|
description: "DSi system font (Japan, Americas, Europe, Australia)"
|
|
note: "Used for DSiWare run without a NAND. Absent, DSperate's own font table is generated. ROCKNIX's ini leaves the key unset. A file under 256 bytes is refused. No hash is checked, only the layout bytes 0x84 and 0x86, and a table whose layout differs from the title's region draws a warning. This is the normal layout (0x84 = 3, 0x86 = 0), read from nand:/sys/TWLFontTable.dat of a retail DSi NAND dump. The FAT16 partition is AES-CTR encrypted with the normal key ROL128((KeyX XOR KeyY) + 0xFFFEFB4E295902582A680F5F1A4F3E79, 42), where KeyX is built from the console ID in the nocash footer and KeyY is 0x0AB9DC76 0xBD4DC4D3 0x202DDD1D 0xE1A00005. The counter is the first 16 bytes of SHA-1 of the footer's eMMC CID, and each 16-byte block is byte-reversed before and after AES. The USA, Europe, Japan and Australia consoles, four different console IDs, give the same bytes."
|
|
source_ref: "src/core/nds_dsi.cpp:356-373, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:794-809, src/core/io/dsi_aes.cpp:39-47, src/frontend/sdl/main.cpp:1915-1919"
|
|
|
|
- name: "TWLFontTable.dat"
|
|
system: nintendo-dsi
|
|
required: false
|
|
hle_fallback: true
|
|
size: 581664
|
|
sha1: "5170aff7e9766baadbbf2943c41f5634e82aaf2d"
|
|
config_key: "paths.dsi_font"
|
|
description: "DSi system font (China)"
|
|
note: "The Chinese layout (0x84 = 9, 0x86 = 4), which Chinese DSiWare needs to find its fonts. Read from nand:/sys/TWLFontTable.dat of a retail Chinese DSi NAND dump, decrypted as for the normal table."
|
|
source_ref: "src/core/nds_dsi.cpp:360-367, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:794-809, src/core/io/dsi_aes.cpp:39-47"
|
|
|
|
- name: "TWLFontTable.dat"
|
|
system: nintendo-dsi
|
|
required: false
|
|
hle_fallback: true
|
|
size: 162688
|
|
sha1: "f0a37b073eb0208d3a54c9a6bb94292dbec1192a"
|
|
config_key: "paths.dsi_font"
|
|
description: "DSi system font (Korea)"
|
|
note: "The Korean layout (0x84 = 9, 0x86 = 5), which Korean DSiWare needs to find its fonts. Read from nand:/sys/TWLFontTable.dat of a retail Korean DSi NAND dump, decrypted as for the normal table."
|
|
source_ref: "src/core/nds_dsi.cpp:360-367, src/core/io/dsi_font.cpp:38-43, src/core/io/dsi_nand_fs.cpp:794-809, src/core/io/dsi_aes.cpp:39-47"
|
|
|
|
- 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:709-735"
|