While NDS decompilation has come a long way, there are still challenges and limitations to consider:
| Tool | Decompilation Quality for NDS | Notes | |------|-------------------------------|-------| | (with Sleigh ARM/Thumb) | Good – best free option | Handles Thumb mode switching if configured correctly; needs manual type restoration | | IDA Pro (Hex-Rays) | Very good (commercial) | Better at function boundary detection, but costly | | radare2 + r2dec | Fair | Requires extensive scripting for NDS specifics | | Decompiler Explorer (Dogbolt) | Not directly for NDS | Can compare Ghidra/IDA outputs for small functions | | no$gba debugger | No decompiler, but excellent dynamic analysis | Useful to verify decompiled logic | | NDSDis (custom scripts) | Limited | Old tool, mainly disassembly |
Create a new project and import arm9.bin . The loader will automatically prompt you to select the architecture ( or similar for ARM9) and configure the base RAM addresses ( 0x02000000 for ARM9). Step 3: Auto-Analysis and Decompilation Once imported, open the binary in Ghidra's CodeBrowser. Ghidra will ask if you want to analyze the file. Click Yes . nds decompiler
Ghidra features a highly robust, built-in C decompiler that handles ARM and Thumb code flawlessly.
Identify standard NDS hardware registers (like graphic registers or input registers). While NDS decompilation has come a long way,
Whether your goal is to create game modifications (ROM hacks), preserve digital history, patch game-breaking bugs, or analyze how classic 2000s games handled rendering and logic, decompilation is the definitive gateway to understanding Nintendo DS architecture.
A decompiler cannot read a raw .nds file directly without help. You must first extract the individual executables. Tools like ndstool (command-line) or NitroExplorer (graphical interface) are used to unpack the ROM, splitting it into arm9.bin , arm7.bin , and the asset file system. Step-by-Step NDS Decompilation Workflow Ghidra will ask if you want to analyze the file
If you want to take your first steps into reverse engineering Nintendo DS games, let me know: Do you have a you want to analyze? Which operating system (Windows, Mac, Linux) do you use?
Notable successes include the complete decompilation of Pokémon Diamond and Pearl (pokediamond project) and Super Mario 64 DS . These projects provide a fully recompilable C source tree that matches the original game byte-for-byte. The Step-by-Step NDS Decompilation Process