Madeira项目概览:如何让iPhone单进程跑起整个Windows游戏栈
Madeira项目概览如何让iPhone单进程跑起整个Windows游戏栈【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/MadeiraMadeira 是一个让未越狱 iPhone 运行 x86-64 Windows PC 游戏的开源项目。它用 FEX-Emux86→ARM64 指令翻译、WineWindows API 层和 DXMTD3D11→Metal 图形转换三大技术把一个完整的 Windows 游戏栈压缩进 iPhone 上的单个 Mach 进程其中 wineserver 以线程而非独立进程运行。本文带你理解它的架构原理、单进程背后的硬核原因以及从零构建安装的完整步骤。一、Madeira 是什么三大组件组成 iPhone Windows 游戏栈Madeira 的思路可以概括为一句话CPU 翻译交给 FEX-Emu系统 API 交给 Wine图形交给 DXMT全部跑在一个 Swift/Metal 宿主应用里。项目定位是研究项目而非商业产品目前 Thumper 和 ULTRAKILL 已可游玩。组件负责层完成什么翻译位置FEX-EmuCPUx86-64 → ARM64 JIT 即时翻译FEX/WineARM64EC系统Windows API → Darwin/POSIXapp/Madeira/arm64ec-windows/DXMT图形DirectX 11 → Metalapp/Madeira/d3d12/Swift 宿主应用外壳窗口合成、输入、音频UIKit CAMetalLayerapp/Madeira/ 一句话理解游戏里的 x86 代码由 FEX 翻译成 ARM64 执行调用 Windows API 时由 ARM64 原生的 Wine DLL 接管画画面时由 DXMT 直接转成 Metal 调用——层层翻译直达 iPhone 的 GPU。二、为什么必须单进程iOS 的硬性约束这是理解 Madeira 最关键的一点iOS 不允许fork()所以传统 Wine 的每个 Windows 程序一个进程模型根本无法工作。Madeira 的解决方案是单进程模型wineserver 作为线程运行在主进程内而不是独立守护进程相关桥接逻辑见 WineProcessBridge.m每个 Windows进程如 steam.exe、services.exe实际是伪进程——同一个 Mach task 内的一个线程没有任何进程隔离这也带来最棘手的问题任何一个进程发生未处理的错误都会杀死整个应用。因此项目在故障隔离fault containment上投入了大量工作包括内存保护修复、辅助进程拦截门[proc-gate]等细节记录在 STEAM_CEF_HANDOFF.md。 单进程还意味着严格的内存纪律可用的 CPU 虚拟地址空间约 64 GBJetsam 内存上限为 4096 MB所有 JIT 内存必须提前以双映射 RX/RW 池一次性预留。三、三层翻译架构拆解FEX-Emux86-64 → ARM64 的即时翻译FEX-Emu 的执行链路为x86-64 字节 → 前端解码器 → IRSSA→ 优化 → ARM64 JIT 后端。在 iOS 上它面临的最大障碍是W^X 内存保护——页面不能同时可写又可执行。Madeira 借鉴了 MeloNX 的双映射技巧同一块物理内存映射两个视图一个只写供编译器写入生成的代码、一个只读执行供 CPU 执行从而彻底避免反复切换权限的开销实现见 JITAllocator.c。另一个关键设计是xtajit 接口Wine 通过xtajit64.dll把 x86 代码交给 FEX这意味着 Wine 成百上千个 DLL 都以 ARM64原生速度运行只有游戏自身的代码才走模拟器——这是性能上最大的红利。WineWindows API → Darwin 的原生翻译Wine 采用PE/Unix 双半结构PE 半边Windows DLL 编译为 ARM64EC PE 二进制随应用打包可直接浏览 app/Madeira/arm64ec-windows/ 里的ntdll.dll、kernel32.dll等预编译产物Unix 半边原生库实现真实功能通过__wine_syscall_dispatcher桥接到 Darwin/Mach APIiOS 定制的源文件位于build/ntdll-unix/、build/wineserver/等构建链中项目对上游 Wine 的改动以补丁形式管理如 patches/wine-rpcss-scm-bootstrap.patch。DXMTD3D11 直通 Metal少一层就是快一层DXMT 把 DirectX 11直接翻译成 Metal不经过 Vulkan 中转层相比之下 DXVK 需要 DX11→Vulkan→Metal 两层。它的特色包括着色器走DXBC → Apple AIR 位码 → Metal 库路径贴合原生编译管线几何着色器转成 Metal mesh 着色器绕开了 DXVK 在 Apple GPU 上的致命短板预计开销仅 5–15%完整论证见 ARCHITECTURE_ANALYSIS.md 第 4 节。四、如何构建 Madeira从零开始的安装步骤环境要求要求说明iPhone未越狱开发环境为 A15iPhone 13 ProJIT 权限iOS 上 JIT 需要调试器附着项目使用StikDebug实现见 StikJITHelper.swift签名免费 Apple ID 即可但描述文件7 天过期需每周重新构建安装安装方式侧载sideload无法上架 App Store构建流程克隆仓库三个子模块指向含 iOS 改动的 fork必须递归克隆git clone --recurse-submodules https://gitcode.com/GitHub_Trending/mad/Madeira按链构建unix 侧 Wine 库、ARM64EC PE 模块、FEX、DXMT 各有独立构建脚本build/*/build.sh完整顺序和每一步产物都记录在 docs/BUILDING.md编译 iOS 应用xcodebuild构建 app/Madeira.xcodeproj打包 IPA 后侧载到手机自备 Visual C 运行时微软 VC 运行时 DLL 不随仓库分发获取方法见 tools/fetch-vcruntime.md前缀保留应用容器在重装后保留游戏前缀prefix和存档不会丢失前缀模板见 prefix-template.tar.gz。⚠️ 注意构建涉及 LLVM iOS 工具链、122 MB 的 llvm-mingw 工具链等多项仓库外输入docs/BUILDING.md 逐一列出了每项的获取方式和校验和。五、当前游玩状态与输入方案项目状态Thumper✅ 可游玩带声音典型 142 FPSULTRAKILL✅ 可游玩Marvel Cosmic Invasion⚠️ 能进游戏偶发不明终止操控尚不稳定Steam 客户端 CEF 登录窗口已能渲染并交互当前前沿输入方面docs/CONTROLLERS.md 描述了完整的操控方案物理手柄经 GameController 框架以 250 Hz 采样汇入 XInput屏幕触控虚拟手柄合并为玩家 1支持 A/B/X/Y、双摇杆、扳机键的完整映射核心实现在 GamepadInput.swift 与 TouchGamepad.swift。六、许可证与贡献须知Madeira 采用GPL-3.0-or-later见 LICENSE分发的衍生作品必须保持开源。需要特别注意上游 fork 的许可差异Wine fork 依据 LGPL-2.1 §3 转为 GPL-3.0-or-laterFEX 和 dxmt fork 保留 MIT 但修改部分为 GPL-3.0-or-later。逐组件许可文本在 LICENSES/许可专题说明见 docs/LICENSING.md 与 THIRD-PARTY-NOTICES.md。贡献者需注意FEX-Emu 上游禁止 AI 生成代码不要将本 fork 中的 AI 辅助改动直接提交回上游细则见 CONTRIBUTING.md。七、延伸阅读项目关键文档导航文档内容ARCHITECTURE_ANALYSIS.md全套架构分析JIT 原理、方案对比、性能预估、实施路线图docs/BUILDING.md可复现构建记录含仓库外输入清单与校验和STEAM_CEF_HANDOFF.mdSteam/CEF 移植现状已确认/已证伪/待解问题清单docs/CONTROLLERS.md物理手柄与触控虚拟手柄的 XInput 实现细节README.md项目状态、要求、许可总览总结Madeira 证明了在 iOS 的沙箱与 W^X 约束下把整个 Windows 游戏栈塞进一个进程是可行的——用双映射 JIT 池、线程化 wineserver、xtajit 原生加速和 DXMT 直通 Metal换来了 Thumper 142 FPS 的现实成绩。它仍是一个充满毛边的研究项目但架构思路对任何想在移动端跑 Windows 负载的开发者都值得细读。【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI Agent实战:从环境搭建到任务执行的完整指南

