Case study

The Two Towers Recompiled: an original Xbox static-recompilation port

Statically recompiles the x86 code of The Lord of the Rings: The Two Towers (Xbox, USA, 2002) into C with the bundled xboxrecomp toolkit, producing native Windows, Linux and experimental macOS builds. The recompiled sources are generated locally from the player's own default.xbe, and game data comes from their disc image or extracted folder. README reports the game as fully playable, with visual, frame-rate and mod issues listed.

Requirements and limitations

  • README for v1.9.2 calls the port a fully playable work in progress and recommends 60 FPS; unlocked frame rates and widescreen are experimental. Downloads cover 64-bit Windows 7 SP1 to 11, x86-64 Linux with glibc 2.27+, and macOS 10.15+ on Intel or through Rosetta 2, with the macOS build not yet tested on a Mac. Known issues include stretched character shadows, lighting glitches, Vulkan black screens and several problems with the bundled extra-heroes mod.
  • Players need their own USA Xbox disc image or extracted game folder, and no game data is included. generate.py checks the retail default.xbe against a fixed SHA-256, then runs the xboxrecomp pipeline (XBE parsing, disassembly, function identification, ABI analysis, naming and recompilation) to write the C sources locally, so no recompiled code is committed. A separately distributed GameCube high-resolution texture pack is optional and not part of the release.
  • The repository vendors the xboxrecomp 0.12.0 static-recompilation toolkit, which translates an XBE's x86 code into C, and CHANGES.md lists the fixes made to it for this game. The game project builds with CMake 3.20+ and C11 under MSVC, MinGW or Clang/GCC; Linux uses SDL2 with OpenGL loaded at run time, and the renderer options are Direct3D 11, Vulkan through DXVK or OpenGL. The README at this revision has no build section; generate.py only says to build with CMake afterwards.
  • Testing reported for 1.9.2 covers menus, level loading and fonts in several languages under Wine and on Linux with OpenGL, and states that the Windows, Linux and macOS builds compile. No automated tests or CI runs are recorded for the reviewed commit, and this collection did not download releases or rerun anything.
  • LICENSE.txt applies MIT to the port's own code (twotowers/ and generate.py); the vendored xboxrecomp keeps MIT plus LGPL-2.1-or-later for parts taken from xemu. The license adds that the release's game program contains code mechanically translated from the original executable, which it does not cover and which remains the rights holders' property. Reviewed sources establish no REA involvement, and no runtime reproduction is claimed.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  2. generate.py GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  3. twotowers/CMakeLists.txt GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  4. CHANGES.md GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  5. LICENSE.txt GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  6. xboxrecomp-0.12.0/README.md GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  7. xboxrecomp-0.12.0/NOTICE GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  8. xboxrecomp-0.12.0/LICENSE GitHub · Gumpolas/TooTawersRecomp · Revision 6fce430
  9. https://github.com/Gumpolas/TooTawersRecomp/releases/tag/1.9.2