Skip to content

DQIX/DQIX-Decomp-Project

Repository files navigation

Dragon Quest IX: Sentinels of the Starry Skies Decompilation Project

πŸ“– About

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.


βš™οΈ Setup

πŸ› οΈ Prerequisites

Installing make

  • Windows:

    • Install make by using MSYS2.
    • Alternatively, if you develop Homebrew applications, it comes bundled with DevkitPro installation.
  • macOS:

    • Install Xcode Command Line Tools, which include make:
      xcode-select --install
    • Alternatively, if you use Homebrew:
      brew install make
  • 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

Compiler

  • Download the compiler mwccarm.zip.
  • Extract its contents to a folder named tools in the root directory of the project.

ROM Setup

(TODO: The Makefile currently only produces the executable, not the ROM)


πŸš€ Building the Project

Once everything is set up:

  1. Open the command line in the root folder of the repository.
  2. Run the following command:
    make

This will initiate the compilation process.


🀝 Contributing

πŸ“€ Submitting Contributions

Important

Ensure the decompiled code you submit produces the same binary as the original release game.
(TODO: Implement a hashing mechanism to verify this.)

Known Issue

  • The binary currently doesn't match the original game due to unresolved issues with .bss sections. (Help fix this!)

πŸ§‘β€πŸ’» Current Goals

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.

πŸ”§ Useful Tools

  1. Ghidra (with the NTRGhidra plugin):

  2. Desmume:

  3. No$GBA:

    • Another popular DS emulator for debugging, though less user-friendly.
    • Download No$GBA

✨ Notes

This project is a work in progress. Community contributions and feedback are welcome to help improve accuracy and functionality!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published