N64Recomp

GoldenEye 007 vient d’atteindre une décompilation de 100%, et cela change ce que les gens peuvent faire avec le jeu : des modifications impossibles dans un émulateur, des ports PC natifs avec un support d’écran panoramique approprié et des déblocages de fréquence d’images, et des implémentations de référence pour les futurs projets d’ingénierie inverse N64. Les outils qui l’ont rendu possible sont open-source, et si vous avez jamais voulu regarder à l’intérieur d’un jeu N64, vous utiliseriez les mêmes.

Nous avons examiné 8 applications de bureau qui rendent possibles les flux de travail de décompilation et de portage N64 aujourd’hui. Chaque choix est gratuit, open-source et activement maintenu sur GitHub.

Ce qu’il faut rechercher dans une application de décompilation N64

L’ingénierie inverse N64 est inhabituelle car la console cible MIPS III, et les compilateurs de l’époque (IDO, EGCS) ont laissé des empreintes digitales spécifiques. Les outils modernes tiennent compte de cela.

Tableau de comparaison rapide

Application Meilleur pour Plateformes Plan gratuit Prix de démarrage/mois Évaluation
N64Recomp Recompilation statique vers binaire natif Windows, Linux, macOS Entièrement gratuit Gratuit Communauté en croissance rapide
splat Fractionnement binaire et extraction d’actifs Windows, Linux, macOS Entièrement gratuit Gratuit Standard dans les décompilations N64 modernes
decomp.me Terrain de jeu de test d’appairage basé sur le web Web Entièrement gratuit Gratuit Plateforme communautaire largement utilisée
mips_to_c Conversion d’assembleur en C Windows, Linux, macOS Entièrement gratuit Gratuit Outil de décompilation de longue date
IDO recomp Recompilation du compilateur IDO d’origine Windows, Linux, macOS Entièrement gratuit Gratuit Permet les flux de travail orientés appairage d’abord
ares Émulateur N64 précis au cycle pour les tests Windows, macOS, Linux Entièrement gratuit Gratuit Émulateur de haute précision
GloverN64 Projet de portage de référence N64 Windows, macOS, Linux Entièrement gratuit Gratuit Projet communautaire
PermuterPy Recherche d’appairage automatisée via mutation Windows, Linux, macOS Entièrement gratuit Gratuit Standard dans les décompilations modernes

Les applications

1. N64Recomp – Meilleur pour la recompilation statique vers binaire natif

N64Recomp prend le code MIPS d’une ROM N64 et le réécrit dans LLVM IR, qui se compile ensuite en un binaire x86 ou ARM natif. C’est ce qui permet aux projets comme Zelda 64 Recompiled et le récent port GoldenEye de s’exécuter à des centaines d’images par seconde avec un rendu haute résolution, sans émulateur requis.

Où il est défaillant: Nécessite un jeu entièrement décompilé pour produire un port bien intégré. La recompilation ROM-entrée-sortie directe fonctionne pour de nombreux jeux mais pas tous.

Tarification:

Plateformes: Windows, Linux, macOS

Télécharger: GitHub

Conclusion: L’outil responsable de la vague actuelle de ports N64 natifs.

2. splat – Meilleur pour le fractionnement binaire et l’extraction d’actifs

splat prend une ROM N64 et produit la disposition de projet structuré utilisée par chaque décompilation moderne : fichiers d’assembleur fractionnés par symbole, actifs extraits (textures, musique, données de niveau) et un système de compilation qui réassemble tout en une ROM correspondante. Chaque projet de décompilation N64 sérieux commence ici.

Où il est défaillant: Nécessite une configuration par jeu ; attendez-vous à passer la première semaine à créer le fichier de fractionnement.

Tarification:

Plateformes: Windows, Linux, macOS (Python)

Télécharger: GitHub

Conclusion: Le premier outil que vous installez lorsque vous démarrez un projet de décompilation N64.

3. decomp.me – Meilleur pour tester une correspondance de fonction C candidate

decomp.me est un IDE basé sur le web pour les tests d’appairage de décompilation. Collez une fonction d’assembleur cible, écrivez du C candidat, appuyez sur compiler, et voyez immédiatement si le compilateur produit une sortie identique octet par octet. Il prend en charge les cibles N64, GameCube, PS2 et DS, et le flux de travail de bloc-notes partagé rend la collaboration sans effort.

Où il est défaillant: Web uniquement ; pas de mode hors ligne. Limité en vitesse sous charge lourde.

Tarification:

Plateformes: Web (basé sur navigateur)

Télécharger: Site officiel · GitHub

Conclusion: L’outil le plus utilisé par les contributeurs actifs de décompilation N64.

4. mips_to_c – Meilleur pour convertir l’assembleur MIPS en brouillon C

mips_to_c produit un brouillon C lisible à partir d’une fonction MIPS. Ce n’est pas un générateur de correspondance ; la sortie est un point de départ que vous modifiez et affinez jusqu’à ce que decomp.me signale une correspondance. Économise des heures par fonction lors de la première passe.

