This project aims to create a 1:1 disassembly and decompilation of Dragon Quest IX: Sentinels of the Starry Skies for the Nintendo DS.
The primary focus is on the USA version of the game, with the goal of making it fully recompilable.
-
Windows:
- Install
make
by using MSYS2. - Alternatively, if you develop Homebrew applications, it comes bundled with DevkitPro installation.
- Install
-
macOS:
- Install Xcode Command Line Tools, which include
make
:xcode-select --install
- Alternatively, if you use Homebrew:
brew install make
- Install Xcode Command Line Tools, which include
-
Linux:
make
is usually pre-installed. If not, install it using your package manager:- Debian/Ubuntu-based systems:
sudo apt update && sudo apt install make
- Red Hat-based systems (Fedora, CentOS):
sudo dnf install make
- Arch-based systems:
sudo pacman -S make
- Debian/Ubuntu-based systems:
- Download the compiler mwccarm.zip.
- Extract its contents to a folder named
tools
in the root directory of the project.
(TODO: The Makefile
currently only produces the executable, not the ROM)
Once everything is set up:
- Open the command line in the root folder of the repository.
- Run the following command:
make
This will initiate the compilation process.
Important
Ensure the decompiled code you submit produces the same binary as the original release game.
(TODO: Implement a hashing mechanism to verify this.)
- The binary currently doesn't match the original game due to unresolved issues with
.bss
sections. (Help fix this!)
The immediate objective is to fix the .bss
sections in the disassembly:
- At the end of
main.s
, there are numerous labels meant for a.bss
section. - These labels need to be matched with their correct memory positions, either in
main.s
or the relevant overlay files.
-
Ghidra (with the NTRGhidra plugin):
- A powerful reverse engineering tool for DS games and code.
- Download Ghidra
- Get NTRGhidra Plugin
-
Desmume:
- A DS emulator with excellent debugging features.
- Download nightly builds
-
No$GBA:
- Another popular DS emulator for debugging, though less user-friendly.
- Download No$GBA
This project is a work in progress. Community contributions and feedback are welcome to help improve accuracy and functionality!