Mission: Impossible Recomp

The 1998 N64 Mission: Impossible, statically recompiled into a native Linux program: 60 FPS, widescreen at any resolution, keyboard and mouse.

install
Releases → the AppImage → chmod +x, run, pick your ROM on first start
Mission: Impossible Recomp — lead screenshot
status
live all 20 levels play; Linux only; bring your own ROM
version
0.1.0
stack
N64Recomp / N64ModernRuntime / RT64 / RecompFrontend / C++
source
github.com/nickallevato/mi_n64_exe ↗
links
release 0.1.0 ↗ · build from source ↗
since

What it is

This isn’t an emulator. All 1,697 of the game’s MIPS functions are translated to C ahead of time by N64Recomp, compiled into an ordinary executable, and run on N64ModernRuntime, with RT64 doing the drawing. Before this the game had no decomp, no recomp and no PC port.

It went from first commit to all twenty levels loading and running at 59 to 61 FPS in under five hours. The next morning added smooth frame pacing, crash fixes and the first level mod.

What it adds

  • 60 FPS without speeding the game up. Game logic runs on the video clock, and a hook interpolates root motion so walking stays smooth between the 30 Hz keyframes.
  • Keyboard and mouse. WASD, mouse-turn, right-click to aim. The mouse also drives the sniper scope and the gunboat turret.
  • Analog camera on the right stick.
  • Level tooling. The “Burp” archive format and level table are decoded, any level exports to OBJ with textures, and edited level data loads at runtime.

What you need

Linux with Vulkan, and your own copy of the cartridge as a .z64. The AppImage is one file; there’s a .tar.gz beside it if you’d rather. The release is built on Ubuntu 22.04, so most current distros run it. Building from source takes clang and a handful of tools the README lists.

Claude did the reverse engineering and I played it. The README says so and doesn’t apologise.

writing about it

1