Skip to content

Nintendo DS and 3DS ​

The DS and 3DS run ARM code from cartridges. The DS splits a game between an ARM9 and an ARM7 binary. 3DS games store their code in AES-encrypted containers. Before any analysis, you need a decrypted dump and the right Ghidra loader.

The devices ​

DeviceYearsCPU and clockMedia and formatGhidra supportEmulator with a debugger
Nintendo DS, DSi21 November 2004ARM946E-S at 67 MHz and ARM7TDMI at 33 MHzARM9 and ARM7 binaries, overlays, NitroFSNTRGhidramelonDS, DeSmuME, no$gba
Nintendo 3DS26 February 2011 (JP)ARM11 MPCore, 2 cores at 268 MHz; ARM9 for securityNCSD/CCI, CIA, NCCH with ExeFS; 3DSX homebrewghidra-3ds, ghidra-3dsx-loaderAzahar

Nintendo DS and DSi ​

Hardware ​

The DS has an ARM946E-S at 67 MHz and an ARM7TDMI at 33 MHz. A game ships ARM9 and ARM7 binaries, overlays and a NitroFS file system (Nintendo DS; GBATEK).

Tools ​

NTRGhidra loads DS binaries. Load the ARM9 and the ARM7 code as separate programs. Ghidra builds in the ARM7 (ARM and Thumb). melonDS, DeSmuME and no$gba run the games. GBATEK is the community document for the GBA and DS.

Projects to learn from ​

pret's pokeplatinum and pokeheartgold are active C decompilations. An SDL3 port fork is in progress (gittrend: pokeplatinum; pokeplatinum-portable).

Nintendo 3DS ​

Hardware ​

The 3DS has an ARM11 MPCore with 2 cores at 268 MHz. An ARM9 handles security. Formats are NCSD/CCI, CIA and NCCH with ExeFS. Homebrew uses 3DSX (Nintendo 3DS; 3dbrew).

Keys and encrypted executables ​

3DS content is AES-encrypted, with keys in the ARM9 boot ROM (3dbrew). The user decides how to obtain and use their own keys and dumps.

Tools ​

ghidra-3ds loads 3DS files. Its analysis is described as "pretty broken". ghidra-3dsx-loader loads 3DSX homebrew. Azahar runs the games.

Citra was taken down in March 2024, at the same time as the yuzu settlement (Wikipedia: Citra; Switch family). Lime3DS and PabloMK7's fork merged into Azahar in late 2024, with first releases in early 2025 (Azahar; tech-insider). Repositories can disappear, so pin an exact emulator build and keep a local copy.

Projects to learn from ​

No completed 3DS matching decompilation is known.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.