这个项目有什么用
MacNativeGames 是一个技术探索项目,核心问题是:Switch 游戏使用的 NVN 图形接口,能否在 Apple 的 Metal 上被忠实重建,游戏自身的 ARM64 代码能否不经模拟器、直接在苹果芯片上运行。作者用《塞尔达传说:王国之泪》和《塞尔达传说:旷野之息》作为测试用例,因为这两款游戏对图形 API 的压榨很充分。
它替代的不是某个旧工具,而是一类手工流程:过去想在 Mac 或 iPhone/iPad 上跑 Switch 游戏,通常依赖模拟器;这个项目走的是另一条路——把游戏自己的 ARM64 代码直接跑在 Apple 芯片上(在操作系统要求的地方做改写),由一个小型宿主程序应答 Switch 的系统服务,再把 NVN 图形重建到 Metal 上。项目本身不提供游戏,需要用户自备游戏文件(XCI 或 NSP)与 prod.keys,用一个脚本构建出 Mac App 或未签名的 iPhone/iPad IPA。
典型使用场景
- 在 Apple silicon Mac 上以原生方式运行自己拥有的《王国之泪》或《旷野之息》。
- 在满足条件的 iPhone/iPad 上构建并运行未签名 IPA(README 说明 iOS 构建需要 iOS/iPadOS 26 及 iPhone 14 或更新机型,版本 1.4.3 已在 iPhone 14 和一台 iPad 上玩过)。
- 关注 ARM64 代码迁移、图形 API 重建的研究者,阅读仓库中记录的实验、测量与结论。
适合的人群:拥有正版游戏与自备 Switch 导出文件、愿意按文档动手构建的开发者或技术爱好者。不适合想「下载即玩」的用户——仓库不含任何游戏内容。
核心特性
- 不是模拟器:游戏自身的 ARM64 代码直接在 Apple 芯片上运行,仅在操作系统要求处改写;NVN 图形在 Metal 上重建。
- 一份文件、一个脚本:带上游戏文件(XCI 或 NSP)和
prod.keys,一个脚本即可构建 Mac App 或未签名的 iPhone/iPad IPA。 - 公共着色器清单:共享清单目前收录 14,243 个着色器变体(12,436 个着色器),来自 Mac、iPhone 和 iPad,只记录标识、不含游戏数据,用于减少首次遇到新状态时的卡顿。
- 构建时生成、不分发内容:游戏需要的一切都在打包时由用户自己的文件在本机生成,仓库只保存补丁代码、用于核对文件的地址与哈希,以及着色器清单。
- 多平台覆盖:文档涵盖 Mac、iPhone/iPad 与 Apple Vision Pro 的构建路径,并附带操作说明与已知问题列表。
怎么安装
前提条件:你必须拥有正版游戏,并使用从自己的 Nintendo Switch 导出的密钥和系统文件;仓库不提供、也不接受任何游戏文件、密钥或固件。iOS 构建需要 iOS/iPadOS 26 和 iPhone 14 或更新机型。README 把从构建到游玩的完整步骤放在 docs/install.md,并建议把安装工作交给带 install skill 的 AI 助手,而不是自己逐步执行。
- 阅读
docs/install.md的「What you need」一节,确认所需材料。README 未在此处列出具体依赖版本,官方文档未说明。 - 按「Build with a window」与「Build the app」两节构建应用;构建过程会在你自己的电脑上、用你自己的文件生成游戏所需的一切。
- 若目标是《旷野之息》,参考文档中的「Breath of the Wild」小节。
- 若目标是 iPhone 或 iPad,参考「iPhone and iPad」小节构建未签名 IPA。
- 若目标是 Apple Vision Pro,参考对应小节。
README 没有给出可直接复制的安装命令,具体命令请以 docs/install.md 原文为准。
怎么使用
最基本的用法就是构建并启动应用:准备你自己的游戏文件(XCI 或 NSP)与 prod.keys,按 docs/install.md 的步骤构建出 Mac App 或未签名 IPA,然后运行。构建出的 App 内含游戏,仅供自己使用,不要分享。
进阶用法之一是参与公共着色器清单,以减少他人重复编译带来的卡顿。流程如下:
- 正常游玩。每个构建都会为游戏的每个着色器生成默认绑定状态;当游戏遇到该变体无法覆盖的状态,或构建出应用清单里缺少的渲染管线时,会记录到
shader-list-contribution.txt,默认变体不会被记录。 - 在 Mac 上,每新增 100 行(着色器与管线合计)会在游戏启动前询问一次。点击「Send」会打开 GitHub 表单并展示文件,可直接拖入;若已安装并登录 GitHub CLI(
gh),对话框会改为提供「Submit automatically」,自动以私有 gist 加 issue 的方式提交,无需打开浏览器。 - iPhone 或 iPad 在游玩过程中不会询问:当它连接到构建其应用的 Mac(数据线或同一 Wi-Fi)时,由 Mac 代为询问。「Don’t remind me again」可停止提醒。
需要注意:首次开始游玩或进入新场景时,新着色器编译会造成卡顿,这是预期现象,随着缓存变热性能通常会改善。游戏本身从不上传任何内容。
另外,README 提到可用 macOS 27 的 Metal 性能工具按游戏状态测量:设置环境变量 TOTK_STATE_REPORTING=1 并配合 metal_perf_report.py,详见 docs/metal-performance-diagnostics.md。
适用场景与注意事项
适合:拥有正版游戏与自备导出文件、愿意按文档构建的开发者;对 ARM64 原生移植与 Metal 图形重建感兴趣的技术研究者;希望在 Apple silicon 设备上以原生方式运行自己游戏的技术爱好者。
不适合:期望开箱即用或获取游戏文件的用户;所在地区法律对导出游戏、密钥和系统文件有明确限制且无法合规的用户。
注意事项:
- 法律与合规:必须拥有正版游戏,只使用自己购买的游戏及从自己的 Switch 导出的密钥和系统文件;导出行为是否合法取决于所在地区法律,需自行确认并遵守。项目为独立非商业项目,与任天堂、Apple 均无关联。
- 不含游戏内容:仓库不含也不分发游戏程序、美术、文字、音频、着色器或密钥;构建出的 App 含游戏,仅供自己使用,不得分享。附带或索要游戏文件、密钥、固件的 issue 与 PR 会被删除。
- 平台限制:iOS 构建要求 iOS/iPadOS 26 与 iPhone 14 或更新机型;其他平台的具体要求官方文档未在 README 中完整列出。
- 性能预期:首次游玩或进入新场景的卡顿属正常现象,性能随缓存预热改善;README 未给出具体帧率数字。
- 项目性质:定位为技术探索,主要是可行性实验与分析,功能与稳定性以仓库文档和测试记录为准。
- 许可证:MIT。
项目地址
仓库地址:https://github.com/ly05010419/MacNativeGames
作者/组织:ly05010419
这是一个以可行性验证为目标的技术项目,把 Switch 游戏的 ARM64 代码与 NVN 图形搬到 Apple 芯片和 Metal 上,构建与使用都依赖用户自备的正版游戏文件;是否适合你,取决于你的设备条件、动手意愿与当地法律要求。
















cqlbgzs@163.com 1年前0
d好879445037@qq.com 2年前0
购买了 无法下载Alexcc 3年前0
强大Alexcc 3年前0
看不了教程Alexcc 3年前0
雷刺下载Alexcc 3年前0
下载Alexcc 3年前0
下载dsa456159 3年前0
下载