AI Agent实战:从环境搭建到任务执行的完整指南

1. 先搞清楚AI Agent到底在解决什么问题1.1 从“能聊”到“能干活”的分水岭很多人第一次接触AI Agent,是从ChatGPT这类对话工具开始的。你问它一句,它答你一句,体验很流畅,但用久了会发现一个尴尬的事实:它只能“说”…

2026/9/30 9:32:30 阅读更多 →
UE5多人FPS网络同步实战:从预测校正到延迟补偿的参数配置与避坑指南

UE5多人FPS网络同步实战:从预测校正到延迟补偿的参数配置与避坑指南

多人FPS的网络同步,是UE5里最容易让人“一看就会、一做就废”的模块。我见过太多团队,单机Demo跑得飞起,一联机就出现角色瞬移、射击打不中、载具抖动、开镜回弹这些玄学问题。更麻烦的是,这些问题往往不是某一个Bug,而…

2026/9/30 9:32:30 阅读更多 →
粒子群优化算法改进:三处公式改动大幅提升收敛精度

粒子群优化算法改进:三处公式改动大幅提升收敛精度

1. 先看标准PSO:速度与位置公式的先天短板粒子群优化算法(Particle Swarm Optimization, PSO)大概是群智能算法里最“短平快”的一种了。它不依赖梯度信息,几行代码就能实现,一套速度和位置更新公式跑遍各类连续优化问…

