Esta página também está disponível em inglês.
Sonic Heroes Decomp

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.

Código correspondente
35,4%
4.618.108 / 13.039.060 bytes
Dados correspondentes
9,47%
679.064 / 7.167.586 bytes
Funções correspondentes
52,6%
20.559 / 39.062 funções
Unidades completas
66,6%
11.012 / 16.538 unidades
Última publicação: 2026-10-24 Último commit: …

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.

Executável principal

Motor, RenderWare, middleware CRI, o SDK e código compartilhado do jogo.

Código28,1%
Dados27,6%
Funções43,3%
Unidades19,4%
Módulos REL

Fases, menus e os objetos que vivem neles.

Código36,9%
Dados1,90%
Funções54,4%
Unidades72,7%
Dolphin SDK

As bibliotecas da Nintendo para GameCube ligadas ao jogo.

Código100%
Dados99,8%
Funções100%
Unidades100%

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.

  1. Repositório criado

    O projeto começa a partir do template de decompilação de GameCube, configurado para o disco norte-americano (G9SE8P).

  2. 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.

  3. 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).

  4. 2% do código

    O progresso dobra em dois dias com as bibliotecas do SDK e do middleware CRI.

  5. 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).

  6. As telas iniciais estão completas

    O overlay advertiseD inteiro (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. 7% do código

    Os módulos de fase e o código compartilhado do motor começam a se encaixar.

  8. 61 pull requests de reconstrução integrados

    Um lote grande de Cypress entra numa integração só (#612).

  9. 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.

  10. 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.

  11. 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.