Madeira README

The project's README from github.com/willfaust/Madeira. As one markdown file: README.md.

Madeira

Run Windows PC games on a non-jailbroken iPhone.

Madeira combines Wine (ARM64EC), FEX-Emu for x86-64 → ARM64 translation, and DXMT for D3D11 → Metal, running as a single Mach process on iOS with wineserver as a thread rather than a separate process.

Status

Thumper and ULTRAKILL are playable. Marvel Cosmic Invasion has reached gameplay, though a run has also ended in an unexplained termination and its controls are not yet reliable. Others reach gameplay at low frame rates. This is a research project, not a product: expect rough edges, per-title quirks and breaking changes.

Requirements

Because JIT requires debugger attach, this app cannot be distributed through the App Store. It is installed by sideloading.

Building

The build is split across several chains — the unix-side Wine libraries, the ARM64EC PE modules, FEX, DXMT and the iOS app itself. build/*/build.sh covers the native pieces; the app is built with xcodebuild.

git clone --recurse-submodules <this repo>

Note that FEX, wine and research/dxmt are submodules pointing at forks containing the iOS work; upstream clones will not build here.

License

GPL-3.0-or-later — see LICENSE. Derivatives that are distributed must remain open source.

Upstream licenses vs. this project's forks

Those are the licenses of the upstream projects: Wine and GnuTLS LGPL-2.1-or-later, GMP and Nettle LGPL-3.0-or-later, FEX-Emu and DXMT MIT, rpmalloc 0BSD. Their texts are in LICENSES/, and upstream code remains available under them from upstream.

The forks used here are not licensed identically to their upstreams. Each carries its own LICENSE-MADEIRA.md saying exactly what applies:

Fork Terms
wine relicensed to GPL-3.0-or-later under LGPL-2.1 §3
FEX, dxmt upstream MIT preserved; modifications GPL-3.0-or-later
rpmalloc upstream 0BSD preserved; Will Faust's modifications GPL-3.0-or-later

This is not retroactive: those forks were public beforehand, so anything already obtained under a permissive license stays available under it.

THIRD-PARTY-NOTICES.md has the per-component breakdown. Note in particular that the Microsoft Visual C++ runtime DLLs are not distributed here and must be supplied yourself — see tools/fetch-vcruntime.md.

A note on upstream contributions

The forks here contain substantial AI-assisted work. FEX-Emu's contribution policy states that AI must not be used to generate code for contributions to that project, so do not submit AI-generated changes from this fork upstream. The MIT license permits the fork itself; the policy governs contributions back. Check each upstream's contribution policy before proposing changes to it.

Madeira (willfaust/Madeira)

Searching Database…

2.6K ·GitHub
这是什么?Madeira 通过组合 Wine(ARM64EC)、FEX-Emu(x86-64 到 ARM64 的转译)和 DXMT(D3D11 到 Metal),在未越狱的 iPhone 上运行 x86-64 Windows PC 游戏,全部在 iOS 上单个 Mach 进程内运行。
这是越狱工具,还是可以用正常方式安装的东西?它不是越狱。它运行在原装、未越狱的 iPhone 上,但必须侧载安装,而不能从 App Store 安装,因为它需要附加调试器才能进行 JIT。
我怎么构建并把它装到我的 iPhone 上?用 build//build.sh 构建原生的 Wine/FEX/DXMT 组件,然后用 xcodebuild 构建 iOS 应用本身,再把产物侧载到你的手机上。
运行它之前我需要准备什么?一台未越狱的 iPhone(开发用的是 A15 / iPhone 13 Pro)、一个能在启动时附加的 JIT 调试器(如 StikDebug),以及一个用于签名的 Apple ID——免费账号也可以,但必须每周重新构建。
目前哪些游戏真的能玩?Thumper 和 ULTRAKILL 可以玩;Marvel Cosmic Invasion 能进入游戏,但出现过原因不明的崩溃,操控也不稳定;其他游戏只能以低帧率进入游戏,而且项目明确属于研究级别,每个游戏各有各的怪癖。
它在任何 iPhone 上都能用吗?它只面向未越狱的 iPhone;开发专门是在 A15 芯片(iPhone 13 Pro)上进行的,而且没有 Android、Mac 或桌面版构建。
为什么这个应用每周都要重新构建?它用免费的 Apple ID 签名,而免费描述文件会在 7 天后过期,迫使你反复重建和重装。应用的容器(存档、Wine 前缀)在重装后仍然保留。
我直接克隆官方的 Wine、FEX-Emu 或 DXMT 仓库就能构建吗?不能,构建使用的子模块指向 FEX、Wine 和 dxmt 的 Madeira 专用分支,其中包含 iOS 专属的修改,所以单纯的上游仓库构建不了这个项目。
我能把这个分支里 AI 生成的修复提交回 FEX-Emu 吗?不能。这里的分支包含大量 AI 辅助完成的工作,但 FEX-Emu 自己的贡献政策禁止 AI 生成的代码,所以这类改动不应该提交到上游。
构建所需的一切都包含在仓库里吗?不是,Microsoft Visual C++ 运行时 DLL 不随仓库分发,必须在构建前单独获取,详见 tools/fetch-vcruntime.md。
Creator
willfaust
Size
193.8 MB
Stars
2.6K
Age
7mo
Commits · 90 Days