❌

Vue lecture

xboxrecomp - Transformer un jeu Xbox en .exe Windows

xboxrecomp est un outil de recompilation qui vient de voir le jour et qui devrait vous intéresser si vous êtes nostalgique de la première Xbox. En effet, ce dernier prend l'exécutable d'un jeu de la Xbox originale, traduit chacune de ses fonctions x86 en code C, puis recompile le résultat en programme Windows 100% natif. Cela veut dire que le jeu ensuite peut tourner directement sur votre ordinateur, sans faire appel à un interpréteur ni à un émulateur. C'est ce qui s'appelle de la recompilation statique, et je vous en parle régulièrement parce que je trouve ça assez magique (rappelez vous de Zelda 64 recompilé ).

Le dépôt de xboxrecomp ne contient évidemment aucun fichier de jeu pour ne pas s'exposer au courroux des ayants-droits. Vous devez donc avoir votre propre disque, en extraire le default.xbe, et la chaîne d'outils (du Python avec capstone, puis Visual Studio 2022 pour compiler) génèrera chez vous tout le code C du jeu. Pas de bouton magique, par contre, le premier lancement d'un jeu recompilé plantera et ensuite, ça avancera crash après crash. Notez que ce projet s'est construit avec Claude Code également.

Pour le moment, le seul jeu qui va au bout de sa recompilation, c'est Burnout 3: Takedown. Tous les modes démarrent et se jouent, seul ou à deux, mais les menus tournent à environ 14 images par seconde et les courses à 2 à 4 FPS sur une machine à 12 cœurs. Y'a pas non plus de possibilité de faire des sauvegardes et c'est manette obligatoire. Bref, c'est pas encore très jouable.

En fait le problème c'est le GPU de la Xbox (le NV2A) qui est émulé en logiciel, et c'est malheureusement ça qui fait chuter les FPS. Le "No emulation" du slogan ne vaut donc que pour le processeur, mais pas les morceaux audio ni le GPU repris de xemu. Mais ça changera peut-être bientôt.

Maintenant, si vous cherchez un jeu Xbox précis à installer, regardez plutôt du côté de SCDA-XBERecomp , qui est l'inverse de xboxrecomp. C'est n'est pas un outil universel mais une recompilation uniquement du jeu Splinter Cell: Double Agent. Celui-ci réimplémente le noyau, Direct3D et DirectSound côté Windows, et vous laisse régler le champ de vision ou lever la limite de 30 images par seconde.

Et si vous voulez juste rejouer à vos jeux Xbox ce soir, un émulateur comme xemu fera très bien comme d'hab.

Moi de mon côté, j'avance toujours sur mon recompilateur universel de ROMs Kompote et ça marche vraiment très bien. Là je suis en train d'implémenter le support des jeux Amiga... je pense que dans quelques jours, ce sera cuit à point.

Source : xboxrecomp sur GitHub

  •  

P.T. - Le couloir de Kojima en natif sur Windows et Linux

Le P.T. de Kojima, ce "playable teaser" de Silent Hills que Konami a retiré du PlayStation Store en 2015, a maintenant un portage natif pour Windows et Linux et c'est signé Lorean Xavier.

Pour ceux qui ne connaissent pas ce jeu, P.T. est sorti gratuitement sur PS4 en août 2014, sous le nom d'un studio qui n'existait pas, 7780s Studio. On y parcourt un couloir en L qui tourne en boucle, en marchant et en zoomant, pendant que Lisa, un fantôme, nous traque. Et si elle nous attrape, eh bien la boucle infernale recommence encore et encore... Et bien sûr, ce maudit couloir change à chaque tour réussi !

Ensuite, une fois la dernière énigme résolue, on avait droit à un trailer annonçant Silent Hills, réalisé par Hideo Kojima et Guillermo del Toro avec Norman Reedus dans le rôle principal. Le vrai jeu a ensuite été malheureusement annulé, et P.T. n'a survécu depuis uniquement sur les PS4 qui l'avaient conservé ou via l'émulation.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Mais c'était sans compter sur Lorean qui l'a recompilé pour en faire un portage natif, comme celui d'Animal Crossing dont je vous parlais en juillet. La logique du jeu a été intégralement reconstruite en C++ à partir du comportement de l'original et le rendu tourne sur Vulkan, alors que les niveaux, les modèles, les textures, les sons et les cinématiques, eux, sont lus lors de l'exécution à l'aide de votre propre copie PS4 (ce qui évite de diffuser du contenu sous copyright donc).

Tout ce que le portage ajoute est désactivé ou calé sur l'original par défaut. On y retrouve donc des upscalers (FSR 3.1 et XeSS sur n'importe quel GPU récent, DLSS 4.5 sur GeForce RTX, sous Windows seulement), un mode photo sur F7 et un dossier de mods qui accepte des scripts Lua.

Côté fidélité, Lance McDonald, le dataminer qui avait fouillé P.T. à l'époque, y voit, autant qu'il puisse en juger, un portage 1:1 de toute la base de code, qui reproduit tous les comportements non documentés qu'il connaît. Et bien sûr, même si le dev de ce portage a dû gérer l'archi du code de A à Z, c'est l'IA qui s'est occupée du dev et du debugging.

Bref, comme je vous le disais, ce portage ne contient aucun fichier de Konami, donc c'est à vous de fournir le jeu. Il vous faudra donc un dossier dump sorti de votre console (ou d'une archive en ligne si vous êtes un affreux criminel ^^), ou un faux PKG fabriqué à partir de ce dump. Un PKG du store ne marchera pas par contre puisqu'il est chiffré pour la console qui le possède. Et bien sûr, seule la version américaine (CUSA01127) a été testée. A tester donc avec les versions européenne et japonaise pour voir si ça passe.

Côté machine, il vous faudra à minima un Windows 10 ou 11 en 64 bits, ou un Linux x86-64 avec glibc 2.38 minimum (Ubuntu 24.04, Debian 13, Fedora 39, Arch ou SteamOS ça passe.), ainsi qu'un GPU compatible Vulkan 1.3. Sur Steam Deck, l'installation se fera depuis le mode bureau, puis faudra ajouter le jeu comme jeu non-Steam.

De son côté, macOS est annoncé pour la 1.0.2, mais ses paquets ne sont pas encore téléchargeables (faudra compiler les amis !). Pour le reste, les menus et les sous-titres sont disponibles en français, mais les voix restent en anglais, et le passage où le jeu a besoin de votre micro peut être joué au clavier quand même, si vous n'avez pas le matos.

Voilà... Je ne m'en souvenais pas, mais en faisant mes recherches, j'ai appris que ce n'est pas la première tentative de portage de P.T. sur PC. Il y a eu un remake de Qimsar, fan de 17 ans, qui est sorti gratos en juillet 2018 et malheureusement, Konami l'a fait fermer quelques jours plus tard pour des raisons légales, tout en lui proposant un stage (beaux joueurs quand même).

On verra à quelle sauce ce projet sous licence MIT se fera manger ou pas.

Sachez que si vous avez déjà votre copie de P.T. sous la main, les installeurs Windows et Linux sont sur la page Releases du dépôt GitHub !

Source : PC Gamer

  •  

AnyPS5 - En route pour la recompilation de jeux PS5

Une PS5, au fond, c'est juste un PC comme les autres. Elle a un processeur AMD x86-64 (c'est du Zen 2, en gros un Ryzen) ainsi qu'une puce graphique RDNA 2, ce qui est grosso merdo la même came que ce qu'il y a dans votre tour de gamer.

Et pour ça que le pari d' AnyPS5 est possible ! L'objectif de ce projet c'est qu'au lieu de lancer un n-ième émulateur qui "imite" la console pendant que vous jouez, l'outil prend le code binaire d'un jeu PS5, le décompile et le recompile intégralement sous la forme d'un vrai programme Linux ou Windows, que votre système peut ensuite lancer comme n'importe quel autre.

Pour y parvenir, ce projet repose sur 2 briques. D'abord il y a un "relinker", qui lit l'exécutable du jeu et le reconstruit au format natif de la cible, c'est à dire ELF pour Linux ou PE pour Windows. Mais comme le jeu continue d'appeler des fonctions système PS5 que votre PC ne connait pas, AnyPS5 réimplémente les bibliothèques de Sony, libc, libkernel et toute la famille libSce, en bibliothèques dynamiques que le chargeur de votre OS peut alors lier au programme converti.

Résultat, le jeu tourne comme un processus normal, sans runtime à part... C'est beau non ?

Mais tout n'est pas réécrit d'avance pour autant puisque côté graphique, le jeu envoie ses files de commandes comme s'il causait à la puce AMD de la console, et c'est donc la version maison du projet de libSceAgcDriver qui les interprète pendant l'exécution. Les shaders RDNA, eux, sont recompilés en SPIR-V pour Vulkan quand le jeu les demande, puis rangés dans un cache sur le disque pour les lancements suivants. Donc ça veut dire que certes, le code processeur tourne en natif, mais la partie GPU, elle, est traduite à la volée.

La conversion elle-même, après c'est juste une ligne de commande. Vous indiquez l'exécutable du jeu et son dossier sce_module côte à côte, et vous choisissez le nom du binaire cible (le .exe quoi) :

relinker source/input.elf app.elf
relinker --windows source/input.elf app.exe

Sur un processeur Intel, ajoutez le paramètre --to-intel, qui convertira les instructions propres aux puces AMD qu'il connaît.

Et quand le jeu touche à quelque chose que le projet ne gère pas encore, AnyPS5 lève une exception, en affiche la raison dans le terminal et le processus s'arrête. Ça veut dire qu'un jeu qui boote n'est pas forcément un jeu auquel vous pourrez jouer jusqu'au bout.

Et justement, qu'est-ce qui va jusqu'au bout ?

Hé bien la liste de compatibilité officielle est trèèès courte puisqu'elle ne contient qu'un seul jeu : Dreaming Sarah. C'est un jeu de plateforme 2D sorti sur Steam en 2015 et vendu moins de 5 € (1,49 € en promo au moment où j'écris).

Sous Windows, après recompilation, il est noté "in game, playable", à 60 images par seconde sur une GTX 1050 Ti et 36 sur une puce Intel HD 620 et sous Linux, on ne connait pas encore les stats même si l'ELF Linux a été généré.

Bien sûr, comme toujours avec ces projets de recompilation ou d'émulation, aucun firmware, ni jeu, ni clé n'est fourni. Et comme vous le savez, pour déchiffrer un jeu et l'extraire, il faut un exploit du firmware en cours, autrement dit une console débridée. Donc ça limite un peu les ambitions de pas mal de monde. Mais ça n'en reste pas moins possible pour qui a un peu de volonté (et une PS5 jailbreakée).

Sachez que ce projet AnyPS5 nécessite une carte graphique Vulkan 1.1, que les manettes Xbox ou PlayStation reconnues par SDL fonctionnent avec sticks et gâchettes analogiques, et que le clavier se remappe sans souci dans un fichier anyps5-input.ini que vous devez éditer.

Voilà... Les émulateurs PS5 dont je vous ai parlé, recréent la console autour du jeu alors qu'AnyPS5 tente de recréer le jeu pour n'importe quelle machine. On verra qui y parvient massivement en premier, mais en tout cas, la course à l'émancipation de la PS5 et de ses jeux est lancée !

Source : AnyPS5

  •  

The Legend of Zelda: Majora's Mask enfin en version européenne sur PC et Android

Vous le savez, The Legend of Zelda: Majora's Mask existe en version européenne, avec une ROM PAL 1.1 qui embarque 4 langues (anglais, français, allemand et espagnol), mais 2Ship2Harkinian , le portage PC du jeu dont je vous ai déjà parlé, ne reconnaît que les 2 versions américaines.

C'est pour cela qu'un fork non officiel a décidé de lever cette limite en permettant une lecture de la ROM version PAL 1.1 directement depuis Windows, Linux et Android !

Bien sûr, le fork garde le support des ROM américaines, et comme toujours pour ne pas tomber dans le piratage, il faudra au premier lancement du jeu, désigner l'emplacement de votre ROM à vous (que vous devrez avoir normalement rippé vous-même depuis votre propre version pour rester dans les clous plutôt que dans choper une sur un site random ^^). Ensuite, le jeu génèrera localement son fichier de données (mm.o2r), et les lancements suivants démarreront directement dans le jeu.

Le menu Options sur Android, avec le français sélectionné parmi les quatre langues de la ROM PAL 1.1 (capture fournie par l'auteur du fork)

Sous Windows, il faut donc décompresser le ZIP et lancer 2ship.exe, en gardant 2ship.o2r à côté. Sous Linux, c'est une archive et un exécutable 2s2h.elf, avec le même fichier à ses côtés. Sur Android, il faut l'APK (ARM64 uniquement, Android 7 et OpenGL ES 3.0 minimum), et la version mobile ajoute des commandes tactiles qu'on peut masquer, un menu redimensionnable et un dossier de données déplaçable sur carte SD.

Pas de build macOS, en revanche, alors que le projet d'origine en propose un et ça, c'est un méga snif pour moi.

Alex, l'auteur de ce fork a aussi ouvert une demande de fusion chez 2Ship pour intégrer tout ça au projet d'origine, j'espère que ça passera.

Et après, peut-être qu'il pourra s'attaquer à Zelda 64 Recompiled , l'autre portage de Majora's Mask dont je vous ai parlé, car lui aussi n'accepte que la ROM américaine..

À récupérer sur la page des releases du fork .

  •  

10 projets RECOMP qui sortent vos vieux jeux de leur console

Saviez-vous que Silent Hill, premier du nom, peut aujourd'hui être terminé sur PC, en grand écran et sans émulateur ? Et oui, c'est possible parce que le jeu est compilable directement pour votre machine à partir du code source obtenu à partir d'un gros travail de reverse engineering.

Et ce genre de portage n'est plus un cas isolé du tout. Depuis Zelda 64 recompilé , la scène RECOMP a franchement explosé, au point qu'on ne sait plus trop où donner de la tête. Il y a des portages qui sont très complets et fonctionnels du début à la fin, et puis des projets en cours qui sont à moitié finis, qui plantent, etc.

Alors j'ai fait mes recherches et aujourd'hui, je vous présente 10 projets de recompilation qui valent le coup ! Je commence donc par les deux qui se jouent pour de vrai.

Le port PC de Silent Hill , donc, pour commencer. Dans ce portage, chaque carte, chaque boss, chaque cinématique et chaque fin fonctionnent, et vous pouvez boucler le jeu aujourd'hui si vous le voulez. Vous récupérez au passage la 16:9, la correction de perspective PGXP, des caméras alternatives et un gestionnaire de mods, et les disques PAL français sont reconnus tout seuls. Je précise aussi que la décompilation PSX en dessous est un travail communautaire de longue haleine, mais que le portage, lui, est assisté par IA (avec Claude Opus 4.6 et 4.7).

Le launcher du port PC, réglé en 1920x1080 avec PGXP activé et la limite de FPS à zéro

Dans la même catégorie, il y a Golden Balloon qui ressuscite ce que son dépôt appelle sobrement le kart racer Nintendo 64 de 1997. Pas d'émulateur là non plus mais un jeu compilé pour votre machine, qui lit votre ROM en local, sans jamais l'envoyer nulle part. Vous pouvez même jouer directement dans le navigateur à 2 ou 4 joueurs en écran partagé ou en multijoueur directement en ligne (ça c'est en bêta).

La page du portage : le jeu compilé pour votre processeur, affiché en WebGPU, et rien à installer

Après, il y a d'autres projets qui démarrent plutôt bien même s'ils sont encore en chantier.

Je pense à Party Board qui en est le meilleur exemple. En gros, c'est Mario Party 4 porté sur Windows, Linux, macOS, Android et iOS, avec un mode en ligne à deux. Tout n'est pas parfait, c'est un work in progress, mais ça progresse assez vite, donc je pense que c'est un projet à suivre si vous aimez Mario Party.

Party Board sur GitHub : le dernier commit remonte à l'heure qui précède la capture

De son côté, DKC1Recomp s'attaque à Donkey Kong Country sur Super Nintendo, et son statut affiché est "playable bring-up". Ça veut dire que ça démarre, ça se joue, mais on en est aux toutes premières versions. La totalité du code du jeu est générée statiquement et ça peut tourner sous Windows, macOS et même via une app iPhone et iPad native. Par contre, comme d'hab', il vous faut la ROM.

Notez que Snesrecomp apparaît en sous-module dans l'arborescence de DKC1Recomp

Lost Odyssey Recomp est sans doute le plus ambitieux du lot puisqu'il s'agit d'un très gros jeu Xbox 360 traduit depuis son binaire PowerPC vers du natif, en Direct3D 12 ou Vulkan. D'après ses auteurs, les zones d'ouverture et quelques scènes sont testées, mais pas encore une partie complète, et il reste des soucis de rendu et de stabilité. La dernière version embarque quand même un pack de shaders qui vous évite leur compilation au premier lancement.

La ville industrielle de Lost Odyssey, avec sa minimap de navigation en haut à droite

Viennent ensuite les outils, ceux qui fabriquent les portages plutôt que de les livrer...

On a d'abord RecompOne qui recompile statiquement les exécutables PlayStation 1 vers du C# et fournit la couche qui rejoue le matériel de la console. Pas besoin de BIOS ni du moindre fichier Sony, vos fichiers de jeu suffisent. Le projet est fait par des humains, et aucune contribution écrite par une IA ne sera acceptée, et l'auteur explique qu'il ne fera la promotion d'aucun portage produit de cette façon.

L'IA c'est la vraie ligne de fracture de la scène en ce moment...

RecompOne et son logo aux couleurs de la PlayStation, publié sous licence MIT

DolRecomp fait la même chose pour la GameCube et la Wii. Il sait extraire un disque GameCube tout seul, et s'appuie sur Wiimms ISO Tool pour les images Wii, qu'il vous propose d'installer au passage. Sa grosse limite, c'est qu'il ne traduit que le processeur. En effet, tout le runtime autour, il faut l'apporter, ou partir du modèle que fournit ModernGekko. Autant dire que c'est un outil de bricoleur et pas un bouton "portage".

Luigi's Mansion qui tourne dans une fenêtre Windows sobrement nommée MansionRecomp

ps3recomp de son côté vise la machine la plus tordue de la liste, le Cell de la PlayStation 3, avec un objectif simple : transformer un binaire PS3 en exécutable natif sans passer par l'émulation. Et face à l'émulateur RPCS3 , l'argument n'est pas la compatibilité mais la performance native, et évidemment, un code C++ nettement plus facile à modder.

Chez ps3recomp, la toute première version publiée s'appelait Hello, Cell

Le neuvième outil, spoiler alert, c'est le mien. Ça s'appelle KOMPOTE et c'est un recompilateur universel de ROMs. Je bosse dessus depuis trois ou quatre mois et il permet de recompiler des ROMs Game Boy dans toutes ses déclinaisons, NES, Super NES, les consoles Sega, la Lynx, la Nintendo 64, la Neo Geo, le Commodore 64. Vous glissez une ROM dessus, ça vous sort un exécutable natif, ou une version WebAssembly pour jouer depuis une page web.

C'est une bêta réservée aux Patreons pour l'instant, dispo sous macOS, Windows et Linux et comme pour les autres projets de ce type, ça n'embarque aucun code propriétaire. J'y ai également intégré des petites fonctionnalités sympas sur l'affichage (effets VHS, GB color...etc), l'amélioration du son, les sauvegardes automatiques, du rewind, une API pour pouvoir piloter les jeux avec un TAS, le support des codes Game Genie et j'en passe...

Et puis il y a surtout CubeShelf , qui est le premier signe que tout ça commence à s'organiser. C'est un gestionnaire de bibliothèque GameCube qui installe et met à jour les runtimes de plusieurs jeux portés d'un coup... Mario Party 4, Soulcalibur II, Super Mario Strikers... etc. Ça prépare vos images disque et gère les mods GameBanana .

La page du projet CubeSelf

Voilà, donc comme je vous le disais, aucun de ces projets ne contient le moindre fichier de jeu. C'est à vous d'amener votre propre ROM ou votre image disque, et parfois même le BIOS de la machine en plus, sinon rien ne se lancera ou ne se recompilera. Et ensuite, une fois que vous aurez une version recompilée de votre jeu préféré, vous pourrez y jouer depuis votre ordinateur comme bon vous semble, sans devoir passer par un émulateur ou la console d'origine.

Bref, si vous ne deviez en essayer qu'un aujourd'hui, prenez Silent Hill ! C'est vraiment un super portage !!

  •  
❌