A work-in-progress decompilation of the GameCube and PS2 versions of Spyro: A Hero's Tail.
This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required.
Supported versions:
G5SE7D: (NTSC)PS2: (Pal PS2 Release)
On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.
When running under WSL, objdiff is unable to get filesystem notifications for automatic rebuilds.
- Install Python and add it to
%PATH%.- Also available from the Windows Store.
- Download ninja and add it to
%PATH%.- Quick install via pip:
pip install ninja
- Quick install via pip:
-
Install ninja:
brew install ninja
wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
- Install ninja.
wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
- Clone the repository:
git clone https://github.com/LivewireCB/Hero-s-Tail-Decomp.git- Configure:
python configure.py- Build:
ninja- Extract
Spyro.ELF, copy it intoorig/G5SE7D, and convert it into a DOL using the following command:
./build/tools/dtk elf2dol ./orig/G5SE7D/Spyro.ELF ./orig/G5SE7D/sys/main.dol- Build:
ninja- Install Prerequisites:
pip install -r requirements.txt- Configure:
python configure.py -v PS2-
Extract
SLES525.69, and copy it intoorig/PS2 -
Build:
ninjaThe ability to switch between the GC and PS2 versions is extremely new, Any bugs have not been caught yet. If you were to run into a bug, most times it can be solved by deleting the build folder and the .splache
Bare with me as I work out the kinks of this system.
Once the initial build succeeds, an objdiff.json should exist in the project root.
Download the latest release from encounter/objdiff. Under project settings, set Project directory. The configuration should be loaded automatically.
Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, configure.py, splits.txt or symbols.txt.
