willfaust/Madeira

▲ 1,809 stars today★ 644⑂ 144

Run x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT

About willfaust/Madeira

willfaust/Madeira is an open-source project on GitHub, mainly written in C. Run x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT It currently holds 644 stars and 144 forks with 19 open issues, and was last pushed on 2026-09-25 (repository created 2026-03-07).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository willfaust/Madeira · default branch main · size 155978 KB · watchers 11 · source: GitHub REST API and repository README

README

https://github.com/willfaust/Madeira/blob/HEAD/Madeira — Bringing PC gaming to your iPhone.

https://github.com/willfaust/Madeira/blob/HEAD/Join the Madeira Discord     https://github.com/willfaust/Madeira/blob/HEAD/Latest release     https://github.com/willfaust/Madeira/blob/HEAD/License: GPL-3.0-or-later

Madeira runs Windows PC games on an iPhone, with no jailbreak. Games run as they are, unmodified, inside a single iOS app.

[!NOTE]
Madeira is an active research project. Many games start and some play well,
but performance and compatibility vary from game to game, and things change
quickly. Expect rough edges.

How it works

| Layer | What it does | |---|---| | FEX-Emu | Translates the game's x86 and x86-64 code to ARM64 as it runs. | | Wine 11.4 | Provides Windows. It is built for ARM64EC, so Wine itself runs natively and only the game's own code is translated. 32-bit games run through WoW64. | | DXMT | Draws Direct3D 9, 10 and 11 with Metal. | | madeira-d3d12 | Madeira's own Direct3D 12 implementation on Metal, converting DXIL shaders at run time with Apple's Metal Shader Converter. |

iOS apps cannot start other programs, so everything runs in one process: even Wine's server runs as a thread instead of a separate program.

Features

start them through Valve's own Windows Steam client (Madeira Dock). before a game starts, and Upload saves and close Madeira in the game menu sends them when you stop playing. Saves that changed on both sides are never overwritten without asking, and anything a sync replaces is backed up. on-screen touch controls.

Requirements

on reliably. Development happens on recent Pro iPhones. StikDebug or its built-in StikJIT helper. On iOS 27 the built-in helper can pair the iPhone itself, without a computer. expires after 7 days, so the app needs refreshing weekly. Your games and saves are kept across reinstalls.

Because JIT needs a debugger, Madeira cannot be offered on the App Store.

Installing

1. Download the IPA from the latest release. 2. Sideload it with your own Apple ID using SideStore, AltStore, Sideloadly, Plume or a similar tool. 3. Open Madeira and enable JIT. Automatic mode uses StikDebug when installed, otherwise it guides you through the built-in setup; see JIT setup. 4. In Settings, check that JIT and Memory+ both show a green check: Madeira then says Ready to play.

Some 64-bit games need Microsoft's Visual C++ runtime, which is not included (see Licensing).

Building from source

git clone --recurse-submodules https://github.com/willfaust/Madeira.git

FEX, wine, dxmt and madeira-dock are submodules that point at Madeira's own forks; upstream checkouts will not build here. The build has several parts (the Wine unix libraries, the ARM64EC Windows modules, FEX, DXMT and the app) and some inputs that are not in the repository, such as the toolchains. docs/BUILDING.md walks through all of it.

Repository layout

| Path | Contents | |---|---| | app/ | The iOS app: SwiftUI front end, Wine bridge and bundled resources | | wine/, FEX/, dxmt/, madeira-dock/ | Madeira's forks and the Steam client launcher (submodules) | | madeira-d3d12/ | The native Direct3D 12 runtime | | build/ | Build scripts and iOS-side sources, one folder per component | | tests/ | Host checks and x86, x86-64 and DXMT test programs | | tools/ | Helper scripts | | docs/ | Documentation | | research/ | Experiments that are not part of the app |

Documentation

| Topic | Document | |---|---| | Building from a clean checkout | docs/BUILDING.md | | StikDebug and built-in JIT setup | docs/JIT.md | | The game library | docs/LIBRARY.md | | Steam sign-in, library and downloads | docs/STEAM_SIGNIN.md, docs/STEAM_LIBRARY.md | | Steam Cloud saves | docs/STEAM_CLOUD.md | | Madeira Dock (the Steam client) | docs/MADEIRA_DOCK.md | | 32-bit games (WoW64) | docs/WOW64.md | | Controllers and touch controls | docs/CONTROLLERS.md | | Keyboard, mouse and trackpad | docs/KEYBOARD_MOUSE.md | | Audio and video | docs/MEDIA.md | | Licensing in detail | docs/LICENSING.md |

Licensing

Madeira is licensed under GPL-3.0-or-later (LICENSE) with the Madeira Converter Exception (LICENSE-EXCEPTION.md), an additional permission that allows it to work with Apple's Metal Shader Converter.

The projects it builds on keep their own licenses upstream, but Madeira's forks are not all licensed the same way as their upstreams:

| Component | License | |---|---| | Wine fork | LGPL-2.1-or-later, like upstream Wine | | FEX-Emu fork, DXMT fork | Upstream code stays MIT; Madeira's changes are GPL-3.0-or-later with the exception | | rpmalloc fork | Upstream code stays 0BSD; Madeira's changes are GPL-3.0-or-later with the exception | | Madeira Dock | GPL-3.0-or-later with the exception |

Anything obtained earlier under a permissive license stays available under it. Per-component details, including GnuTLS, Nettle, GMP, FFmpeg and LLVM, are in THIRD-PARTY-NOTICES.md; the license texts are in LICENSES/.

Microsoft's Visual C++ runtime DLLs are not distributed with Madeira. To build with them, supply them yourself as described in tools/fetch-vcruntime.md.

Contributing

Contributions are welcome under GPL-3.0-or-later; see CONTRIBUTING.md.

Madeira's forks contain a lot of AI-assisted work. FEX-Emu does not accept AI-generated code, so please do not send changes from these forks upstream to FEX-Emu, and check each upstream project's contribution policy before proposing anything to it.

Credits

Madeira is built on Wine, FEX-Emu, DXMT by Feifan He (3Shain) with the Direct3D 9 frontend by David Acevedo (dacevedo12), rpmalloc by Mattias Jansson, StikDebug, StikJIT and idevice for enabling JIT. Thank you to everyone who contributes to them.

Join the community on Discord

GitHub Stars & Activity

644Stars
144Forks
19Open issues
CLanguage

GitHub Popularity

GitHub stars644
Forks144
Open issues19
Primary languageC
LicenseGPL-3.0
Stars gained today1,809
Created2026-03-07
Last pushed2026-09-25

Trending History

Monthly boardrank #91 · ▲ 1,809 stars

Related GitHub Projects

1

ventoy / Ventoy

C★ 79,880⑂ 4,976▲ 55 stars
→
2

obsproject / obs-studio

C★ 77,252⑂ 10,568▲ 53 stars
→
3

redis / redis

C★ 76,700⑂ 24,852▲ 48 stars
→
4

EpicGames / raddebugger

C★ 8,323⑂ 403▲ 81 stars
→
5

InterceptSuite / ProxyBridge

C★ 6,675⑂ 408▲ 35 stars
→
6

mattpocock / skills

Shell★ 284,242⑂ 23,793▲ 1,737 stars
→
7

multica-ai / andrej-karpathy-skills

★ 218,142⑂ 21,976▲ 279 stars
→
8

microsoft / vscode

TypeScript★ 193,524⑂ 44,983▲ 43 stars
→

More Trending Repositories