This page is also available in Portuguese.
Sonic Heroes Decomp

About the project

The Sonic Heroes Decompilation is an open-source effort, started in July 2026 by Jovinull, to recover the source code of Sonic Heroes (Sonic Team, 2003) for the Nintendo GameCube. Each piece of the game is rewritten in C or C++ until the original CodeWarrior compiler turns it into exactly the same bytes that are on the retail disc.

The project rebuilds the main executable and all 17 overlay modules of the North American release, and the continuous-integration pipeline verifies every one of them against the original hashes on each change. It is non-commercial, takes no money and distributes nothing from the game itself.

Frequently asked questions

What is a matching decompilation?

It is source code written by hand that, compiled with the same compiler the developers used, produces exactly the same machine code as the original game. Every function is compared byte for byte, so the result is not an approximation: it is the game's logic, recovered as readable C and C++.

Is this a PC port? Can I play it?

No. This repository only rebuilds the original GameCube executable, and only for people who supply their own copy of the game. It does not produce anything playable on its own, and it ships no game data.

Will there be a PC, Dreamcast or other port?

Not from this project. Once the decompilation is complete, other people may build ports, mods or fixes on top of it, and several porters have said they are interested. Those would be separate projects.

Videos of "Sonic Heroes on Dreamcast" or other platforms that circulate today are not from this project and are not built on a finished decompilation.

When will it be finished?

There is no date. The progress page updates on every change and is the only honest answer.

Which version is decompiled, and why GameCube?

The North American GameCube release, revision 0 (G9SE8P). GameCube games were built with known Metrowerks CodeWarrior compilers, and the matching-decompilation tooling for the console (decomp-toolkit, objdiff) is mature. Byte-matching PC builds compiled with early-2000s x86 compilers is far less predictable. The PAL and Japanese releases may follow.

Is AI used?

Yes, and it is disclosed. Language models help write code, but nothing is accepted on trust: a function only counts as matched when objdiff shows it byte-identical to the original, and CI rebuilds the whole game and checks its SHA-1 on every change.

Does the repository contain the game?

No. It contains no game code, assets, disc images or extracted assembly, and building requires a legally obtained copy of the game. See LEGAL.md.

Where do the function names come from?

The GameCube disc ships no symbol map. Names and file boundaries are argued from evidence inside the GameCube binary, and from symbol metadata preserved in some PlayStation 2 builds of the game, which is only used locally as a lead and always confirmed against the GameCube code.

Why has progress been so fast?

A matching compiler, PS2-era symbol names, a lot of code shared between stage modules (written once and linked into up to 13 of them) and AI-assisted tooling running for long sessions. Every one of those matches is still checked byte for byte.

Is this affiliated with SEGA?

No. Sonic Heroes and all related trademarks belong to SEGA. This is a non-commercial fan study and preservation project. It takes no money: no ads, donations or paid builds.

How can I help?

See how to contribute. No previous decompilation experience is needed, and the Discord has a channel for newcomers.