# NTRGhidra

> Ghidra loader and plugin for Nintendo DS programs. It checks the .nds header, maps either the ARM9 or the ARM7 binary at its RAM address together with the console's memory regions and I/O register labels, decompresses SDK-compressed ARM9 code and overlays, and fills the overlays the user selects at import, while an optional overlay-manager plugin swaps overlays in and out afterwards. The repository also keeps a small Ghidra Function ID database of NitroSDK 3.0 routines for function identification.

- Type: Tool
- Targets: Game
- Category: Game analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-20
- Added to the catalog: 2026-11-02
- Original resource: <https://github.com/pedro-javierf/NTRGhidra>
- Primary source: <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/README.md>
- Catalog page: <https://awesomerea.org/resources/ntrghidra/>
- Record JSON: <https://awesomerea.org/resources/ntrghidra/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/ntrghidra/index.md)

## Requirements & limits

- Latest release at review: v1.5.1, published 2026-03-24 as NTRGhidra-build.zip for Ghidra 12.0.4, and its tag is the reviewed master commit; earlier releases were built for individual Ghidra 10.x and 11.x versions, and the README names 12.0.4 as the latest supported Ghidra version. The zip installs from the Ghidra project window's File → Install Extensions, and the overlay manager is enabled separately under CodeBrowser's File → Configure → Miscellaneous. The README says the project is looking for maintainers and contributors.
- Source builds need a Ghidra installation: build.gradle applies Ghidra's buildExtension.gradle from GHIDRA_INSTALL_DIR, the README describes an Eclipse build with the GhidraDev extension, and a GitHub Actions workflow builds the zip with Gradle on every push and attaches it to new releases. The repository has no tests; src/test holds only a placeholder README.
- Input is a .nds file the user supplies; the repository contains no ROMs or BIOS files. On import the loader rejects files whose header CRC does not match, asks whether the file is a commercial Nintendo SDK title or homebrew, and asks whether to load the ARM9 or the ARM7 code; commercial titles must carry the expected Nintendo logo CRC and have their ARM9 binary decompressed. The overlay manager re-reads overlays only from the original file at its import path, or from a substitute whose MD5 and SHA-256 match it.
- The fidb folder holds nitrosdk3.0.fidb, a 2 KB Function ID database that its README describes as hashes of NitroSDK 3.0.0 functions from commercial games, covering crt0 and file-system routines in ARM code but not Thumb; the loader does not apply it automatically. The loader names its format Nintendo DS (NTR) and DSi (TWL), and the source carries DSi register and memory-region lists, but import maps only the DS ARM9 and ARM7 lists, and CRT0 autoload handling is marked as a TODO.
- Apache-2.0. The README credits GBATEK for DS technical information and Gericom's Every File Explorer for the original header and ARM9 decompression code.

## Primary sources

1. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/README.md>
2. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/src/main/java/ntrghidra/NTRGhidraLoader.java>
3. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/src/main/java/ntrghidra/plugin/NTRGhidraPlugin.java>
4. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/src/main/java/ntrghidra/ARM9.java>
5. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/fidb/README.md>
6. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/build.gradle>
7. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/.github/workflows/build_ntrghidra.yml>
8. <https://github.com/pedro-javierf/NTRGhidra/blob/9e0674c0b36ef9b816dbe7833a68b17327edc1b9/LICENSE>
9. <https://github.com/pedro-javierf/NTRGhidra/releases/tag/v1.5.1>

## More in Games

- [mgbdis](https://awesomerea.org/resources/mgbdis/index.md) · Tool
- [ghidra-allegrex](https://awesomerea.org/resources/ghidra-allegrex/index.md) · Tool
- [GM8Decompiler](https://awesomerea.org/resources/gm8decompiler/index.md) · Tool
- [UELib (Unreal-Library)](https://awesomerea.org/resources/uelib-unreal-package-library/index.md) · Tool
- [DiztinGUIsh](https://awesomerea.org/resources/diztinguish/index.md) · Tool
- [Zygisk-Il2CppDumper](https://awesomerea.org/resources/zygisk-il2cppdumper/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
