adrbn /
bo2-mac
I recompiled the three Black Ops II executables (campaign, Zombies, multiplayer) from 32-bit x86 Windows to native ARM64 macOS, ahead of time. Remill lifts each function to LLVM IR, a set of custom passes rewrites it, an…
adrbn /
I recompiled the three Black Ops II executables (campaign, Zombies, multiplayer) from 32-bit x86 Windows to native ARM64 macOS, ahead of time. Remill lifts each function to LLVM IR, a set of custom passes rewrites it, an…
I recompiled the three Black Ops II executables (campaign, Zombies, multiplayer) from 32-bit x86 Windows to native ARM64 macOS, ahead of time. Remill lifts each function to LLVM IR, a set of custom passes rewrites it, and the result links against a hand-written Win32 runtime whose Direct3D 11 is drawn by Metal. No Wine, no Rosetta, no JIT, one process. About 150,000 functions are translated; anything the translation misses falls back to a small x86 interpreter, so a gap costs speed instead of crashing. On an M1: campaign 51-60 fps, Zombies 57-60 on six maps, multiplayer against bots 53-60. The repo contains no game files and no translated code. It converts your own Steam copy on your Mac, which takes about 1h45 on an M1. Much of the work was done with AI coding agents, and I spent most of my time on verification: frame pacing against the game's own clock, byte checks on the input files, and run logs for every claim in the README. It's a beta. Split-screen Zombies is the current work in progress. Happy to answer questions about the lifting, the Win32 runtime or the D3D11-to-Metal layer.
Discuss this product