Developer adrbn released a native ARM64 macOS port of Call of Duty: Black Ops II this week, a project that first surfaced on Hacker News with 43 points and 8 comments. The port uses static recompilation to translate the game's x86-64 binaries directly into native Apple Silicon code, bypassing the need for a translation layer like Rosetta 2.
Project: bo2-mac | Method: Static Binary Recompilation | Target: Native ARM64 macOS
Source: GitHub Repository | Status: Functional singleplayer
How Static Recompilation Works
The project uses a custom tool, i386-to-arm64, to perform static binary recompilation. This process directly translates the x86-64 machine code instructions from the original Windows game executable into ARM64 instructions. Unlike just-in-time (JIT) emulation or dynamic binary translation used by tools like Rosetta 2 or CrossOver, static recompilation does this translation once, ahead of time, creating a new native binary.
Key technical steps involve mapping x86 CPU registers to ARM64 registers, replacing Windows system calls with their macOS equivalents, and patching hard-coded x86 assembly sequences. The result is a self-contained blackops2.app that runs directly on the macOS kernel.
Performance and Current Status
Early user reports indicate the natively recompiled game runs with high stability in singleplayer modes on M1/M2/M3 Macs. Performance is generally comparable to or exceeds the experience through Proton or CrossOver on the same hardware, as it eliminates the overhead of a continuous translation layer.
The major functional limitation is no multiplayer support, as the recompilation process does not yet handle the game's anti-cheat and networking layers. The project is a proof-of-concept for bringing complex, legacy x86-64 applications to ARM64 without source code access.
| Feature | bo2-mac Native Port | CrossOver (Wine) | Parallels VM |
|---|---|---|---|
| Architecture | Native ARM64 | x64 via Wine + Rosetta 2 | x64 Virtualization |
| Performance | Native speed | Rosetta overhead | VM overhead |
| Setup Complexity | Moderate (compile) | Low | Low |
| Multiplayer | No | Possible | Yes |
| System Integration | High (macOS app) | Medium (bottle) | Low (isolated VM) |
How to Try the Native Port
Getting the game running requires access to the original game files and a technical setup process. It is not a drag-and-drop installer.
- Prerequisites: You must own Call of Duty: Black Ops II on Steam and have it installed to acquire the game's asset files (
.exeandzonefolders). You also need Xcode Command Line Tools and Homebrew installed. - Clone and Build: Clone the
bo2-macrepository and its submodules. The build process uses the providedMakefileto run the recompiler tool against the originalblackops2.exe. - Copy Assets: The final step involves copying the original game's asset folders into the newly created
blackops2.appbundle.
The project's README provides the most up-to-date instructions."Detailed Build Commands"
# Clone the repository and submodules
git clone --recursive https://github.com/adrbn/bo2-mac.git
cd bo2-mac
# Build the recompiler and generate the app
make
# Copy game assets from your Steam installation
cp -r /path/to/Steam/steamapps/common/Call\ of\ Duty\ Black\ Ops\ II/zone ./blackops2.app/Contents/Resources/
cp -r /path/to/Steam/steamapps/common/Call\ of\ Duty\ Black\ Ops\ II/main ./blackops2.app/Contents/Resources/
Pros, Cons, and Practical Tradeoffs
This project demonstrates a powerful alternative to emulation, but it has specific tradeoffs.
Advantages:
- Native Performance: Eliminates the consistent 10-30% performance tax of Rosetta 2 translation.
- Proof-of-Concept: Validates static recompilation as a viable path for porting legacy software to new architectures, a technique relevant to AI practitioners working with compiled model inference engines.
- Direct System Access: Runs as a true macOS application with potential for better memory and GPU access.
Limitations:
- No Multiplayer: A deal-breaker for many users, due to anti-cheat barriers.
- Manual Process: Requires compilation and file management, not a consumer-friendly installer.
- Game-Specific: The recompiler tool (
i386-to-arm64) is tailored for this specific game engine; porting another title would require significant reverse-engineering work.
Who Should Use This Native Port
This project serves distinct audiences and is not a general-purpose solution.
Use this native port if:
- You are a developer or researcher interested in binary recompilation techniques, especially for applying similar methods to other performance-critical, closed-source binaries.
- You are an Apple Silicon Mac user who wants the highest possible singleplayer performance for this specific title and enjoys technical tinkering.
- You study AI systems deployment, where compiling models for novel hardware architectures presents analogous challenges to binary translation.
Stick with alternatives if:
- Your primary goal is online multiplayer gaming.
- You want a one-click solution for playing multiple Windows games.
- You are not comfortable using the terminal and building software from source.
Bottom line: A technically impressive native port that proves the performance potential of static recompilation, but remains a niche tool for developers and enthusiasts.
The success of bo2-mac highlights static recompilation as an underexplored tool in the compatibility toolbox, one that could inform future efforts to migrate legacy AI toolchains and closed-source inference engines to emerging hardware platforms without sacrificing latency.

Top comments (0)