NX2Apple:nxnative 衍生分支,图形化一键把 Switch 游戏移植到 Apple Silicon Mac 与 iPhone,无需命令行

NX2Apple 是 nxnative 项目的社区 Fork 版本,旨在将 Nintendo Switch 游戏移植并运行于 Apple Silicon 设备的 Mac 与 iPhone 上。该工具通过图形界面简化了原本复杂的命令行构建流程,且其运行机制并非传统模拟器,而是将游戏代码直接在 Apple 芯片上运行,并由 Metal API 负责图形绘制。

NX2Apple:nxnative 衍生分支,图形化一键把 Switch 游戏移植到 Apple Silicon Mac 与 iPhone,无需命令行插图

核心机制与近期功能更新

NX2Apple 的核心工作依赖于上游 nxnative 项目的代码改写器、Horizon 宿主层以及 NVN-on-Metal 转换技术。此 Fork 版本在此基础上增加了图形化启动器与少量补丁,并保持与上游代码的每日同步。

近期版本带来了三项关键体验优化:

  • 全新图形界面:Mac 端推出了可视化启动器,用户可像管理原生游戏库一样浏览和启动移植游戏。
  • 存档与日志统一管理:Mac 端各游戏的存档文件及运行日志,现已集中在游戏库文件夹内进行统筹管理。
  • iOS 端存储扩展:iPhone 端现已支持将体积庞大的游戏资源文件(.img)放置在移动硬盘中直接加载,缓解了手机内部存储压力。

运行环境与依赖准备

要顺利完成游戏的解包、改写、Shader 翻译与打包,需满足以下软硬件条件:

  • Mac 端要求:需配备 Apple Silicon 芯片,运行 macOS 13 或更新版本。构建过程需要安装包含 iOS SDK 的 Xcode。若运行特定 NVN 游戏,需 Xcode 27.1(对应 macOS 26.6 或更新),除非在构建时添加 --allow-other-metal 参数。
  • iOS 端要求:需运行 iOS 26 或更新版本,且设备型号较新。旧款设备未经过充分测试。
  • 必备文件:用户需自行提供游戏文件(NSP 或 XCI 格式)以及从个人主机导出的 prod.keys。该项目不自带、不下载且不协助查找任何版权内容。一份有效的 prod.keys 即可解密所有零售版游戏。
  • 依赖项管理:App 内置了构建工具与 Python 环境,无需额外安装 Homebrew。但 .NET SDK 10 需由 App 协助安装,启动器的依赖检查页会逐项提示并提供一键安装功能。

图形化安装与构建流程

整个移植过程无需掌握 Git 或命令行操作,具体步骤如下:

  1. 下载与启动:从最新版本下载 NS-Port-Builder-macOS-arm64.zip 并解压。首次运行时,由于 App 未使用付费的 Apple 开发者证书签名,macOS 会弹出安全警告,右键选择“打开”即可解除限制。
  2. 初始化环境:进入设置页,点击“下载仓库”按钮。启动器会将构建所需的项目浅克隆至 ~/NX2Apple 目录(若 GitHub 访问不畅,页面会提供手动下载 ZIP 的替代方案),并自动检查与更新相关工具。
  3. 执行构建:选择游戏文件夹(或分别指定本体、更新包、DLC 和 prod.keys),设定目标平台为“这台 Mac”或“iPhone / iPad”,点击构建。页面会实时显示处理阶段与剩余时间,支持中断后断点续传。iPhone 构建完成后,界面会提供三步装机指南。

游玩体验与自定义配置

Mac 端体验:构建完成的游戏会带有封面显示在游戏库中。点击 Play 即可启动,支持使用手柄同时操作游戏与启动器界面。启动选项按游戏独立保存,重新构建后依然生效,可调节帧率、主机模式(底座或掌机)、渲染缩放、超分辨率、游戏语言及操控映射。

iPhone 端体验:启动前会显示与 Mac 端相同的设置面板。触屏操控提供 2D 和 3D 两种布局(通过顶部中央按钮切换),连接 Xbox、PlayStation、Switch Pro 或 MFi 手柄后,触屏控件会自动隐藏。需注意,新场景首次加载时出现短促卡顿属正常现象,这是 App 在编译并缓存图形数据。游戏数据(romfs.img)可通过“文件”App 选取外置硬盘路径进行加载。

语言与性能微调:
游戏默认运行英文。若需修改,可通过创建 env.txt 文件实现(每行格式为 KEY=VALUE):

  • Mac 端:优先读取 ~/Library/Application Support/nxnative/<title ID>/env.txt(重新构建后保留),或修改 App 自带的 <App>.app/Contents/Resources/dm/env.txt。例如添加 DM_LANG=zh-Hans 可切换简体中文。
  • iPhone 端:在“文件”App 的该应用目录下创建 Documents/env.txt。例如添加 DM_FPS_TARGET=30 可限制帧率以节省电量,DM_OPMODE=0 可强制切换为掌机模式。

游戏兼容性与已知限制

目前项目共维护 94 个游戏 profile。其中 3 款已在该 Fork 版本中完成完整验证(构建、安装及手机端实机游玩),另有 45 款经上游报告在 iPhone 上可玩。

部分验证游戏示例:

  • 本 Fork 完整验证:《塞尔达传说:王国之泪》(约 17 GB,304,243 个文件逐字节校验通过)、《Hades II》、《集合啦!动物森友会》(iPhone 端流畅运行)。
  • 上游报告 iPhone 可玩:《超级马力欧 奥德赛》、《塞尔达传说:旷野之息》(1.9.0 版本可达 60 fps)、《马力欧卡丁车 8 豪华版》。

运行限制说明:

  • Profile 依赖:仅支持已有 profile 的游戏。列表外的游戏需要单独的适配(bring-up)工作。
  • iOS 内存上限:在未获得 Increased Memory Limit 授权时,iOS 仅向 App 分配约 3.4 GB 内存,无法满足《王国之泪》等大型游戏需求。App 已申请该权限,通过 AltStore Classic 2.2+、Impactor 或 Xcode + Personal Team 侧载可保留此权限。SideStore 配合免费 Apple ID 需对 App ID 进行一次修复,而 Sideloadly 可能会丢失该权限。
  • 签名与数据:启动器与 iPhone 构建产物均不包含签名,需用户自行完成侧载。项目严格遵循版权规范,不包含任何游戏数据、固件或密钥。
  • 旧版归档兼容:早期 iPhone 构建曾将游戏打包为 RomFS 分片归档(romfs.idx),当前版本已改为输出单个 romfs.img,但旧版归档的读取层依然保留以确保向下兼容。

故障排查与反馈规范

若遇到游戏运行、构建或启动器问题,请使用官方提供的问题表单进行反馈。提交时需包含以下信息以优先获得处理:

  • 游戏名称与 Title ID。
  • 游戏版本、设备型号及当前设置。
  • 通过“设置 > 复制诊断信息”获取的系统数据。
  • 完整的运行日志(Mac 端为 log/<title ID>.log,iPhone 端为 log.txt 或 log.prev.txt)。

隐私红线:反馈时严禁附上任何密钥(keys)、游戏源文件或从游戏中提取的版权内容。

下载地址
夸克
密码:PJTm