willfaust / Madeira
git clone https://github.com/willfaust/Madeira.git
v0.1.3 · 17d ago
🔥 on GitHub Trending today
Run x86-64 Windows PC games on jailed iOS via FEX-Emu + Wine + DXMT
—
stars, 24h
—
stars, 7 days
+2.2k
stars, 30 days · #145
2.6k
★ total
339
forks · 159 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC
LicenseGPL-3.0
Created2026-03-07 (7mo ago)
Last push6d ago
Watchers25
OwnerUser
Seen on GitHub Trending
- 2026-10-20 — #2 monthly in c · +2,236 ★
Links
README excerpt
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 - **Game library** with artwork, search and a Windows desktop session. - **Steam**: sign in, browse the games you own, install and update them, and start them through Valve's own Windows Steam client (Madeira Dock). - **Steam Cloud saves**: saves sync with Steam Cloud when Madeira starts and 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. - **Controllers**: Bluetooth controllers through XInput, plus customisable on-screen touch controls. - **Keyboard, mouse and trackpad** passed through to games as real input. - **Video and audio** for cutscenes and music, through FFmpeg, VideoToolbox and AudioToolbox. ## Requirements - An iPhone on **iOS 26 or later**, the only version Madeira currently runs on reliably. Development happens on recent Pro iPhones. - **JIT**, which iOS only allows while a debugger is attached. Madeira can use StikDebug or its built-in StikJIT helper. On iOS 27 the built-in helper can pair the iPhone itself, without a computer. - An **Apple ID** to sideload the app. A free account works; its signing 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 [code] `FEX`, `wine`, `dxmt` and `madeira-dock` are submodules that point at