hn.today

Show HN: Black Ops II statically recompiled to native ARM64 macOS

github.com149 points66 comments
Screenshot of Show HN: Black Ops II statically recompiled to native ARM64 macOS

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.

Read on github.com66 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

Ggml v1.0.0

Ggml v1.0.0

ggml 1.0.0 removes deprecated public APIs and legacy DIAG_MASK operations, while adding configurable YaRN truncation and FP8 support. It also improves backend performance with quantized matrix multiplication, fused MoE operations, and new attention and scheduling paths. (github.com)

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.