Où il est défaillant: La sortie est un brouillon. La compilation directe ne correspond presque jamais sans édition humaine.

Tarification:

Plateformes: Windows, Linux, macOS (Python)

Télécharger: GitHub

Conclusion: Réduit le temps de première passe sur toute fonction qui est plus que triviale.

5. IDO recomp – Meilleur pour reproduire le compilateur N64 d’origine

IDO recomp est une recompilation statique du compilateur IDO de SGI, celui que Nintendo a utilisé pour la plupart de ses titres N64 first-party. Exécuter le compilateur d’origine sur les OS modernes est ce qui rend possible la correspondance parfaite des octets ; sans elle, le décompilateur ne produirait que des approximations de l’original.

Où il est défaillant: Utile uniquement si le jeu cible a été compilé avec IDO. Les jeux GCC/EGCS (sortie de Rare, y compris GoldenEye) nécessitent des compilations de compilateur différentes.

Tarification:

Plateformes: Windows, Linux, macOS

Télécharger: GitHub

Conclusion: Pas un décompilateur en soi, mais la pièce qui rend la décompilation déterministe.

6. ares – Meilleur pour la vérification N64 précise au cycle

ares est un émulateur multi-systèmes avec émulation N64 précise au cycle. Pour le travail de décompilation, cette précision importe : quand une reconstruction candidate produit une ROM qui s’exécute sur ares de manière identique à l’original, vous avez une vraie confiance dans la correspondance.

Où il est défaillant: Exigences CPU plus élevées que les émulateurs occasionnels comme Project64. Pas le choix pour le jeu pur.

Tarification:

Plateformes: Windows, macOS, Linux

Télécharger: Site officiel · GitHub

Conclusion: L’émulateur de qualité de vérification pour tester les reconstructions.

7. GloverN64 – Meilleur projet d’exemple pour apprendre

GloverN64 est l’une de la bibliothèque croissante de projets de décompilation N64 dirigés par la communauté, et son repo est suffisamment bien organisé pour servir de référence sur la façon dont splat, mips_to_c et IDO recomp s’assemblent dans une construction réelle. Lire le fichier de fractionnement de quelqu’un d’autre est le moyen le plus rapide de comprendre le vôtre.

Où il est défaillant: En cours ; pas toutes les fonctions sont décompilées.

Tarification:

Plateformes: Windows, macOS, Linux

Télécharger: GitHub

Conclusion: La meilleure référence pour un débutant configurant un premier projet de décompilation N64.

8. PermuterPy – Meilleur pour automatiser la recherche de correspondance

PermuterPy mute le code C candidat et recompile des milliers de fois pour trouver des variantes qui produisent une sortie identique octet par octet. Quand decomp.me dit “proche mais pas de correspondance”, PermuterPy est ce qui trouve l’ordre d’énoncé exact ou les parenthèses que le compilateur veut.

Où il est défaillant: Coûteux en calcul ; une exécution permuter peut consommer le CPU d’un ordinateur portable pendant des heures.

Tarification:

Plateformes: Windows, Linux, macOS (Python)

Télécharger: GitHub

Conclusion: L’outil de dernier recours sur une fonction récalcitrante, et la raison pour laquelle les pourcentages d’achèvement continuent à augmenter.

Comment choisir le bon

FAQ

Que signifie qu’un jeu soit “100% décompilé”? Chaque fonction du binaire du jeu a été réécrite en C de telle sorte que la sortie recompilée corresponde à la ROM originale octet par octet. À partir de là, la base de code peut être modifiée librement.

Est-il légal de décompiler une ROM N64? L’ingénierie inverse pour l’interopérabilité est généralement protégée dans de nombreuses juridictions. La distribution du binaire résultant (qui contient toujours les actifs du jeu original) généralement ne l’est pas. Le traitement juridique varie selon le pays ; les projets de décompilation eux-mêmes livrent généralement du code uniquement, s’attendant à ce que l’utilisateur fournisse sa propre ROM.

Combien de temps dure un projet de décompilation N64? Efforts de plusieurs années par des équipes de bénévoles. Zelda : Ocarina of Time a pris des années ; le projet GoldenEye 007 a duré environ six ans.

Qu’est-ce que decomp.me et pourquoi est-ce si central? decomp.me est un IDE web qui compile du code C candidat et indique si la sortie correspond exactement à une fonction d’assembleur cible. Il a remplacé de nombreux scripts bash ad-hoc et a rendu la collaboration sur les tests d’appairage facile.

Puis-je exécuter le jeu décompilé sur mon PC sans émulateur? Oui, une fois qu’une décompilation est effectuée et qu’un port est construit avec N64Recomp ou un cadre similaire. Zelda 64 Recompiled et le port GoldenEye sont les exemples actuels.

Dois-je connaître l’assembleur MIPS pour contribuer? Cela aide énormément. mips_to_c et decomp.me réduisent la barre, mais même une compréhension de base des conventions de registre et des modèles d’appel est nécessaire pour progresser sur une fonction réelle.