bo2-mac recompiles Call of Duty: Black Ops II into a native Apple silicon app, built from your own Steam copy

The beta turns the game's three Windows executables into ARM64 code ahead of time, with no Wine. On a base M1 the campaign runs at 51 to 60 frames per second; Zombies and multiplayer play offline a...

AI-drafted from 3 sources. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.

Black Ops II never came out on the Mac, and on Apple silicon it has been close to unplayable: CrossOver could not run it and Rosetta 2 does not support it. bo2-mac, a beta first published on GitHub on 3 November, takes a different route. It does not run the Windows game through a compatibility layer at all. It translates the game's x86 machine code into ARM64 code once, before you play, and links it into an ordinary Mac app.

How it works

The game ships as three executables: the campaign, Zombies and multiplayer. bo2-mac lists the functions in each with Ghidra, lifts every one to LLVM IR with Remill, rewrites that IR with its own passes for speed, and compiles the result for ARM64. About 150,000 functions are translated. The Windows functions the game calls are answered by a runtime written for the project, and its Direct3D 11 is drawn with Metal. There is no Wine and no just-in-time translation; the game runs as native code in one process.

Two details stand out. The copy protection is run, not removed: the short stretches of code it hides are executed in a small x86 interpreter, and so is any code the translation missed, which costs speed instead of crashing the game. And Zombies and multiplayer, which expect Activision's online service, talk to a stand-in on your own Mac, so nothing leaves the machine.

What you can play

Measured on one base Apple M1, the README reports 51 to 60 frames per second in the campaign, where every mission loads and leads to the next one down to the credits, though not every mission has been played end to end. Zombies runs at 57 to 60 solo on six maps. Multiplayer runs at 53 to 60, but only in Custom Games against bots, in eleven modes, with match rules the project wrote itself. There is no online play, no LAN and no co-op. The game runs in a 1280 by 720 window, and the author warns the Mac gets very hot in long sessions, so play plugged in.

You need an Apple silicon Mac on macOS 14 or later, about 20 GB free, Homebrew, and Steam for Mac signed in to an account that owns the game. The repository contains no game files. The converter only accepts the exact Steam build of each executable, checks that your account owns the game, and builds the app on your Mac; the conversion takes about an hour and 45 minutes on an M1, with the campaign playable after the first 45. The result contains the game's code, so it cannot be shared, and the project says plainly that you have to buy the game to play.

The README is open about how it was made: AI agents wrote shims and chased bugs through millions of calls, and the human author set the goals and checked what was really on screen. It describes the work as months of effort with heavy manual intervention. Split-screen, which the PC version never had, is listed as in progress. The project, which was shared on Hacker News, is unofficial, GPL-3.0 licensed and not affiliated with Activision or Treyarch.

Sources

Image: Image: bo2-mac

More news from Gaming World