N64Recomp

GoldenEye 007 acabou de alcançar 100% de decompilação, e isso muda o que as pessoas podem fazer com o jogo: modificações que eram impossíveis em um emulador, portas de PC nativas com suporte adequado a tela panorâmica e desbloqueios de taxa de quadros, e implementações de referência para futuros projetos de engenharia reversa do N64. As ferramentas que tornaram isso possível são de código aberto, e se você alguma vez desejou ver dentro de um jogo N64, usaria as mesmas.

Revisamos 8 aplicações de desktop que tornam possíveis os fluxos de trabalho de decompilação e portabilidade do N64 hoje. Cada escolha é gratuita, de código aberto e ativamente mantida no GitHub.

O que procurar em um aplicativo de decompilação N64

A engenharia reversa do N64 é incomum porque o console se destina ao MIPS III, e os compiladores da época (IDO, EGCS) deixaram impressões digitais específicas. As ferramentas modernas levam isso em conta.

Tabela de comparação rápida

Aplicação Melhor para Plataformas Plano gratuito Preço de início/mês Classificação
N64Recomp Recompilação estática para binário nativo Windows, Linux, macOS Totalmente gratuito Gratuito Comunidade em rápido crescimento
splat Divisão binária e extração de ativos Windows, Linux, macOS Totalmente gratuito Gratuito Padrão em decompilações N64 modernas
decomp.me Playground de teste de correspondência baseado em web Web Totalmente gratuito Gratuito Plataforma comunitária amplamente usada
mips_to_c Conversão de assembly para C Windows, Linux, macOS Totalmente gratuito Gratuito Ferramenta de decompilação de longa data
IDO recomp Recompilação do compilador IDO original Windows, Linux, macOS Totalmente gratuito Gratuito Permite fluxos de trabalho orientados ao primeiro match
ares Emulador N64 preciso em ciclos para testes Windows, macOS, Linux Totalmente gratuito Gratuito Emulador de alta precisão
GloverN64 Projeto de referência de porta N64 Windows, macOS, Linux Totalmente gratuito Gratuito Projeto comunitário
PermuterPy Busca de correspondência automatizada via mutação Windows, Linux, macOS Totalmente gratuito Gratuito Padrão em decompilações modernas

Os aplicativos

1. N64Recomp – Melhor para recompilação estática para binário nativo

N64Recomp pega o código MIPS de uma ROM N64 e o reescreve em LLVM IR, que então compila para um binário x86 ou ARM nativo. Isso é o que permite que projetos como Zelda 64 Recompiled e a porta recente do GoldenEye rodem a centenas de frames por segundo com renderização de alta resolução, sem necessidade de emulador.

Onde é fraco: Requer um jogo totalmente decompilado para produzir uma porta bem integrada. Recompilação ROM-em-saída direta funciona para muitos jogos, mas não todos.

Preço:

Plataformas: Windows, Linux, macOS

Baixar: GitHub

Conclusão: A ferramenta responsável pela onda atual de portas N64 nativas.

2. splat – Melhor para divisão binária e extração de ativos

splat pega uma ROM N64 e produz o layout estruturado do projeto que toda decompilação moderna usa: arquivos de assembly divididos por símbolo, ativos extraídos (texturas, música, dados de nível) e um sistema de construção que monta tudo de volta em uma ROM correspondente. Todo projeto sério de decompilação N64 começa aqui.

Onde é fraco: Requer configuração por jogo; espere gastar a primeira semana criando o arquivo de divisão.

Preço:

Plataformas: Windows, Linux, macOS (Python)

Baixar: GitHub

Conclusão: A primeira ferramenta que você instala ao iniciar um projeto de decompilação N64.

3. decomp.me – Melhor para testar uma correspondência de função C candidata

decomp.me é um IDE baseado em web para teste de correspondência de decompilação. Cole em uma função de assembly alvo, escreva C candidato, pressione compilar e veja instantaneamente se o compilador produz saída idêntica de byte. Ele suporta alvos N64, GameCube, PS2 e DS, e o fluxo de trabalho de bloco de notas compartilhado torna a colaboração indolor.

Onde é fraco: Apenas web; sem modo offline. Taxa limitada sob carga pesada.

Preço:

Plataformas: Web (baseado em navegador)

Baixar: Site oficial · GitHub

Conclusão: A ferramenta mais usada por colaboradores ativos de decompilação N64.

4. mips_to_c – Melhor para converter assembly MIPS em rascunho C

mips_to_c produz um rascunho C legível de uma função MIPS. Não é um gerador de correspondência; a saída é um ponto de partida que você edita e refina até que decomp.me reporte uma correspondência. Economiza horas por função na primeira passagem.

