Skip to content

DSperate

Type standalone
Classification Other
Source https://github.com/beebono/DSperate
Version 2.0.1
Revision beebono/DSperate@81b73832c2e6
Profiled 2026-10-17
Profile YAML, JSON
Cores dsperate, dsperate-sa
Systems nintendo-ds, nintendo-dsi
Technical 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

9 files (11 accepted versions) | 0 required, 9 optional | 9 in repo, 0 missing | 4 with HLE fallback Categories: 10 BIOS, 1 game data

bios9.bin optional in repo HLE fallback #
DS ARM9 BIOS

bios7.bin optional in repo HLE fallback #
DS ARM7 BIOS

firmware.bin optional in repo HLE fallback #
DS firmware

dsi_bios9.bin optional in repo #
DSi ARM9 BIOS

dsi_bios7.bin optional in repo #
DSi ARM7 BIOS

dsi_firmware.bin optional in repo #
DSi firmware

dsi_nand.bin optional in repo #
DSi NAND image with nocash footer

TWLFontTable.dat optional in repo HLE fallback #
DSi system font (Japan, Americas, Europe, Australia)

  • System: nintendo-dsi
  • Size: 843.1 KB
  • SHA1: c1101d7c9224acfa0350b5fc62da97d4c6d36141
  • Source: 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
  • Collection copy: bios/Nintendo/DS/TWLFontTable.dat
  • Config key: paths.dsi_font
  • 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.

TWLFontTable.dat optional in repo HLE fallback #
DSi system font (China)

TWLFontTable.dat optional in repo HLE fallback #
DSi system font (Korea)

usrcheat.dat optional in repo game_data #
Action Replay cheat database

Generated on 2026-10-20T03:49:41Z