Will FaustandClaude Opus 5.5 69b2fc0457 Library: liquid metal toggle in Settings, Liquid Glass by default
- Settings > Appearance > Liquid metal turns the app's liquid metal on
  and off at once, fading between it and Liquid Glass both ways; it is
  off by default (env.MADEIRA_LIQUID_METAL = 1 in madeira.cfg turns it
  on) and covers the bars, the lens and search field rims and the
  Desktop button, whose label and fill crossfade.
- In dark mode the metal's highlights roll off to 0.8 of white.
- The library cards' ambient light is tighter, a little dimmer in dark
  mode, and a soft knee (AmbientGlow.metal) keeps very bright artwork
  from glaring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 20:11:41 +08:00

Madeira — Bringing PC gaming to your iPhone.

Join the Madeira Discord     Latest release     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

  • 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).
  • 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 uses StikDebug for this.
  • 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 with StikDebug.
  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
The game library docs/LIBRARY.md
Steam sign-in, library and downloads docs/STEAM_SIGNIN.md, docs/STEAM_LIBRARY.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

  • Will Faust (@willfaust): created Madeira
  • Nick (@125hz): 32-bit game support, the game library and Madeira Dock
  • Jfishin (@Jfishin): the original native Steam sign-in, library and downloads

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, and StikDebug for enabling JIT. Thank you to everyone who contributes to them.

Join the community on Discord

S
Description
GitHub Trending: willfaust/Madeira
Readme GPL-3.0
252 MiB
Languages
C 71.4%
Swift 12.9%
Python 7.5%
Objective-C 4%
Objective-C++ 1.9%
Other 2.3%