RecompOne : la recompilation statique qui réinvente les jeux PS1 sur PC

Un nouvel outil vient bousculer les habitudes de la scène rétrogaming consacrée à la première PlayStation. Baptisé RecompOne et développé par un programmeur connu sous le pseudonyme Flaffy, ce projet open source propose de transformer les exécutables originaux des jeux PS1 en code C# exploitable nativement sur PC. Contrairement à l’émulation classique, qui recrée le comportement du matériel en temps réel pendant que le jeu tourne, RecompOne traduit le code une bonne fois pour toutes, avant même que le joueur ne lance le jeu. Cette approche, déjà popularisée sur Nintendo 64 avec N64Recomp et sur Xbox 360 avec XenonRecomp, arrive donc sur la console de Sony avec ses propres contraintes techniques. Le projet a choisi Castlevania: Symphony of the Night comme cas d’école pour valider sa méthode, un choix qui parle immédiatement à toute personne attachée au catalogue PS1.

Comment fonctionne la recompilation statique de RecompOne

Le principe technique repose sur la traduction anticipée des instructions du processeur MIPS R3000A qui équipait la PlayStation originale. Là où un émulateur classique interprète ou compile à la volée chaque instruction pendant l’exécution, RecompOne analyse l’exécutable du jeu en amont et convertit chaque opération MIPS en code C# équivalent. Le résultat n’est donc pas une émulation au sens strict, mais la base d’un port natif propre à chaque jeu. Le code généré s’appuie sur une structure appelée CpuContext, qui reproduit l’état interne du processeur, ainsi que sur une couche d’interface mémoire chargée de simuler le comportement attendu par le jeu. Cette couche runtime prend également en charge les fonctions du BIOS, la gestion des entrées-sorties mémoire (MMIO), les commandes d’affichage du GPU et le lecteur CD-ROM, autant d’éléments indispensables pour qu’un jeu PS1 fonctionne correctement une fois recompilé. RecompOne réimplémente aussi certaines bibliothèques de la PSYQ SDK, le kit de développement officiel de la PS1, notamment celles qui dépendent fortement des interruptions matérielles et qui ne peuvent pas être traduites telles quelles par un recompilateur statique.

Les défis spécifiques posés par l’architecture de la PS1

La mémoire vive extrêmement limitée de la PlayStation impose aux jeux d’utiliser un système d’overlays : le code et les données sont chargés et déchargés dynamiquement dans les mêmes zones mémoire au fil de la progression du joueur. Ce fonctionnement pose un problème direct à la recompilation statique, puisqu’un programme moderne s’attend normalement à ce qu’une adresse mémoire pointe toujours vers la même fonction. RecompOne contourne cette difficulté en générant une classe de code distincte pour chaque overlay défini dans son fichier de configuration, accompagnée d’une table de dispatch qui garde la trace des overlays actuellement chargés en mémoire. Ce système de répartition met à jour les correspondances de fonctions en temps réel, afin que chaque adresse virtuelle renvoie toujours vers le bon segment de code recompilé, même lorsque plusieurs overlays occupent la même plage d’adresses à des moments différents du jeu. Ce mécanisme illustre bien la philosophie du projet : automatiser la traduction brute du code processeur, tout en laissant aux développeurs le soin d’étudier chaque jeu individuellement, de corriger les zones problématiques et de tester minutieusement le résultat. Il ne s’agit donc pas d’un outil de conversion en un clic, mais d’une base de travail exigeante qui suppose une réelle compréhension du fonctionnement interne de chaque titre.

Une position claire sur l’intelligence artificielle et l’avenir du projet

Le développeur de RecompOne a tenu à préciser publiquement que le code du projet n’a pas été écrit avec l’aide de l’intelligence artificielle, et que le dépôt GitHub n’accueillera pas de ports jugés bâclés produits par ce biais. Il reconnaît que l’IA peut constituer un outil de recherche utile, notamment pour des tâches répétitives, mais insiste sur le fait qu’elle ne remplace pas la compréhension fine des rouages internes d’un jeu, condition indispensable à une recompilation de qualité. Cette prise de position s’inscrit dans un contexte où plusieurs projets de recompilation, sur d’autres consoles, ont recouru à des outils d’IA générative pour accélérer leur développement, parfois au détriment de la rigueur technique attendue par la communauté. RecompOne s’inscrit dans une lignée plus large de projets de recompilation statique qui s’étend désormais bien au-delà de la PlayStation : la Nintendo 64, la Xbox 360, mais aussi, plus récemment, des expérimentations sur PS2, la Super Nintendo ou la Game Boy Advance. Pour les amateurs de rétrogaming, l’intérêt d’une telle démarche est concret : de meilleures performances sur le matériel actuel, un support natif du 16/9e sur des jeux conçus en 4/3, et des possibilités de modding bien plus profondes que ce que permet l’émulation traditionnelle. Le projet reste toutefois à un stade encore jeune, et chaque jeu recompilé nécessitera un travail dédié avant d’atteindre un niveau de compatibilité et de stabilité comparable aux meilleurs émulateurs PS1 actuels. Il n’en reste pas moins que RecompOne ouvre une piste sérieuse pour repenser la conservation et la jouabilité du catalogue PlayStation sur les configurations modernes, dans la continuité des travaux menés sur d’autres consoles historiques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut