Aller au contenu


Photo

[XBO] xboxrecomp : la recompilation native des jeux Xbox originale franchit un nouveau cap


  • Please log in to reply
2 replies to this topic

Posté Aujourd'hui, 07:14

#1
tralala

tralala

    \0/ Postman \0/

  • Newser Expert
  • 15,073 Messages :
  • Sexe:Male
La scène du rétro-gaming et de la préservation vidéoludique accueille un projet particulièrement ambitieux : xboxrecomp, un toolkit open source développé par sp00nznet, qui vise à transformer les jeux de la première Xbox en véritables exécutables natifs pour Windows, Linux et macOS. Son objectif est clair : faire tourner les jeux directement sur le matériel moderne, sans passer par un émulateur. Le projet vient de franchir une nouvelle étape avec la publication de la version 0.17.0, baptisée « Empty Promises », en novembre 2026.
 
 
 
 
 
De l'émulation à la recompilation statique
 
Contrairement à des solutions comme xemu ou Cxbx-Reloaded, xboxrecomp ne cherche pas à reproduire le fonctionnement de la console à travers une émulation traditionnelle. Le principe repose sur la recompilation statique : l'outil analyse le code machine x86 contenu dans l'exécutable Xbox au format XBE, identifie les fonctions et traduit les instructions en code source C. Ce dernier est ensuite compilé pour produire un véritable programme natif. Concrètement, les instructions originales du jeu sont converties en équivalents C, puis compilées avec MSVC sous Windows, ou avec GCC et Clang sur Linux et macOS. L'intérêt est important : le jeu exécute directement son code recompilé sur le processeur de la machine hôte, sans interpréteur ni JIT à l'exécution.
 
Une infrastructure complète pour faire fonctionner les jeux 
 
Pour rendre cette approche possible, xboxrecomp ne se limite pas à traduire le code du jeu. Le projet intègre également plusieurs couches de compatibilité chargées de reproduire les fonctionnalités essentielles de la Xbox originale.
 
On retrouve notamment :
- xbox_kernel : une couche de compatibilité avec le noyau Xbox, couvrant 371 exports, dont la gestion mémoire, les fichiers, les threads et les fonctions système.
- xbox_d3d8 : une abstraction Direct3D 8 vers Direct3D 11 sous Windows, avec une solution OpenGL 3.3 pour Linux et macOS.
- xbox_dsound : une implémentation logicielle de DirectSound.
- xbox_apu : une prise en charge du processeur audio MCPX, basée sur les travaux du projet xemu.
- xbox_nv2a : une couche dédiée au GPU NVIDIA NV2A de la Xbox, avec traduction des commandes graphiques.
- xbox_input : une gestion des manettes Xbox via XInput, ainsi que du clavier.
- xbox_usb : une prise en charge des contrôleurs USB.
- xbox_video : une gestion de la lecture vidéo et des séquences FMV.
 
La partie graphique est particulièrement intéressante. Le toolkit prend notamment en charge les textures multi-couches, les shaders de sommets programmables, les effets de brouillard, l'éclairage matériel et différentes conversions de formats de textures.
 
Burnout 3 : Takedown, premier titre de référence
 
Le développement de xboxrecomp s'est notamment appuyé sur Burnout 3 : Takedown, qui a servi de premier jeu de référence pour construire l'ensemble de l'infrastructure. Les premiers résultats sont déjà particulièrement encourageants : le développeur indique avoir réussi à passer d'un dépôt quasiment vide à un jeu capable de démarrer et d'afficher des circuits 3D texturés en environ deux semaines de développement itératif. Le projet ne propose toutefois pas une conversion automatique et universelle permettant de lancer immédiatement n'importe quel jeu Xbox. Chaque titre nécessite encore un important travail d'analyse, de correction et d'adaptation.
 
Le processus consiste notamment à identifier les fonctions non prises en charge, corriger les appels indirects, compléter les fonctions système et adapter les éléments spécifiques au jeu.
 
Windows, Linux et macOS : une compatibilité multiplateforme
 
Autre point intéressant, xboxrecomp ne se limite pas à Windows.
 
Le toolkit prend également en charge Linux et macOS, aussi bien sur les architectures x86-64 que ARM64. Sur ces plateformes, SDL2 et OpenGL remplacent certaines interfaces propres à Windows et Direct3D. Cette orientation ouvre des perspectives intéressantes pour la préservation des jeux Xbox, avec la possibilité de produire à terme des exécutables natifs sur différentes architectures matérielles. Le projet fournit également une chaîne d'outils Python permettant d'analyser les fichiers XBE, de désassembler les fonctions, d'identifier les bibliothèques et de générer le code C correspondant.
 
Un projet encore réservé aux développeurs
 
Il faut toutefois bien comprendre que xboxrecomp est avant tout une boîte à outils destinée aux développeurs.
 
Le dépôt GitHub ne contient pas directement des exécutables de jeux prêts à l'emploi. Il fournit les bibliothèques et les outils nécessaires pour créer un projet spécifique à chaque titre. Il faut ensuite disposer de son propre jeu Xbox, extraire son fichier XBE et effectuer les différentes étapes de recompilation.
 
Une première compilation ne garantit d'ailleurs pas que le jeu fonctionnera immédiatement. Le développeur doit généralement intervenir pour corriger les fonctions manquantes et adapter les différentes couches du runtime.
 
Une nouvelle voie pour la préservation de la Xbox originale
 
Après N64Recomp pour la Nintendo 64 et XenonRecomp pour la Xbox 360, xboxrecomp s'attaque donc à une nouvelle plateforme avec une approche particulièrement intéressante.
 
La recompilation statique pourrait à terme permettre de préserver les jeux Xbox sous la forme de programmes autonomes, plus facilement adaptables aux architectures modernes et potentiellement modifiables par la communauté.
 
Avec sa version 0.17.0, le projet dispose déjà d'une infrastructure conséquente. Le principal défi reste désormais d'étendre les compatibilités, de multiplier les jeux étudiés et de transformer ces premiers travaux en véritables portages natifs.
 
GitHub : xboxrecomp
 
 
 
 
 
 

  • Retour en haut

Posté Aujourd'hui, 08:03

#2
damien58

damien58

    Sunriseur

  • Members
  • PipPip
  • 173 Messages :
  • Sexe:Not Telling
J'ai testé y'a un petit moment ça fonctionne pas mal
  • Retour en haut

Posté Aujourd'hui, 08:34

#3
Browni

Browni

    Sunriseur

  • Members
  • PipPip
  • 134 Messages :
  • Sexe:Male
A tester avec Blinx et Blinx 2 des exclu Xbox 1er Génération

Browni

  • Retour en haut




1 utilisateur(s) sur ce sujet

0 invité(s) et 1 utilisateur(s) anonyme(s)