Comment porter n’importe quel jeu N64 sur PC en un temps record

Agrandir / « N-tel (64) Intérieur »

Aurich Lawson | Getty Images

Ces dernières années, nous avons fait état de multiples efforts de rétro-ingénierie des jeux Nintendo 64 en code C entièrement décompilé et lisible par l’homme, qui peut ensuite devenir la base de ports PC à part entière. Bien que les résultats puissent être impressionnants, le processus de décompilation peut prendre des années d’efforts manuels minutieux, ce qui signifie que seuls les jeux N64 les plus populaires sont susceptibles de recevoir l’attention requise de la part des ingénieurs inverseurs.

Désormais, un outil récemment publié promet de réduire considérablement la quantité d’efforts humains nécessaires pour obtenir les ports PC de base de la plupart (sinon la totalité) des jeux N64. Le projet N64 Recompiled utilise un processus connu sous le nom de recompilation statique pour automatiser de vastes pans du processus à forte intensité de main-d’œuvre consistant à extraire le code C des binaires N64.

Bien qu’un travail de codage humain soit encore nécessaire pour adoucir les contours, le chef du projet, M. Wiseguy, a déclaré à Ars que son outil de recompilation est « la différence entre des semaines et des années de travail » lorsqu’il s’agit de créer une version PC d’un titre N64 classique. . Et le travail parallèle sur un puissant moteur de rendu graphique N64 signifie que des mises à niveau compatibles PC telles que des fréquences d’images plus fluides, une mise à l’échelle de la résolution et des formats d’écran larges peuvent être ajoutées avec peu d’effort.

L’inspiration frappe

M.-Wiseguy a déclaré à Ars qu’il avait fait ses débuts dans l’espace de codage N64 en travaillant sur divers projets de mods vers 2020. En 2022, il a commencé à contribuer au nouveau projet de rendu RT64, issu d’un travail sur un moteur de rendu par lancer de rayons. Super Mario 64 portage dans un effort plus généralisé visant à nettoyer le processus notoirement délicat de recréation précise des graphiques N64. En travaillant sur ce projet, M. Wiseguy a déclaré qu’il était tombé sur un projet existant qui automatise le désassemblage des jeux NES et un autre qui émule un ancien compilateur SGI pour faciliter la décompilation des titres N64.

YouTuber Nerrel présente certains des avantages de l’outil de recompilation N64 de Mr-Wiseguy.

« J’ai réalisé qu’il serait très facile de connecter le moteur de rendu RT64 à un jeu s’il pouvait être exécuté via un processus de recompilation statique similaire », a déclaré M.-Wiseguy à Ars. « J’ai donc mis en place une preuve de concept pour exécuter un jeu très simple, puis le projet s’est développé à partir de là jusqu’à pouvoir exécuter certains des jeux les plus complexes. »

Une preuve de concept de base pour l’idée de M. Wiseguy n’a pris que « quelques semaines tout au plus » pour être opérationnelle, a-t-il déclaré, et était prête dès novembre 2022. Depuis lors, des mois de travail intermittent des travaux ont été déployés pour compléter le code de conversion et obtenir une version recompilée de La Légende de Zelda : Le Masque de Majora prêt à être consommé par le public.

Faites confiance au processus

À son niveau le plus élémentaire, l’outil de recompilation N64 prend un binaire de jeu brut (fourni par l’utilisateur) et retraite chaque instruction directement et littéralement dans le code C correspondant. Le jeu d’instructions MIPS du N64 a été assez bien documenté au fil des années de travail d’émulation, donc comprendre comment traduire chaque opcode individuel en son équivalent C n’est pas trop compliqué.

Une première version bêta du moteur de rendu RT64 montre à quoi pourraient ressembler les ombres et les reflets du lancer de rayons dans un port de <em>Wave Race 64</em>. » src= »https://cdn.arstechnica.net/wp-content/uploads/2024/05/recomprt2-640×360.png » width= »640″ height= »360″ /><figcaption class=
Agrandir / Une première version bêta du moteur de rendu RT64 montre à quoi pourraient ressembler les ombres et les réflexions du lancer de rayons dans un port de Course de vagues 64.

La principale difficulté, a déclaré M. Wiseguy, peut être de savoir où pointer l’outil. « Le contenu du [N64] La ROM peut être disposée comme le développeur l’a choisi, ce qui signifie que vous devez trouver où se trouve le code dans la ROM avant même de pouvoir démarrer le processus de recompilation statique », a-t-il expliqué. Et tandis que les émulateurs N64 gèrent automatiquement les jeux qui se chargent et se déchargent code dans toute la mémoire au moment de l’exécution, la gestion de ces cas dans un binaire précompilé peut ajouter des couches supplémentaires de complexité.

Source-147