2026/9/30 9:32:30 阅读更多 →

最新新闻

deep-learning-for-image-processing 文献导航:图像分类、目标检测与分割经典论文系统研读指南

deep-learning-for-image-processing 文献导航:图像分类、目标检测与分割经典论文系统研读指南

示例工程 【免费下载链接】deep-learning-for-image-processing deep learning for image processing including classification and object-detection etc. 项目地址: https://gitcode.com/gh_mirrors/de/deep-learning-for-image-processing 点击查看 免费下载 导…

2026/9/30 11:00:50 阅读更多 →
Java线程生命周期全解析:从NEW到TERMINATED!

Java线程生命周期全解析:从NEW到TERMINATED!

全文目录:开篇语一、线程生命周期与状态转换1. NEW:刚创建,还没“开工”2. RUNNABLE:正在 CPU 上排队 / 跑着3. BLOCKED:等着进“临界区”的锁4. WAITING:无限期等待某个条件5. TIMED_WAITING:带…

2026/9/30 11:00:50 阅读更多 →
深度拆解五大IO模型:从阻塞到epoll,高并发服务如何少踩坑

深度拆解五大IO模型:从阻塞到epoll,高并发服务如何少踩坑

先聊一个我在面试里经常问的问题:一个 read 调用打到内核里,数据没到的时候,你的程序到底在等什么?这个问题看着基础,但能讲清楚的人真不多。很多人都会背“阻塞IO、非阻塞IO、多路复用、信号驱动IO、异步IO”&#…

2026/9/30 11:00:50 阅读更多 →
半导体良率分析平台的多源数据集成实战:从SECS/GEM到EAP

半导体良率分析平台的多源数据集成实战:从SECS/GEM到EAP

从事半导体制造或者封测这一行的朋友,应该都对“良率”这俩字又爱又恨。它直接跟钱挂钩,跟产能挂钩,跟客户信任挂钩。但真要把良率分析做好,尤其是当产品进入量产爬坡或者遇到异常波动时,你手里得有足够“干净”且“全…

2026/9/30 11:00:50 阅读更多 →
机器人触觉感知的数据底座:PPS 电容传感矩阵技术解析

机器人触觉感知的数据底座:PPS 电容传感矩阵技术解析

一只机械手要稳稳握住鸡蛋,不捏碎也不滑脱,依赖的不只是控制算法,还有指尖那层能“感觉轻重”的触觉传感器(tactile sensor)。在具身智能与灵巧手研发中,机器人触觉感知正从加分项变成基础设施。 技术内核&…

2026/9/30 11:00:50 阅读更多 →
Nerd Fonts 中的 Droid Sans Mono:补丁字体变体选择、安装与自行打补丁实战指南

Nerd Fonts 中的 Droid Sans Mono:补丁字体变体选择、安装与自行打补丁实战指南

开发工具CLI 【免费下载链接】nerd-fonts Iconic font aggregator, collection, & patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more 项目地址: https://…

2026/9/30 10:59:48 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →