bo2-mac: 将Black Ops II静态重编译为原生ARM64 macOS
Show HN: Black Ops II statically recompiled to native ARM64 macOS
这是一个令人惊叹的非官方粉丝项目,将Call of Duty: Black Ops II从32位x86 Windows版本静态重编译为原生ARM64 macOS应用。项目利用Remill将x86机器码提升为LLVM IR,通过手写Win32运行时和Metal渲染Direct3D 11,实现了无需Wine、无需JIT的原生运行。在Apple M1上,战役、僵尸模式和对战机器人均能达到50-60帧的流畅体验。用户需拥有Steam正版游戏,工具会在本地验证并转换,生成专属应用,确保代码安全且无法共享。
没有Wine,没有即时编译:游戏以原生代码形式运行,所有x86指令在游戏启动前已转化为ARM64机器码。
HN 评论区
47- cornedor
我曾用同样的技术让 Fallout: New Vegas 在 MacOS 的 Asahi Linux 上运行起来。这确实是个不小的跨越,但 https://github.com/doitsujin/dxvk 让这一切成为可能,省去了大量工作,只需一天就能让游戏跑起来。之后你可以随意进行任何修改,所以我现在能在宽屏显示器上以原生分辨率运行 fallout nv,并加入了一些图形增强效果:实时全场景阴影贴图、SSAO、色调映射 + 色彩分级、FXAA 以及水平 FOV 调整。
大多数时候能稳定维持 60fps,偶尔会出现一些小 bug,但通常很快就能修复。幸运的是,我很快加上了 10 分钟自动保存,所以即便出问题也不会造成太大麻烦。
除了让游戏在这台机器上运行起来的乐趣,以及真正能玩到游戏的乐趣之外,这也是探索如何创造性地与 LLM 协作的绝佳方式。顺便构建一些适合 LLM 使用的开发工具等等。
- klaussilveira
- scronkfinkle
> 不使用任何模拟器,无论是 Wine、Crossover 还是 Rosetta
另外两个我不太确定,但 WINE 可不是模拟器。名字里都写明白了 :)
- baalimago
这类事情让我对 AI 感到非常振奋。AAA 大厂缺乏的便利性,或是它们故意 withheld 的东西,现在触手可及了。
- cedws
它到底是怎么重编译的?是用了现有的工具吗?我无法想象那个 agent 会遍历每一个例程,然后手工翻译汇编代码。