尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何在Madeira中获取并部署微软VCRuntime:官方指南完整解读

如何在Madeira中获取并部署微软VCRuntime:官方指南完整解读 如何在Madeira中获取并部署微软VCRuntime官方指南完整解读【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/MadeiraMadeira 是一个让x86-64 Windows PC 游戏在非越狱 iPhone 上运行的开源项目它把 WineARM64EC、FEX-Emu 的 x86-64→ARM64 指令翻译和 DXMT 的 D3D11→Metal 转换整合为单个 Mach 进程。但有一个关键文件不会随仓库提供微软的Visual C 运行时VCRuntimeDLL。本文完整解读官方指南 tools/fetch-vcruntime.md带你快速获取并正确部署这 12 个运行时文件。为什么 VCRuntime 不在仓库里这是许可问题不是遗漏用 MSVC 编译的游戏依赖微软的 Visual C 运行时 DLL这些 DLL 是微软授权二进制只能按微软再分发条款、且保持原样unmodified分发它们不受本仓库 GPL-3.0 许可证覆盖因此已被从仓库历史中彻底移除THIRD-PARTY-NOTICES.md 中明确写道app/Madeira/x86_64-vcruntime/*.dll已被 gitignore必须自行本地提供。早期仓库里曾提交的 12 个副本因签名被截断属于已修改的微软二进制也被全部清除。⚠️ 简单说仓库不给你、也不该给你这些文件——你自己去微软官方渠道拿一个字节都不要改。一键获取12 个必备 DLL 清单运行时目录 app/Madeira/x86_64-vcruntime/ 期望恰好 12 个文件文件名文件名文件名concrt140.dllmsvcp140_codecvt_ids.dllvcruntime140.dllmsvcp140.dllvcamp140.dllvcruntime140_1.dllmsvcp140_1.dllvccorlib140.dllvcruntime140_threads.dllmsvcp140_2.dllvcomp140.dllmsvcp140_atomic_wait.dll最快获取方法从官方安装包提取从微软官方渠道下载 x64 再分发安装包VC_redist.x64.exeVisual C Redistributable 2015-2022它是自解压包用 7-Zip 解开即可拿到 DLL。macOS 下两条命令搞定brew install sevenzip 7zz x VC_redist.x64.exe -o/tmp/vcredist 7zz x /tmp/vcredist/.rsrc/1033/CABINET/*.cab -oapp/Madeira/x86_64-vcruntime不同版本的安装包内部目录结构略有差异目标只是拿到上面 12 个文件且必须与微软发布的字节级一致byte-for-byte。另一种方法docs/BUILDING.md 还提到也可以直接从一台正版 Windows 系统的C:\Windows\System32目录复制这 12 个 DLL 过来。部署步骤放入正确目录在仓库根目录确认文件夹存在不存在就新建app/Madeira/x86_64-vcruntime/把 12 个 DLL 原封不动放入该目录该目录已在 Xcode 工程中注册为 Bundle 资源构建时会打包进 App工程配置见 app/Madeira.xcodeproj/project.pbxprojx86_64-vcruntime in Resources重新用xcodebuild构建并侧载安装即可游戏存档前缀在重装后保留红线不要修改这些文件微软的再分发授权只覆盖未修改的文件。特别注意不要剥离 Authenticode 签名——签名被截断的 DLL 就不再是原样的微软二进制了。官方指南提供了一段 Python 校验脚本检查每个 DLL 是否仍带有签名负载输出示例signed app/Madeira/x86_64-vcruntime/concrt140.dll signed app/Madeira/x86_64-vcruntime/msvcp140.dll出现UNSIGNED就说明文件被动过手脚需要重新从官方安装包提取。原理速览Madeira 如何加载这些运行时部署完成后你无需任何配置——启动游戏时WineProcessBridge.m 会自动把这 12 个微软 DLL覆盖overlay到 Wine 的 ARM64EC 内置桩之上让 x86_64 游戏经 FEX 加载微软的真实实现。这与 Proton/Winlator 的做法一致避免游戏用到完整 C 运行时功能如parallel_for、atomic_wait、filesystem时撞上 Wine 的__wine_unimplemented桩。 一个有趣的细节vcruntime140.dll和msvcp140.dll是刻意跳过的例外——它们的异常处理路径SEH若经 FEX 桥接会破坏 x86 栈指针所以这两个保持使用 ARM64EC 原生内置版本其余 10 个则用微软原版覆盖。常见问题排查症状可能原因与解决游戏启动即崩溃、提示缺少 vcruntime140确认 12 个 DLL 已全部放入x86_64-vcruntime/并重新构建安装菜单卡死 / 无闪屏DLL 版本过旧或损坏重新用官方VC_redist.x64.exe提取构建提示缺文件该目录被 gitignore克隆仓库后必须手动补齐见 docs/BUILDING.md 的Inputs that are not in the repository总结✅ 从微软官方下载VC_redist.x64.exe7-Zip 两行命令提取✅ 12 个 DLL 原样放入 app/Madeira/x86_64-vcruntime/不修改、不去签名✅ 重新构建安装Madeira 会在启动游戏时自动完成运行时覆盖 更多许可细节见 THIRD-PARTY-NOTICES.md完整构建流程见 docs/BUILDING.md完成这一步你的 iPhone 距离跑起 Thumper 和 ULTRAKILL 又近了一大步。【免费下载链接】MadeiraRun x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表