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
What is this?Madeira runs x86-64 Windows PC games on a non-jailbroken iPhone by combining Wine (ARM64EC), FEX-Emu (x86-64 to ARM64 translation), and DXMT (D3D11 to Metal), all running inside a single Mach process on iOS.
Is this a jailbreak tool or something I install the normal way?It is not a jailbreak. It runs on a stock, non-jailbroken iPhone but has to be sideloaded rather than installed from the App Store, because it needs a debugger attached for JIT.
How do I build and install it on my iPhone?Build the native Wine/FEX/DXMT pieces with build//build.sh, then build the iOS app itself with xcodebuild and sideload the result onto your phone.
What do I need before I can run this?A non-jailbroken iPhone (development has been on an A15 / iPhone 13 Pro), a JIT debugger such as StikDebug to attach at launch, and an Apple ID for signing — a free account works but forces weekly rebuilds.
Which games actually work right now?Thumper and ULTRAKILL are playable; Marvel Cosmic Invasion reaches gameplay but has had an unexplained crash and unreliable controls; other titles reach gameplay only at low frame rates, and the project is explicitly research-grade with per-title quirks.
Does this work on any iPhone?It targets non-jailbroken iPhones only; development has specifically been done on an A15 chip (iPhone 13 Pro), and there is no Android, Mac, or desktop build.
Why does the app need to be rebuilt every week?It is signed with a free Apple ID, and free provisioning profiles expire after 7 days, forcing a rebuild-and-reinstall cycle. The app's container (saves, Wine prefixes) survives the reinstall.
Can I just clone the official Wine, FEX-Emu or DXMT repos to build this?No, the build uses submodules pointing at Madeira-specific forks of FEX, Wine, and dxmt that contain iOS-specific work, so the plain upstream repos won't build this project.
Can I submit AI-generated fixes from this fork back to FEX-Emu?No. The forks here contain substantial AI-assisted work, but FEX-Emu's own contribution policy forbids AI-generated code, so such changes shouldn't be submitted upstream.
Is everything needed to build included in the repo?No, the Microsoft Visual C++ runtime DLLs are not distributed and must be fetched separately before building, as documented in tools/fetch-vcruntime.md.
Creator
willfaust
Size
193.8 MB
Stars
2.6K
Age
7mo
Commits · 90 Days