Aller au contenu
Martin Poiroux
Langue : English
Projets · CodeCode · Prototypes · 2026

Rétro-ingénierie

Reconstruire des jeux existants à partir de leurs fichiers et de leur exécutable : TrackMania Nations Forever d’abord, sans code source et sans documentation officielle.

Le chantier vise un jeu précis, TrackMania Nations Forever (Nadeo, 2008), et un objectif en deux temps : une réimplémentation fidèle de l’environnement Stadium, puis une version modernisée qui garde exactement la même simulation. La physique du jeu avance à pas fixe, autour de 100 Hz, et elle est déterministe. C’est ce qui rend l’objectif vérifiable : un replay officiel rejoué par la réimplémentation doit retomber sur le même chrono, au centième près.

Ce qui fonctionne aujourd’hui, c’est la lecture des circuits. Le format GBX de Nadeo est lu en C++20 : l’en-tête, la décompression LZO du corps, réécrite et couverte par des tests, puis le parcours des chunks jusqu’à la grille de blocs d’un circuit, qu’un petit visualiseur Direct3D 11 affiche.

Les archives du jeu, elles, ont résisté. Les fichiers .pak sont chiffrés en Blowfish, et la dérivation de clé documentée par la communauté n’ouvre aucune des trois archives de la version Steam ; un balayage systématique des variantes plausibles n’a rien donné non plus. Le travail est donc passé à l’exécutable lui-même : désassemblage, dumps mémoire du jeu en cours d’exécution, points d’arrêt matériels posés par un petit débogueur écrit pour l’occasion. Il a établi que la formule connue est du code mort dans cette version, et repéré une constante absente de la documentation publique. La clé finale n’est pas encore retrouvée : le projet est en pause à cet endroit précis, et les notes disent où reprendre.

Deux autres cibles attendent sous le même toit. Total Immersion Racing, un jeu de course de 2002, n’a encore qu’un dépôt vide. Tower Quest, un tower-defense en ligne fermé en 2013, a été mené beaucoup plus loin, sans le moindre fichier à décompiler : il a sa propre fiche.

Projet privé, pas de lien public