Madeira runs Windows x86-64 PC games on an iPhone without jailbreak: games run unmodified inside a single iOS app, with FEX-Emu translating code, Wine providing Windows, and DXMT plus the in-house madeira-d3d12 rendering Direct3D to Metal.
- v0.1.3
- Published at
- 16d ago
- 2,459
- Stars
- 19,604
- Download
- Synced at
- 4d ago
Latest release
v0.1.3Oct 3, 2026, 04:49 PMREADME
Project Overview
Madeira runs Windows PC games on an iPhone with no jailbreak, executing games as they are, unmodified, inside a single iOS app. It is an active research project: many games start and some play well, but performance and compatibility vary from game to game and change quickly.
The stack has four layers: FEX-Emu translates x86/x86-64 code to ARM64 at runtime; Wine 11.4 is built for ARM64EC so Wine itself runs natively and only the game's code is translated, with 32-bit games going through WoW64; DXMT implements Direct3D 9/10/11 on Metal; and the in-house madeira-d3d12 implements Direct3D 12 by converting DXIL shaders at runtime with Apple's Metal Shader Converter.
| Item | Value |
|---|---|
| Platform | iPhone, iOS 26+ |
| Form | sideloaded IPA |
| Graphics | DXMT (D3D9/10/11) and madeira-d3d12 (D3D12) |
| License | GPL-3.0 or later |
A Windows gaming machine squeezed into an iPhone: no jailbreak, one process, games as they are.
Key Features
- Game library: a library with artwork and search, including a Windows desktop session
- Steam integration: sign in, browse owned games, then install, update and launch through Valve's own Windows Steam client (Madeira Dock)
- Steam Cloud saves: saves sync at startup and before each game, two-sided changes are never overwritten blindly and replaced files get backups
- Controllers: Bluetooth gamepads through XInput plus customizable on-screen touch controls
- Keyboard and mouse: keyboard, mouse and trackboard pass through to games as real input
- Video and audio: cutscenes and music play through FFmpeg, VideoToolbox and AudioToolbox
- Single-process design: iOS cannot spawn other programs, so even the Wine server runs as a thread
Target Audience
- Gamers who want their Steam library on an iPhone
- Technophiles curious about x86 translation and graphics layers
- Advanced iOS users willing to handle sideloading and JIT setup
- Researchers following Wine and FEX projects
Quick Start
- Download the IPA from the latest release
- Sideload it with your own Apple ID using SideStore, AltStore, Sideloadly or similar
- Open Madeira and enable JIT via StikDebug or the built-in StikJIT helper
- In Settings, confirm JIT and Memory+ both show green checks and Ready to play
- Sign into Steam or import local games, then install and play
Core Advantages
- Unmodified games: no game patches, all compatibility is handled at the system layer
- Native first: Wine runs natively as ARM64EC and only game code gets translated, cutting overhead
- In-house D3D12: no third-party D3D12 dependency, DXIL runtime conversion is fully controlled
- Safe saves: cloud conflicts never blind-overwrite, every replacement keeps a backup
System Requirements
| Item | Requirement |
|---|---|
| Device | iPhone on iOS 26 or later |
| JIT | requires an attached debugger, via StikDebug or built-in StikJIT |
| Sideload | any Apple ID, free accounts sign for 7 days |
| Optional | some 64-bit games need the Microsoft VC++ runtime (not bundled) |
Notes
- Research project: compatibility and performance vary by game and shift quickly, expect rough edges
- No App Store: JIT depends on a debugger, Madeira cannot be offered there
- Free signing expires: free Apple ID signatures lapse after 7 days and need refreshing, games and saves persist across reinstalls