Madeira is a compatibility stack that runs x86-64 Windows PC games on a non-jailbroken iPhone. It is written mostly in C, licensed GPL-3.0-or-later, and it is aimed at developers and technically confident enthusiasts who are willing to build an iOS app from source, sign it with their own Apple ID, and accept that individual games behave differently. The README is blunt about what this is: a research project, not a product.
What it does
Madeira boots Windows games on iOS without a jailbreak. You sideload the app onto a stock iPhone and Windows executables run inside it, using the same kind of translation-and-compatibility layering that has made Windows games run on Linux and macOS, but assembled to fit inside a single iOS app.
The project's own status report is narrow and specific:
- Thumper and ULTRAKILL are playable.
- Marvel Cosmic Invasion has reached gameplay, but one run ended in an unexplained termination and its controls are not yet reliable.
- Other titles reach gameplay at low frame rates.
Development has been done on an A15 device, an iPhone 13 Pro. The README warns to expect rough edges, per-title quirks and breaking changes, so treat the list above as the current state of an experiment rather than a compatibility guarantee.
How it works
Three upstream projects do the heavy lifting, and Madeira is largely the work of making them coexist on iOS.
Wine, built for ARM64EC, supplies the Windows environment that games expect. FEX-Emu handles the instruction-set gap, translating x86-64 code to ARM64 so that game binaries compiled for desktop PCs execute on Apple's chips. DXMT covers graphics, turning Direct3D 11 calls into Metal.
The iOS-specific part is how these are packaged. Everything runs as a single Mach process, with wineserver living as a thread rather than the separate process it is on desktop Wine. Translation also needs JIT, and on iOS JIT is only available when a debugger is attached; the project uses StikDebug for that attach. That requirement has a direct consequence the README spells out: because the app depends on debugger attach, it cannot be distributed through the App Store, so sideloading is the only installation path.
Getting started
Expect a build, not a download. Clone the repository with submodules:
git clone --recurse-submodules <repo>
The FEX, wine and research/dxmt submodules point at forks that carry the iOS work. Upstream clones of those projects will not build here, so skipping the recursive clone or substituting upstream sources is a dead end.
The build is split across several chains: the unix-side Wine libraries, the ARM64EC PE modules, FEX, DXMT, and the iOS app itself. The build/*/build.sh scripts cover the native pieces, and the app is produced with xcodebuild.
Signing is the other piece of setup. You need an Apple ID; a free account is enough, but its provisioning profiles expire after seven days, which means rebuilding and reinstalling the app every week. The app's container survives reinstall, so Wine prefixes and game saves are preserved across those weekly cycles rather than being lost each time.
When to use it / when not
Reach for Madeira if you are interested in how x86-64 translation and D3D-to-Metal mapping behave on Apple silicon, if you want to contribute to that work, or if you own a recent iPhone and specifically want to play one of the titles the project already reports as playable. The weekly reinstall is tolerable if you are the kind of person who already has Xcode open.
Skip it if you want a dependable library of games on your phone. Nothing here promises that a given title will launch, keep a stable frame rate or accept controller input, and one of the three highlighted games has already produced an unexplained termination. Skip it too if the multi-chain build is more than you want to maintain, or if you were hoping to hand a finished app to someone else — App Store distribution is ruled out by the JIT requirement, and the GPL-3.0-or-later license means any derivative you do distribute has to stay open source. The README also notes that the licenses of the upstream components differ from the project's own: Wine and GnuTLS under LGPL-2.1-or-later, GMP and Nettle under LGPL-3.0-or-later, FEX-Emu and DXMT under MIT. Anyone planning to redistribute should read that section carefully rather than assume a single license covers the whole tree.
Madeira deserves attention from people who work on emulation, graphics translation and iOS internals, and from gamers who enjoy being early on something unfinished. The engineering result is genuinely notable: a Windows game running on a phone nobody had to jailbreak, with wineserver folded into one process and DirectX calls landing on Metal. Just read the status section before you start, and judge the project by the two games it says are playable, not by the ones you hope will be.