mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-13 05:23:51 -06:00
prepare_dsi_hle refuses a TWLFontTable.dat under 256 bytes and reads its layout from bytes 0x84 and 0x86, warning on a mismatch. No hash is checked, so the three retail NAND sha1s go, and one entry states the size floor and the three layouts.
158 lines
7.1 KiB
YAML
158 lines
7.1 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."
|
|
|
|
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: "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"
|