把《黑色行动 2》静态重编译成原生 ARM64 macOS 应用
来源:github.com — 2026-11-05
📋 概述
《使命召唤:黑色行动 2》从来没出过 Mac 版,在 Apple silicon 上通常靠 Wine 或 CrossOver 叠 Rosetta 2 实时翻译。这个项目换了个做法:把战役、僵尸、多人三个可执行文件的 x86 机器码提前翻译成 ARM64——Remill 先把每个函数提升成 LLVM IR,一串自研 pass 改写后,与手写的 Win32 运行时链接,其中 Direct3D 11 由 Metal 绘制。三个可执行文件合计约 15 万个函数,没有 Wine,也没有 JIT。在 M1 上战役 51 到 60 帧,僵尸 57 到 60 帧,多人对 bots 53 到 60 帧。
🔑 核心要点
- 翻译一次而非运行时翻译:整条链路在开游戏之前完成,产出的是一个真正的原生 app,可以被修改和扩展。
- 被复制保护藏起来的短序列和漏译的代码走一个小型 x86 解释器,设计上让漏译的代价是掉速而不是崩溃。
- 仓库里没有任何游戏文件,转换器读取你自己买的 Steam 副本、逐字节校验后在本机构建,因此不存在“成品包”。
- 转换在 M1 上约需 1 小时 45 分钟,峰值占用约 10GB 磁盘,最终保留约 4GB。
💡 金句
这里的翻译在游戏启动之前只做一次,你得到的是一个原生 ARM64 应用。
👍 0
👎 0
← 返回 Hacker News 首页