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.
- Prise en charge MIPS III. Les désassembleurs x86 ou ARM seuls ne suffisent pas.
- Gère les idiomes connus du compilateur. IDO et EGCS produisent une sortie distinctive que l’outil doit reconnaître.
- Gestion des symboles et du fractionnement. Un projet de travail nécessite une extraction d’actifs, pas seulement une décompilation de code.
- Pipeline de test d’appairage. Chaque fonction nécessite une vérification d’appairage octet par octet par rapport à la ROM.
- Communauté autour de l’outil. La décompilation N64 est assez petite pour qu’un outil à un seul responsable devenant obsolète importe.
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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:
- Gratuit: Tout
- Payant: Non applicable
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
- Si l’objectif est un port PC natif à partir d’une ROM existante : N64Recomp.
- Si vous démarrez un nouveau projet de décompilation : splat, puis IDO recomp (ou le compilateur approprié), puis decomp.me et mips_to_c pour le travail quotidien.
- Si vous essayez de faire correspondre une seule fonction : decomp.me pour l’itération, PermuterPy quand une correspondance est proche.
- Si vous devez vérifier qu’une reconstruction correspond parfaitement à une N64 réelle : ares pour la vérification à l’exécution.
- Si vous apprenez le pipeline à partir de zéro : lisez le repo de GloverN64 avant de toucher votre propre fichier de fractionnement.
- Ne sautez pas splat. L’édition manuelle d’un vidage d’assembleur monolithique est une bataille perdue à l’échelle N64.
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.