Fire Emblem: Shadow Dragon
TechnologyNative C/C++ port (engine reimplementation)
Available forWindows, Linux, macOS
View official projectAbout the project
Fire Emblem: Shadow Dragon es el undécimo juego de la saga Fire Emblem, desarrollado por Intelligent Systems y publicado por Nintendo para la consola portátil Nintendo DS. El juego es un remake del primer Fire Emblem: Ankoku Ryū to Hikari no Tsurugi que incluye mejoras y una historia más larga. Es el primer juego de la saga para esta consola y el primero de todos en tener funciones en línea.
Official project information
Fire Emblem: Shadow Dragon
This is a decompilation of Fire Emblem: Shadow Dragon (NDS), powered by ds-decomp.
It builds the following ROM:
- fe11_YFEE01.nds:
sha1: 7b7b307ef819ac31a7b71aed2e8e47ff23c1765e
Setup
Prerequisites
- Use one of these platforms:
- Windows (recommended)
- Linux
- Install the following:
- Python 3.11+ and pip
- GCC 9+
- Ninja
- Install the Python dependencies:
python -m pip install -r tools/requirements.txt - Run the Ninja configure script:
python tools/configure.py YFEE01 - Put one or more base ROMs in the
/extract/directory of this repository.
Now you can run ninja to build a ROM for the chosen version. Currently, only the US version is supported.
Running ninja again after making any changes to the project (e.g. source files, delinks.txt, etc) should automatically re-run configure.py to ensure that all code gets compiled.
[!NOTE] Wibo is used by default. If you want to use Wine instead, run
configure.pywith-w <path/to/wine>.
Matching the base ROM
This is optional! You only need to follow these steps if you want a matching ROM.
First, extract the ARM7 BIOS from your DS device. Put the ARM7 BIOS in the root directory of this repository, and verify that your dumped BIOS matches one of the following:
| File name | SHA1 |
|---|---|
arm7_bios.bin | 24f67bdea115a2c847c8813a262502ee1607b7df |
arm7_bios.bin | 6ee830c7f552c5bf194c20a2c13d5bb44bdb5c03 |
Now, rerun configure.py so it can update build.ninja to build a matching ROM.
Contributing
This project uses the object diffing tool objdiff to track differences between our decompiled C code and the base ROM's code.
- Download the latest release.
- Run
configure.py YFEE01andninjato generateobjdiff.jsonin the repository root. - In
objdiff, set the project directory to the repository root. - Select your source file in the left sidebar.
- See the list of functions and data to decompile.
See also
- StanHash/fe1, a disassembly of Fire Emblem: Ankoku Ryu to Hikari no Tsurugi (NES, JP)
- ZaneAvernathy/FireEmblem5, a disassembly of Fire Emblem: Thracia 776 (SFC, JP)
- FireEmblemUniverse/fireemblem6j, a decompilation of Fire Emblem: Fūin no Tsurugi (GBA, JP)
- MokhaLeee/FireEmblem7J, a decompilation of Fire Emblem: Rekka no Ken (GBA, JP)
- FireEmblemUniverse/fireemblem8u, a decompilation of Fire Emblem: The Sacred Stones (GBA, US)
- AetiasHax/ph, a decompilation of The Legend of Zelda: Phantom Hourglass (NDS)
- LagoLunatic/ooe, a decompilation of Castlevania: Order of Ecclesia (NDS)
