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.
This fork also has an opt-in Madeira Dock trial: a
separately built, open-source (GPL-3.0-or-later) headless host for Valve's genuine Steam client
(125hz/madeira-dock).
It preserves real authentication, ownership checks and original game DRM.
Madeira Dock is being open-sourced (owner decision 2026-09-27: GPL-3.0-or-later with the Madeira Converter Exception);
its source is in 125hz/madeira-dock until it moves into this repository. Windows startup has been tested; the new iOS path awaits
device validation.
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.
- The native Steam client in
app/Madeira/SwiftSteam/(sign-in, owned library, depot downloads) is derived from Jfishin's Madeira Steam work and is published here with his permission. Madeira adapted it; seeSTEAM_INTEGRATION.md.
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.