Dans un billet publié le 9 octobre 2026, Maurice Heumann rapporte que 99 % des fonctions figurent dans le code C++ reconstruit et que 83 % de toutes les fonctions correspondent à l’original octet par octet. Tom’s Hardware identifie le jeu visé comme Call of Duty: Modern Warfare 2 (2009). Ces deux pourcentages mesurent des choses différentes : la présence d’une fonction dans le code reconstruit, puis sa correspondance exacte avec les octets de l’original.
Comment fonctionne la comparaison octet par octet
Heumann décrit un contrôle qui utilise le compilateur du jeu d’origine. L’équipe compare les données de chaque fonction dans le fichier objet de la reconstruction (OBJ) à celles de l’exécutable du jeu (EXE), en s’appuyant aussi sur les informations de symboles du fichier PDB. Son compte rendu détaille cette méthode.
Les adresses de fonctions ou de données peuvent changer d’une compilation à l’autre. Pour ces références relocalisables, le contrôle ne compare donc pas directement les octets qui dépendent de l’adresse : il vérifie que les deux versions pointent vers le même symbole et le même décalage (offset). Les correspondances enregistrées sont ensuite contrôlées de nouveau par l’intégration continue (CI), afin de repérer d’éventuelles régressions.
Ce qu’un écart d’octets permet de conclure
Une fonction qui ne correspond pas exactement ne réussit pas ce contrôle précis ; ce résultat ne suffit pas, à lui seul, à établir si son comportement est équivalent. Heumann estime que les fonctions sans correspondance exacte sont correctes sur le plan sémantique, mais cette appréciation ne constitue pas un résultat de comparaison octet par octet.
Il cite plusieurs raisons qui peuvent expliquer une différence d’octets : des variations de sortie du compilateur, le choix des registres, les conventions d’appel, l’intégration d’une fonction dans son appelant ou le regroupement de fonctions identiques par le compilateur. À l’inverse, les quatre premières semaines du projet avaient produit du code lisible mais comportant, selon lui, des erreurs de sens dans les signatures, les types, l’organisation des structures et la logique. Lancer le jeu ou charger des cartes n’avait pas suffi à révéler ces problèmes ; Heumann dit avoir préféré reprendre le travail plutôt que tenter de le réparer.
L’état du projet selon Heumann
Le 30 septembre 2026, Heumann écrivait que 17 agents travaillaient en parallèle et que le jeu était jouable, avec la plupart des bogues visibles éliminés. Dans son compte rendu du 9 octobre, il indiquait que le code reconstruit resterait privé et serait utilisé pour ses propres besoins.