Sobre o projeto
A decompilação de Sonic Heroes é um esforço de código aberto, iniciado em julho de 2026 por Jovinull, para recuperar o código-fonte de Sonic Heroes (Sonic Team, 2003) para o Nintendo GameCube. Cada parte do jogo é reescrita em C ou C++ até que o compilador CodeWarrior original a transforme exatamente nos mesmos bytes que estão no disco original.
O projeto reconstrói o executável principal e os 17 módulos de overlay da versão norte-americana, e a integração contínua confere cada um deles contra os hashes originais a cada mudança. Não tem fins comerciais, não recebe dinheiro e não distribui nada do jogo.
Perguntas frequentes
O que é uma decompilação correspondente?
É código-fonte escrito à mão que, compilado com o mesmo compilador usado pelos desenvolvedores, gera exatamente o mesmo código de máquina do jogo original. Cada função é comparada byte a byte, então o resultado não é uma aproximação: é a lógica do jogo recuperada em C e C++ legíveis.
Isto é um port para PC? Dá para jogar?
Não. Este repositório só reconstrói o executável original do GameCube, e só para quem fornece a própria cópia do jogo. Ele não gera nada jogável sozinho e não distribui dados do jogo.
Vai ter port para PC, Dreamcast ou outra plataforma?
Não por este projeto. Quando a decompilação estiver completa, outras pessoas poderão construir ports, mods ou correções em cima dela, e vários desenvolvedores de ports já disseram ter interesse. Seriam projetos separados.
Os vídeos de "Sonic Heroes no Dreamcast" ou em outras plataformas que circulam hoje não são deste projeto e não se baseiam numa decompilação terminada.
Quando vai terminar?
Não há data. A página de progresso é atualizada a cada mudança e é a única resposta honesta.
Qual versão é decompilada, e por que GameCube?
A versão norte-americana de GameCube, revisão 0 (G9SE8P). Os jogos de GameCube foram compilados com versões conhecidas do Metrowerks CodeWarrior, e as ferramentas de decompilação correspondente do console (decomp-toolkit, objdiff) são maduras. Bater byte a byte builds de PC feitos com compiladores x86 do começo dos anos 2000 é bem menos previsível. As versões PAL e japonesa podem vir depois.
Vocês usam IA?
Sim, e isso é declarado. Modelos de linguagem ajudam a escrever código, mas nada é aceito na confiança: uma função só conta como correspondente quando o objdiff mostra que ela é idêntica byte a byte ao original, e o CI recompila o jogo inteiro e confere o SHA-1 a cada mudança.
O repositório contém o jogo?
Não. Ele não contém código do jogo, assets, imagens de disco nem assembly extraído, e compilar exige uma cópia do jogo obtida legalmente. Veja o LEGAL.md.
De onde vêm os nomes das funções?
O disco de GameCube não traz mapa de símbolos. Nomes e limites de arquivo são deduzidos de evidências dentro do binário do GameCube e de metadados de símbolos preservados em alguns builds de PlayStation 2 do jogo, usados só localmente como pista e sempre confirmados contra o código do GameCube.
Por que o progresso tem sido tão rápido?
Um compilador correspondente, nomes de símbolos da era do PS2, muito código compartilhado entre os módulos de fase (escrito uma vez e ligado em até 13 deles) e ferramentas assistidas por IA rodando em sessões longas. Cada uma dessas correspondências continua sendo conferida byte a byte.
Isto é afiliado à SEGA?
Não. Sonic Heroes e todas as marcas relacionadas pertencem à SEGA. Este é um projeto de fã, sem fins comerciais, de estudo e preservação. Não recebe dinheiro: sem anúncios, doações ou builds pagos.
Como posso ajudar?
Veja como contribuir. Não é preciso ter experiência com decompilação, e o Discord tem um canal para iniciantes.