This page is also available in Portuguese.
Sonic Heroes Decomp

Contribute

You do not need previous decompilation experience, just patience and a willingness to read PowerPC assembly. Most people start with one small function and pick up the rest as they go.

How the work goes

1. Say what you are taking

Post in #decomp on Discord before you start, so two people do not spend a weekend on the same function.

2. Open it in objdiff

Your compiled output on one side, the original on the other. The job is to make them identical.

3. Write the original-language source

C or C++ that the 2003 CodeWarrior compiler turns into those exact instructions, not code that merely behaves the same.

4. Open a pull request

Once it matches, open a pull request. CI rebuilds the whole game and checks every hash.

Build it yourself

You supply the game; the toolchain and configuration are in the repository. Python and ninja must be on your PATH.

# 1. clone
git clone https://github.com/Jovinull/sonicheroes.git
cd sonicheroes

# 2. turn on the safety hook (refuses commits that stage game data)
git config core.hooksPath .githooks

# 3. put YOUR copy of the game in orig/G9SE8P/, then
python configure.py
ninja

Full guide: docs/getting_started.md · rules: CONTRIBUTING.md and LEGAL.md · newcomer questions: #decomp-help on Discord.

objdiff showing a fully matching object
objdiff after a successful match: every instruction lines up with the original.