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
Что это?Madeira запускает x86-64 игры для Windows PC на iPhone без джейлбрейка, объединяя Wine (ARM64EC), FEX-Emu (трансляцию x86-64 в ARM64) и DXMT (D3D11 в Metal), причём всё это работает внутри единственного Mach-процесса на iOS.
Это инструмент джейлбрейка или то, что я ставлю обычным способом?Это не джейлбрейк. Он работает на стоковом iPhone без джейлбрейка, но устанавливается сайдлоадом, а не из App Store, поскольку ему нужен подключённый отладчик для JIT.
Как собрать и установить его на свой iPhone?Соберите нативные компоненты Wine/FEX/DXMT через build//build.sh, затем соберите само iOS-приложение через xcodebuild и сайдлоадом установите результат на телефон.
Что мне нужно, чтобы это запустить?iPhone без джейлбрейка (разработка велась на A15 / iPhone 13 Pro), JIT-отладчик вроде StikDebug для подключения при запуске и Apple ID для подписи — бесплатный аккаунт подходит, но заставляет пересобирать приложение каждую неделю.
Какие игры сейчас реально работают?Thumper и ULTRAKILL играбельны; Marvel Cosmic Invasion доходит до геймплея, но были необъяснимый краш и ненадёжное управление; остальные тайтлы добираются до геймплея лишь на низком FPS, и проект прямо заявлен как исследовательский, со своими причудами у каждого тайтла.
Это работает на любом iPhone?Он нацелен только на iPhone без джейлбрейка; разработка велась именно на чипе A15 (iPhone 13 Pro), а сборок под Android, Mac или десктоп нет.
Почему приложение нужно пересобирать каждую неделю?Оно подписано бесплатным Apple ID, а бесплатные provisioning-профили истекают через 7 дней, что вынуждает цикл пересборки и переустановки. Контейнер приложения (сейвы, Wine-префиксы) переустановку переживает.
Можно просто склонировать официальные репозитории Wine, FEX-Emu или DXMT, чтобы это собрать?Нет, сборка использует сабмодули, указывающие на специфичные для Madeira форки FEX, Wine и dxmt, содержащие наработки под iOS, поэтому из обычных upstream-репозиториев этот проект не собирается.
Можно ли отправить сгенерированные AI исправления из этого форка обратно в FEX-Emu?Нет. В этих форках содержится существенный объём работы, сделанной с помощью AI, но собственная политика приёмки контрибуций FEX-Emu запрещает сгенерированный AI код, так что такие изменения не стоит отправлять upstream.
Всё необходимое для сборки включено в репозиторий?Нет, DLL рантайма Microsoft Visual C++ не распространяются и должны быть получены отдельно перед сборкой, как описано в tools/fetch-vcruntime.md.
Creator
willfaust
Size
193.8 MB
Stars
2.6K
Age
7mo
Commits · 90 Days