Onde é fraco: A saída é um rascunho. Compilação direta quase nunca corresponde sem edição humana.

Preço:

Plataformas: Windows, Linux, macOS (Python)

Baixar: GitHub

Conclusão: Reduz o tempo de primeira passagem em qualquer função que seja mais que trivial.

5. IDO recomp – Melhor para reproduzir o compilador N64 original

IDO recomp é uma recompilação estática do compilador IDO da SGI, aquele que a Nintendo usou para a maioria de seus títulos N64 de primeira parte. Executar o compilador original em sistemas operacionais modernos é o que torna a correspondência perfeita de bytes possível; sem ele, o decompilador apenas produziria aproximações do original.

Onde é fraco: Apenas útil se o jogo alvo foi compilado com IDO. Jogos GCC/EGCS (saída da Rare, incluindo GoldenEye) precisam de diferentes compilações de compilador.

Preço:

Plataformas: Windows, Linux, macOS

Baixar: GitHub

Conclusão: Não é um decompilador em si, mas a peça que torna a decompilação determinística.

6. ares – Melhor para verificação N64 precisa em ciclos

ares é um emulador multissistema com emulação N64 precisa em ciclos. Para trabalho de decompilação, essa precisão importa: quando uma reconstrução candidata produz uma ROM que roda no ares identicamente ao original, você tem confiança real na correspondência.

Onde é fraco: Requisitos de CPU mais altos que emuladores casuais como Project64. Não é a escolha para gameplay puro.

Preço:

Plataformas: Windows, macOS, Linux

Baixar: Site oficial · GitHub

Conclusão: O emulador de qualidade de verificação para testar reconstruções.

7. GloverN64 – Melhor projeto de exemplo para aprender

GloverN64 é um da crescente biblioteca de projetos de decompilação N64 orientados pela comunidade, e seu repositório é suficientemente bem organizado para servir como referência de como splat, mips_to_c e IDO recomp se encaixam juntos em um build real. Ler o arquivo de divisão de outra pessoa é a forma mais rápida de entender o seu.

Onde é fraco: Em progresso; nem toda função está decompilada.

Preço:

Plataformas: Windows, macOS, Linux

Baixar: GitHub

Conclusão: A melhor referência para um iniciante configurando um primeiro projeto de decompilação N64.

8. PermuterPy – Melhor para automatizar a busca de correspondência

PermuterPy muta código C candidato e recompila milhares de vezes para encontrar variantes que produzem saída idêntica de byte. Quando decomp.me diz “perto mas sem correspondência”, PermuterPy é o que encontra a ordem exata da declaração ou parênteses que o compilador quer.

Onde é fraco: Computacionalmente caro; um run de permutador pode consumir o CPU de um laptop por horas.

Preço:

Plataformas: Windows, Linux, macOS (Python)

Baixar: GitHub

Conclusão: A ferramenta de último recurso em uma função teimosa, e a razão pela qual os percentuais de conclusão continuam aumentando.

Como escolher a correta

Perguntas frequentes

O que significa um jogo estar “100% decompilado”? Cada função no binário do jogo foi reescrita em C de modo que a saída recompilada corresponda à ROM original byte a byte. A partir daí, a base de código pode ser modificada livremente.

É legal decompilador uma ROM N64? A engenharia reversa para interoperabilidade é geralmente protegida em muitas jurisdições. Distribuir o binário resultante (que ainda contém os ativos do jogo original) geralmente não é. O tratamento legal varia por país; os projetos de decompilação geralmente enviam apenas código, esperando que o usuário forneça sua própria ROM.

Quanto tempo leva um projeto de decompilação N64? Esforços de vários anos por equipes de voluntários. Zelda: Ocarina of Time levou anos; o projeto GoldenEye 007 durou cerca de seis anos.

O que é decomp.me e por que é tão central? decomp.me é um IDE web que compila código C candidato e relata se a saída corresponde exatamente a uma função de assembly alvo. Substituiu muitos scripts bash ad-hoc e tornou a colaboração em testes de correspondência fácil.

Posso executar o jogo decompilado no meu PC sem um emulador? Sim, uma vez que uma decompilação é concluída e uma porta é construída com N64Recomp ou uma estrutura similar. Zelda 64 Recompiled e a porta GoldenEye são os exemplos atuais.

Preciso saber assembly MIPS para contribuir? Ajuda enormemente. mips_to_c e decomp.me reduzem a barra, mas até mesmo uma compreensão básica de convenções de registro e padrões de chamada é necessária para fazer progresso em uma função real.