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.
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.
- A non-jailbroken iPhone. Development has been on an A15 (iPhone 13 Pro).
- JIT, which on iOS requires a debugger to attach — StikDebug is what this project uses.
- An Apple ID for signing. A free account works; its provisioning profiles expire after 7 days, so the app must be rebuilt and reinstalled weekly. The app's container survives reinstall, so prefixes and saves are preserved.
Because JIT requires debugger attach, this app cannot be distributed through the App Store. It is installed by sideloading.
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.
GPL-3.0-or-later — see LICENSE. Derivatives that are
distributed must remain open source.
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.
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.