Progresso da decompilação
Quanto de Sonic Heroes já foi reconstruído a partir do código-fonte, medido pelo relatório do objdiff que cada build na main gera.
Por parte do jogo
O jogo é um executável principal (main.dol) e 17 módulos REL carregados por fase ou tela. As bibliotecas do Dolphin SDK são contadas à parte.
Motor, RenderWare, middleware CRI, o SDK e código compartilhado do jogo.
Fases, menus e os objetos que vivem neles.
As bibliotecas da Nintendo para GameCube ligadas ao jogo.
O que os números significam
Código correspondente
Bytes de código de máquina cujo fonte foi reescrito e compila exatamente para as instruções originais.
Dados correspondentes
Bytes de tabelas, textos e constantes que o código reescrito já gera de forma idêntica.
Funções correspondentes
Funções idênticas byte a byte ao original, contadas uma a uma.
Unidades completas
Unidades de tradução (os arquivos-fonte originais, na melhor reconstrução possível) em que tudo corresponde.
O main.dol e os 17 RELs reconstruídos já têm o mesmo hash do disco original. Isso não quer dizer que o jogo esteja todo decompilado: as partes ainda não reescritas continuam passando pelo build, por isso o progresso é lido no objdiff e não no SHA-1 final.
Linha do tempo
Marcos conforme registrados no Discord e nos pull requests do projeto. As porcentagens são de código correspondente na época.
Repositório criado
O projeto começa a partir do template de decompilação de GameCube, configurado para o disco norte-americano (G9SE8P).
Discord aberto e chega o primeiro contribuidor
Cypress, desenvolvedor de homebrew de Dreamcast, entra já com funções correspondentes prontas. No mesmo dia é combinada a regra de que o uso de IA é declarado e verificado.
Primeiros pull requests da comunidade
Os módulos de sistema operacional do Dolphin SDK começam a entrar, a partir do cronômetro do OS (#3).
2% do código
O progresso dobra em dois dias com as bibliotecas do SDK e do middleware CRI.
O código do jogo passa para C++
Uma auditoria de linguagem, baseada em nomes mangled, vtables e registros de classe, confirma que o código do próprio jogo é C++ (discussão #117).
As telas iniciais estão completas
O overlay
advertiseDinteiro (sequência de demonstração, tela de título, seleção de arquivo, menus e créditos finais) é reconstruído por Cypress (#125). O progresso passa de 4%.7% do código
Os módulos de fase e o código compartilhado do motor começam a se encaixar.
61 pull requests de reconstrução integrados
Um lote grande de Cypress entra numa integração só (#612).
23,7% do código
O código compartilhado entre fases é escrito uma vez e ligado em todos os módulos que o usam, às vezes 13 de uma vez.
decomp.dev encerra o índice público
O rastreador de progresso usado desde julho para de listar projetos. O acompanhamento passa para o ByteMatch, que lê os mesmos relatórios do CI.
35,4% do código, mais da metade das funções
20.559 de 39.062 funções correspondem, e todas as funções das bibliotecas do SDK estão prontas.
Rastreadores
O progresso é publicado no ByteMatch, que lê o relatório do CI diretamente. O decomp.dev, que acompanhou o projeto desde julho de 2026, parou de listar projetos novos em outubro de 2026 e mantém a página existente por enquanto.