This project converts Call of Duty: Black Ops II’s campaign, Zombies, and multiplayer executables from 32-bit Windows code into native ARM64 macOS applications. It processes an exact Steam build owned by the player: Ghidra catalogs functions, Remill lifts them into LLVM intermediate code, and custom passes optimize the result before compilation. A hand-built Windows compatibility runtime implements the game’s required APIs, renders Direct3D 11 through Metal, and routes sound and video to macOS systems. There is no Wine or just-in-time translation. Roughly 150,000 functions are recompiled; a small x86 interpreter handles copy-protection routines and any code the translation misses. Zombies and multiplayer services are answered locally.
On one Apple M1, reported performance is 51-60 frames per second in most campaign play, 57-60 in most tested Zombies maps, and 53-60 in multiplayer matches against bots. The campaign’s missions can chain through to the credits, and all three modes use the game’s menus. Building takes about an hour and 45 minutes and requires roughly 10 GB at peak. Testing exposed subtle hardware-emulation errors, including incorrect x87 rounding and control-word behavior that caused visual glitches or freezes; targeted lifter fixes corrected them. The project remains a beta, with results measured on a single M1. It distributes neither game files nor a ready-made app: players need a legitimate Steam copy and build their own installation.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.