🧭 Decision Guide
Why trending now: 无法从材料判断
Try it if you
-
You have a non-jailbroken iPhone and are willing to use JIT with StikDebug for experimental Windows games.The README Requirements section requires a non-jailbroken iPhone, JIT, and StikDebug.
-
Your target game is Thumper or ULTRAKILL and you can accept research-project instability.The README Status section says Thumper and ULTRAKILL are playable and calls the project a research project.
-
You want to study iOS integration across x86-64, ARM64, Wine, D3D11, and Metal.The README says FEX-Emu handles x86-64 → ARM64 and DXMT handles D3D11 → Metal.
Skip it if you
-
You require App Store installation or cannot use the JIT debugger-attach workflow.The README says JIT requires debugger attach, so the app cannot be distributed through the App Store and must be sideloaded.
-
You need a stable commercial product rather than a research project with breaking changes and per-title quirks.The README Status section explicitly mentions rough edges, per-title quirks, and breaking changes.
-
You cannot rebuild and reinstall the app every 7 days.The README Requirements section says free Apple ID provisioning profiles expire after 7 days.
-
You need reliable controls and long-term stability specifically for Marvel Cosmic Invasion.The README says a run ended in unexplained termination and that its controls are not yet reliable.
Requirements
- A non-jailbroken iPhone; development has been on an A15 (iPhone 13 Pro).
- JIT; on iOS it requires debugger attach, and the project uses StikDebug.
- An Apple ID for signing; free-account provisioning profiles expire after 7 days.
- FEX, wine, and research/dxmt fork submodules containing the iOS work.
- xcodebuild for the app, with build/*/build.sh covering the native pieces.
- Microsoft Visual C++ runtime DLLs supplied separately.
First step (verbatim from README)
git clone --recurse-submodules <this repo>
Watch out
-
Do not replace the FEX, wine, or DXMT submodules with upstream clones; the README says those forks contain the iOS work.README Building: upstream clones will not build here.
-
A free Apple ID requires weekly rebuilding and reinstalling, although prefixes and saves survive reinstall.README Requirements: profiles expire after 7 days and the app container survives reinstall.
-
Microsoft Visual C++ runtime DLLs are absent from the repository and must be supplied using tools/fetch-vcruntime.md.README License section explicitly says the runtime DLLs are not distributed.
-
Do not submit AI-generated changes from this fork upstream to FEX-Emu.README A note on upstream contributions cites FEX-Emu's policy against AI-generated contribution code.
Not stated in the README
- The README does not specify supported iOS versions or the full iPhone model range; it only mentions development on an A15 iPhone 13 Pro.
- The README does not provide complete StikDebug installation, JIT enablement, or debugger-attach steps.
- The README does not provide per-game frame-rate, resolution, or graphics-setting data.
- The README does not provide a complete compatibility list; it only names Thumper, ULTRAKILL, and Marvel Cosmic Invasion.
- The README does not specify the complete xcodebuild or build/*/build.sh arguments, dependency versions, or build time.
- The README does not state where to obtain the Microsoft Visual C++ runtime DLLs; it only points to tools/fetch-vcruntime.md.
- The README does not identify the trigger or fix timeline for Marvel Cosmic Invasion's unexplained termination.
- The README provides no release history; project metadata reports 0 releases and No releases as the latest version.
💡 Deep Analysis
6
No
I use a non-jailbroken iPhone, target Marvel Cosmic Invasion, and require reliable controls with no unexplained termination during execution; is Madeira appropriate today?
No, because the README explicitly records unexplained termination and unreliable controls for Marvel Cosmic Invasion, directly conflicting with your acceptance criteria.
- The status only says that the game “has reached gameplay,” while also reporting that one run ended in an unexplained termination.
- It states that the controls are “not yet reliable,” so reaching gameplay cannot be treated as stable playability.
- The project is described as a research project with per-title quirks and breaking changes; other games may only reach gameplay at low frame rates.
- The runtime also combines x86-64-to-ARM64 translation, Windows compatibility, and D3D11-to-Metal conversion, and the README offers no stability commitment meeting your requirements.
- Status: Marvel Cosmic Invasion has reached gameplay, but a run ended in an unexplained termination.
- Status: its controls are not yet reliable.
- Status: this is a research project, not a product, with rough edges, per-title quirks, and breaking changes.
- Status: other games reach gameplay at low frame rates.
Yes
I need to build the Wine Unix-side libraries, ARM64EC PE modules, FEX, DXMT, and the iOS app from source, and I cannot replace the dependencies with upstream repositories; what is the correct starting point?
Yes, but you must use the project’s specified recursive submodules; replacing them with upstream repositories violates the build assumptions.
- The README splits the build into Wine Unix-side libraries, ARM64EC PE modules, FEX, DXMT, and the iOS app.
- Native pieces are covered by
build/*/build.sh, while the iOS application is built withxcodebuild, so you need both the scripted native build chain and the Xcode toolchain. - The README explicitly says that the FEX, wine, and research/dxmt submodules point to forks containing the iOS work and that “upstream clones will not build here.”
- Project data shows a substantial codebase: about 6.24 million lines of C plus Objective-C, Swift, and Objective-C++ code, so build diagnosis is nontrivial.
- Building: the build is split across Wine Unix libraries, ARM64EC PE modules, FEX, DXMT, and the iOS app.
- Building: `build/*/build.sh` covers native pieces and the app is built with `xcodebuild`.
- Building: FEX, wine, and research/dxmt are forks containing the iOS work; upstream clones will not build here.
- Project data: C 6,241,149; Objective-C 351,510; Swift 282,979; Objective-C++ 190,195
git clone --recurse-submodules <this repo>
It depends
I can only use a free Apple ID and can rebuild and reinstall once a week with Xcode and StikDebug; can I realistically maintain Madeira under these signing and JIT constraints?
It depends: maintenance is technically feasible if you accept weekly reinstallation and debugger attachment, but it is unsuitable for hands-off long-term use.
- The README says a free Apple ID can sign the app, but its provisioning profile expires after 7 days, requiring a weekly rebuild and reinstall.
- iOS JIT requires a debugger to attach, and this project uses StikDebug. Without the attachment, the dynamically translated game code cannot run correctly.
- Since JIT requires debugger attachment, the app cannot be distributed through the App Store and must be sideloaded, placing installation and launch operations on the maintainer.
- The app container survives reinstall, so Wine prefixes and saves are preserved despite the weekly cycle.
- Requirements: “A free account works; its provisioning profiles expire after 7 days.”
- Requirements: JIT on iOS requires a debugger to attach, and the project uses StikDebug.
- Requirements: the app cannot be distributed through the App Store and is installed by sideloading.
- Requirements: the app container survives reinstall, preserving prefixes and saves.
It depends
I want to distribute a Madeira derivative containing modified Wine, FEX, DXMT, and Microsoft Visual C++ runtimes; can I package and release it directly under the GPL-3.0-or-later and third-party license constraints?
It depends: derivative Madeira code must follow GPL-3.0-or-later, but the Microsoft Visual C++ runtime cannot simply be obtained and bundled from this repository.
- The License section identifies Madeira as GPL-3.0-or-later and requires distributed derivatives to remain open source.
- The forks cannot be treated exactly like their upstream projects: the Wine fork was relicensed to GPL-3.0-or-later under LGPL-2.1 §3, while FEX and DXMT retain upstream MIT for original code but GPL-3.0-or-later applies to their modifications.
- The README also distinguishes rpmalloc’s upstream 0BSD terms from GPL-covered modifications and directs maintainers to each fork’s
LICENSE-MADEIRA.mdandTHIRD-PARTY-NOTICES.md. - Microsoft Visual C++ runtime DLLs “are not distributed here and must be supplied yourself,” so redistribution depends on the source and terms of the runtime package you provide.
- License: GPL-3.0-or-later; distributed derivatives must remain open source.
- License: the wine fork was relicensed to GPL-3.0-or-later under LGPL-2.1 §3.
- License: FEX and DXMT preserve upstream MIT, while modifications are GPL-3.0-or-later.
- License: Microsoft Visual C++ runtime DLLs are not distributed here and must be supplied by the user.
Yes
I have a non-jailbroken A15 iPhone 13 Pro and want to sideload and run ULTRAKILL or Thumper locally instead of using cloud gaming; is this project suitable for me?
Yes, provided that you accept an experimental research project rather than a polished game platform.
- The README explicitly says that “Thumper and ULTRAKILL are playable,” giving these titles a stronger basis than untested games.
- It targets “a non-jailbroken iPhone,” and development was done on an A15 iPhone 13 Pro, matching your hardware constraint.
- Wine ARM64EC, FEX-Emu, and DXMT handle Windows compatibility, x86-64-to-ARM64 translation, and D3D11-to-Metal conversion respectively.
- You still need a JIT debugger, Apple ID signing, and sideloading. A free account expires after 7 days, although the app container preserves prefixes and saves after reinstall.
- Status: “Thumper and ULTRAKILL are playable.”
- Requirements: “A non-jailbroken iPhone. Development has been on an A15 (iPhone 13 Pro).”
- README introduction: Wine ARM64EC, FEX-Emu for x86-64 → ARM64, and DXMT for D3D11 → Metal
- Requirements: provisioning profiles expire after 7 days, while prefixes and saves are preserved
Yes
I am studying the FEX-Emu x86-64-to-ARM64, Wine ARM64EC, and DXMT D3D11-to-Metal pipeline, and I must run it in a single Mach process on iOS; is Madeira a suitable experimental base?
Yes, it is a suitable experimental base because the README directly describes the complete pipeline and the iOS process constraints you want to study.
- Madeira combines Wine ARM64EC, FEX-Emu, and DXMT for Windows compatibility, instruction translation, and graphics API conversion.
- The components run in “a single Mach process,” with wineserver changed to a thread rather than a separate process; this is an explicit adaptation to iOS process restrictions.
- The repository contains C, Objective-C, Swift, and Objective-C++ code, while several dependencies use forks carrying iOS-specific changes, making component-level investigation possible.
- However, the README calls it a research project and warns about breaking changes. It is therefore better for validating mechanisms than for serving as a stable runtime baseline.
- README introduction: combines Wine ARM64EC, FEX-Emu, and DXMT in a single Mach process
- README introduction: wineserver runs as a thread rather than a separate process
- Project data: main language C, with Objective-C, Swift, and Objective-C++ also present
- Status: “This is a research project, not a product ... and breaking changes.”
git clone --recurse-submodules <this repo>
✨ Highlights
-
FEX-Emu translates x86-64 to ARM64
-
DXMT maps D3D11 to Metal
-
Thumper and ULTRAKILL are playable
-
Free Apple ID signing expires every 7 days
🔧 Engineering
-
Runs Windows games on iOS with Wine, FEX-Emu, and DXMT
-
Wine, FEX-Emu, and DXMT run as one Mach process
⚠️ Risks
-
The project explicitly expects breaking changes
-
Other games may only reach gameplay at low frame rates
-
JIT requires debugger attach, so App Store distribution is unavailable
-
Apple ID provisioning profiles expire after 7 days
👥 For who?
-
iOS developers testing Windows games on non-jailbroken iPhones
-
Researchers comfortable with Xcode, xcodebuild, and submodule-based builds
-
Experimental users with an A15 iPhone, StikDebug, and an Apple ID