HeadlinesBriefing favicon HeadlinesBriefing.com

Construção de depuração de Resident Evil 4 para GameCube totalmente descompilada

Hacker News •
×

Foi alcançada uma descompilação completa e byte-identical de Resident Evil 4 para o Nintendo GameCube para a construção de depuração G4BE08 (o protótipo de “25 de novembro de 2004”, ambos os discos). O projeto reproduz exatamente main.dol e todos os 114 overlays REL, verificado por hashes SHA1 em cada construção. Inclui 1,083 objetos (675 no DOL, 408 nos RELs) e 15,641 funções, todos byte-identical. O código-fonte totaliza aproximadamente 555k linhas de C/C++ (~33k linhas de cabeçalhos) sem arquivos de assembly.

O jogo foi compilado com SN Systems Pro DG 3.9.3 — GCC 2.95.3, Metrowerks CodeWarrior 2.4.7 e CodeWarrior GC/1.2.5n. Inclui o middleware CRI (ADX, SFD, MPV) e as bibliotecas do SDK da Nintendo. O repositório não contém ativos do jogo; os usuários devem fornecer suas próprias imagens de disco de depuração (disco 1 para main.dol e 110 RELs, disco 2 para quatro RELs da fase da ilha). A construção requer Linux, Python 3 e ninja; os compiladores e ferramentas são baixados automaticamente exceto o GCC nativo do SN.

O matching significa que cada unidade é compilada para os bytes originais com os compiladores originais. Quando eram necessárias formas específicas de código-fonte para reproduzir escolhas de registros ou agendamento, as construções são marcadas com comentários `// COMPILER-DIFF:` (644 no total). Uma verificação automática confirma que apenas 231 instruções de kernel de hardware vêm de modelos de assembly. A documentação cobre a arquitetura do motor, a metodologia de matching, notas por unidade e logs de pesquisa de compiladores.

Entidades-chave: Empresas: Nintendo, SN Systems, Metrowerks, CRI Middleware | Pessoas: adonis-singh

Perguntas frequentes: O que significa ‘descompilação byte-identical’ para este projeto de Resident Evil 4?

Significa que o código recompilado (main.dol e todos os 114 overlays REL) corresponde byte a byte com a construção original de depuração do GameCube, verificado por hashes SHA1, usando os compiladores originais (SN Systems GCC 2.95.3 e Metrowerks CodeWarrior) e as formas originais de código-fonte.