ByteNoteByteNote
不越狱的 iPhone 跑 Windows 游戏?三件开源套件拼出来了
字

字节笔记本

2026年9月29日 · 约 3 分钟读完

不越狱的 iPhone 跑 Windows 游戏?三件开源套件拼出来了

API中转
¥120

在免越狱的 iPhone 上玩 Windows PC 游戏——听起来像愚人节新闻,但 Madeira 把它做出来了。这个开源项目(1.1 千星,GPL-3.0)把 Wine、FEX-Emu 和 DXMT 三件套拼成一个 Mach 进程跑在 iOS 上:Thumper 和 ULTRAKILL 已经可以玩起来。作者原话很冷静:这是研究项目,不是产品。

Madeira 的三层翻译栈

它是怎么做到的

跑一个 x86-64 的 Windows 游戏,iPhone 要连闯三关:CPU 指令不是 ARM 的、系统 API 是 Windows 的、图形接口是 D3D11 的。Madeira 的答案各配一件开源武器——FEX-Emu 负责 x86-64 到 ARM64 的指令翻译,Wine(ARM64EC 构建) 提供 Windows API 层,DXMT 把 D3D11 调用转换成 Metal。

工程上最硬核的细节是:这一切作为单个 Mach 进程运行,wineserver 从独立进程降级成了一个线程——这对 iOS 的进程模型和性能都是关键设计。另外它不需要越狱,但 JIT 需要调试器附加(项目用的是 StikDebug),所以注定进不了 App Store,只能侧载。

现状与代价

先把丑话说完:这是一个成熟度很早期的项目。目前只有 Thumper 和 ULTRAKILL 达到"可玩",漫威宇宙的英雄游戏进了 gameplay 但会莫名闪退、操作还不稳,其他游戏大多在低帧率下勉强运行;每个游戏都有自己的怪癖,破坏性变更会随时发生。

使用门槛也不低:需要一台免越狱 iPhone(开发机是 A15 的 iPhone 13 Pro)、StikDebug 附加 JIT、以及一个用于签名的 Apple ID——免费账号的描述文件 7 天过期,意味着每周要重新构建安装一次;好在应用容器在重装后保留,前缀和存档不会丢。

快速上手

对大多数人,合理的路径是等它的构建产物或跟随社区教程侧载;动手能力强的可以直接从源码构建——注意 Wine、FEX、DXMT 都是带 iOS 改造的专用 fork,用上游代码编不过:

bash
git clone --recurse-submodules <本仓库>
# 各原生组件走 build/*/build.sh,iOS 应用用 xcodebuild

许可上有个值得注意的细节:项目把各 fork 重授权为 GPL-3.0-or-later,分发衍生品必须继续开源;Microsoft 的 VC++ 运行时 DLL 不随项目分发,需要自备。

适合谁看

移动端极客:想研究"单 Mach 进程跑 Wine"这种设计的,这是目前最完整的公开参考实现。

模拟器社区:FEX/Wine/DXMT 三个 iOS fork 里的改造本身就是有价值的技术积累。

普通玩家:现在还不到买账的时候——但两年前"手机跑 PC 游戏"还只存在于串流方案里,开源社区把它做成了本地翻译。每周重签一次签名,换 ULTRAKILL 装进口袋,对一部分人来说这买卖已经成立了。

相关文章

分享: