Indiana Jones and the Infernal Machine, 100% Byte-Match Decomp (PC)
andrewspode/infernal-machine-decomp-public
I'm just going to quote the repository:
--
A 100% byte-exact decompilation of LucasArts' Indiana Jones and the Infernal Machine (1999): C source that, built with the same compilers LucasArts used, turns back into the original Indy3D.exe, byte for byte.
This repository is not a port or a modernisation; it is a reference for how the game was actually written, for preservation and to help ports in development.
OpenJones3D was our starting point, but only around 15% of its functions were byte-exact. Partly that was because some of the game wasn't there yet (the INSANE movie player, zlib, the SSE renderer and a few hundred functions that still called into the retail executable), but also because they intentionally fixed bugs and improved things along the way, drifting further from LucasArts' code.
Despite the drift, it still gave us a huge head start: the file names and module layout, function and variable names, structures and types, and readable C for most of the game. That's far more than most decompilations have on day one, and truly awe-inspiring work, the result of nearly a decade spent on this game.
Using AI assistance (mostly Opus 5.5) and tooling loosely based on decomp-toolkit, it took a little over a month to track down the exact compilers used in 1999 and rebuild the code. A byte match on its own proves very little, as code can be bent until the bytes line up, so the goal throughout was the source LucasArts actually wrote, as close as we could get it, not 100% for the sake of it.
Strict rules banned the usual tricks for forcing a match, and every decision the evidence couldn't settle on its own was logged. Of the 3,300 functions, 3,102 rest on evidence alone; the other 198 depend on a measured choice, with me as the final decision-maker. Each one is labelled in the source, and every decision is documented.
In the process, we also released intel-cc-4.0-setup, which installs the Intel C/C++ 4.0 compiler that took some serious sleuthing to find (if anyone has the retail version, please get in touch), and a fix to wibo's heap emulation, both of which should help other decompilation projects. All the files OpenJones3D was missing will also be contributed straight back to it.
A big thank you to smlu of OpenJones3D for their help and support, and to Jack Price-Burns of Decomp Academy, who set up the initial toolchain and the anti-slop guidelines the agents worked under, based on his extensive experience bringing Star Fox Adventures to 100%.
--
Next steps are pushing the missing files upstream to the already playable OpenJones3D, which is still a very active project.
70 points · 12 comments
Mentions
Indiana Jones and the Infernal Machine, 100% Byte-Match Decomp (PC) andrewspode/infernal-machine-decomp-public I'm just going to quote the repository: -- A 100% byte-exact decompilation of LucasArts' Indiana Jones and the Infernal Machine (1999): C source that, built with the same compilers LucasArts used, turns back into the original Indy3D.exe, byte for byte. This repository is not a port or a modernisation; it is a reference for how the game was actually written, for preservation and to help ports in development. OpenJones3D was our starting point, but only around 15% of its functions were byte-exact. Partly that was because some of the game wasn't there yet (the INSANE movie player, zlib, the SSE renderer and a few hundred functions that still called into the retail executable), but also because they intentionally fixed bugs and improved things along the way, drifting further from LucasArts' code. Despite the drift, it still gave us a huge head start: the file names and module layout, function and variable names, structures and types, and readable C for most of the game. That's far more than most decompilations have on day one, and truly awe-inspiring work, the result of nearly a decade spent on this game. Using AI assistance (mostly Opus 5.5) and tooling loosely based on decomp-toolkit, it took a little over a month to track down the exact compilers used in 1999 and rebuild the code. A byte match on its own proves very little, as code can be bent until the bytes line up, so the goal throughout was the source LucasArts actually wrote, as close as we could get it, not 100% for the sake of it. Strict rules banned the usual tricks for forcing a match, and every decision the evidence couldn't settle on its own was logged. Of the 3,300 functions, 3,102 rest on evidence alone; the other 198 depend on a measured choice, with me as the final decision-maker. Each one is labelled in the source, and every decision is documented. In the process, we also released intel-cc-4.0-setup, which installs the Intel C/C++ 4.0 compiler that took some serious sleuthing to find (if anyone has the retail version, please get in touch), and a fix to wibo's heap emulation, both of which should help other decompilation projects. All the files OpenJones3D was missing will also be contributed straight back to it. A big thank you to smlu of OpenJones3D for their help and support, and to Jack Price-Burns of Decomp Academy, who set up the initial toolchain and the anti-slop guidelines the agents worked under, based on his extensive experience bringing Star Fox Adventures to 100%. -- Next steps are pushing the missing files upstream to the already playable OpenJones3D, which is still a very active project.