Suyu tire sa révérence sur un mode de recompilation pour jeux Switch
L’équipe derrière
, l’émulateur Nintendo Switch né des cendres de
, a publié le début septembre une dernière version de son logiciel, puis a fermé le
sur un ultime commit intitulé “FINAL”. Et cette version d’adieu embarque un truc que j’ai trouvé intéressant. C’est un mode baptisé Recompiler, qui change totalement la façon dont le code du jeu est “traduit”.
D’habitude, un émulateur traduit les instructions ARM de la console en instructions x86 au fur et à mesure que le jeu tourne. C’est ce qu’on appelle un JIT. Alors que là, le mode Recompiler fait le boulot à l’avance en prenant le code ARM64 du jeu et en le convertissant en code C.
Le
ne cache pas d’où vient l’idée, puisqu’il se décrit lui-même comme un moteur produisant du C portable “à la manière de N64Recomp”. Grâce à cette technique de recompilation, en bout de la chaîne, vous obtenez un vrai binaire .exe sous Windows, ELF sous Linux, ou Mach-O sous macOS.
Faut savoir qu’un jeu entier, ça fait des millions de blocs de code (oui, des millions !), et réunis dans un seul fichier C, ça pèserait des centaines de mégaoctets. Soit de quoi occuper un compilateur durant des heures avec beaucoup de mémoire consommée et éventuellement un abandon par K-O technique ^^… Alors qu’en le recompilant, on peut profiter de perfs natives sans éclater la machine.
Maintenant la réalité c’est que le programme obtenu grâce à cette recompilation, ne se débrouille pas tout seul. Le JIT n’a pas vraiment disparu, mais se construit à la demande, dès que l’exécution tombe sur une adresse que l’analyse statique n’avait pas repérée (un appel indirect, typiquement). Sans ce filet de sécurité, le jeu se figerait sur un écran noir. Je vois bien comment ça marche parce que c’est ce que j’ai exploré avec mon outil de recompilation Kompote.
Et ensuite, le jeu recompilé continue de passer par la couche d’émulation de suyu pour ses services système et son GPU. Bref, on est encore loin du jeu Switch qui tournerait tout seul sur votre PC, mais je n’ai aucun doute sur le fait que ça arrivera bientôt.
Notez que les binaires téléchargeables datent tous du 4 septembre, alors que les derniers correctifs ont été committés les 12 et 13. Il faudra donc compiler le code pour profiter de cette dernière version.
Quant à savoir pourquoi le projet s’arrête maintenant, l’équipe n’en dit pas un mot mais je sais juste qu’un
avait déjà emporté son dépôt principal en juillet 2024, et qu’un
nouvel avis du 17 août dernier
avait fait tomber d’un coup 307 dépôts dont l’adresse contenait le mot suyu.
Mais rassurez-vous, ça ne veut pas dire que l’émulation Switch s’arrête pour autant puisqu’un
a repris le code dans la foulée et enchaîne déjà les versions.
Et
, le projet dont suyu descend directement, continue tranquillement sa route sur son propre serveur, loin de GitHub, avec une version publiée en juin et un dépôt encore actif à la mi-septembre. C’est donc là qu’il faut regarder si vous cherchez un émulateur Switch encore suivi.
Source : le dépôt archivé de suyu et l’article de

Leave a Comment