Ryujinx 模拟器完整教程:新手快速搭建并流畅运行 Switch 游戏
【免费下载链接】Ryujinx用 C# 编写的实验性 Nintendo Switch 模拟器项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx
第一次在 13 寸笔记本上打开《塞尔达传说:旷野之息》的那天,我的第一反应是屏幕太小,但玩了几分钟就顾不上这些了——海拉鲁的草会随风摆动,帧率也稳稳停在可玩的水平。我跑的程序是 Ryujinx 模拟器,一个用 C# 编写的开源 Nintendo Switch 模拟器,MIT 协议、免费下载使用,2017 年就开始开发,由社区持续维护到今天。
说白了,Ryujinx 模拟器就是一台跑在 PC 里的"Switch":从系统固件、GPU 渲染、音频输出到手柄输入,它都替你做掉了,你只需要提供自己的游戏。需要它的大致是两类人:一类想在大屏上玩 Switch 游戏、不想再买一台主机;另一类想认真看看现代模拟器是怎么做出来的。这两种人都适用下面这套流程。
动手前自检:系统与运行环境要求
先对照这份清单,要求不算高,但内存这一条官方 README 写得明确:
- 操作系统:Windows 10/11、主流 Linux 发行版或 macOS
- 内存:至少 8GiB,低于这个值官方说法是体验差甚至崩溃
- 显卡:支持 OpenGL 4.5 或 Vulkan 即可,近十年的主流显卡基本都满足
- 运行环境:源码编译需要 .NET 8.0 SDK 或更高版本(global.json 中要求 8.0.100)
- 手头文件:Switch 系统固件和密钥文件 prod.keys
都齐了的话,先拿到源码。想自己编译的话直接克隆:
git clone https://gitcode.com/GitHub_Trending/ry/Ryujinx cd Ryujinx三步跑起来:从构建到进入游戏
第一步:拿到程序(Ryujinx 预编译版或编译命令)
只想玩的话,官网提供 Windows、macOS、Linux 的预编译版,下载解压就能用,省去编译。想自己构建,在项目根目录执行一条命令即可:
dotnet build -c Release -o build产物会输出到新创建的 build 目录。
第二步:首次配置(固件、密钥、控制器)
首次启动会自动创建数据目录,最快的入口是菜单栏 File → Open Ryujinx Folder。它的子目录各有分工:games 放游戏文件,profiles 放用户资料和存档,system 放密钥,bis 是模拟的 NAND 存储,sdcard 是虚拟 SD 卡,mods 放修改内容。
配置按这个顺序来:先在 Tools 入口导入固件文件(系统 nro/nca),模拟器会把它拆进 NAND;再把 prod.keys 放进 system 目录,没有它,系统内容和游戏都无法解密,画面会一直黑着;最后在输入配置里映射键盘或手柄。键盘、鼠标、大多数手柄都直接支持,Joy-Con 也可以,体感在多数情况下原生可用,Windows 上双 Joy-Con 体感则需要借助 DS4Windows 或 BetterJoy。
第三步:运行你的第一个游戏
把 nsp 或 xci 文件放进 games 目录(或从界面直接添加),选中启动。第一次进游戏会明显慢一些,这是正常的——着色器编译和代码翻译缓存都在后台跑。只要能看到标题画面,就算跑通了。
让 Ryujinx 跑得顺滑:卡顿优化的优先级
能玩但不顺滑时,别乱改设置,按下面的顺序动,每一步都比下一步便宜。
1. 先换渲染后端。这是收益最大的一步。图形模块模拟的是 Switch 的 Maxwell GPU,后端选择如下:
| 渲染后端 | 适用平台 | 特点 |
|---|---|---|
| Vulkan | Windows / Linux / macOS(经 MoltenVK) | 通常性能最好,新显卡首选 |
| OpenGL 4.5 | 全平台 | 兼容性最好,老显卡更稳 |
判断依据:显卡较新、驱动正常,就先用 Vulkan;黑屏、闪退或画面异常,退回 OpenGL,先保能玩。
2. 再降分辨率缩放。如果卡顿集中在复杂场景、风扇狂转,说明 GPU 是瓶颈。从 2x 回落到 1x,或者保留分辨率、先关抗锯齿、开各向异性过滤,体感会好很多。
3. 最后确认缓存和默认项没被关。Profiled Persistent Translation Cache 默认是开着的,它缓存已翻译的函数,游戏进过两次标题画面后,第三次启动加载时间会明显缩短;Disk Shader Caching 能减少着色器现编的卡顿。内存管理器默认的 host-mapped 模式就是最快的,不用动。
卡住了怎么办:Ryujinx 常见故障排查
游戏无法启动
- 查文件本身:确认是有效的 nsp 或 xci,损坏的文件再好的配置也救不回来。
- 查固件版本:部分游戏要求更高的系统版本,导入更新固件再试。
- 查密钥:prod.keys 必须在 system 目录里,且版本与固件匹配。
- 查日志:Logs 目录按时间命名,找第一条红色报错,那才是真正的原因。
游戏内卡顿
- 先定位瓶颈:人群、物理场景卡是 CPU 的锅,复杂画面场景卡是 GPU 的锅。
- CPU 卡:确认翻译缓存开着,更新到新版本,关掉后台程序。
- GPU 卡:换 Vulkan、降分辨率缩放、开 Disk Shader Caching。
- 还不行:更新显卡驱动,Linux 用户确认驱动是专有还是开源版本。
无声或音频延迟
- 先确认系统默认输出设备没选错,很多时候锅不在模拟器。
- 在 Options 里换音频后端:代码里有 OpenAL、SDL2、SoundIo 三套,挨个试。
- 爆音就调大缓冲区;完全无声再查驱动和系统音量。
往深里走:源码结构与贡献路径
关键模块路径
这个项目的目录划分很干净,想读源码的话从这几个地方进:
- src/ARMeilleure/:CPU 模拟器,模拟 ARMv8 指令集,把 ARM 代码先翻译成中间表示、做优化,再输出 x86 指令,翻译缓存也在这里
- src/Ryujinx.Graphics.GAL/:图形抽象层,定义统一接口;具体实现在 src/Ryujinx.Graphics.Vulkan/ 和 src/Ryujinx.Graphics.OpenGL/
- src/Ryujinx.Audio/:音频模块,OpenAL、SDL2、SoundIo 三套后端驱动都在它的 Backends 下
- src/Ryujinx.HLE/HOS/:系统服务模拟,代码量最大的一块,大部分"某游戏某个功能不行"的问题都跟这里有关
- 文档与规范:docs/README.md 是官方文档入口,编码风格在 docs/coding-guidelines/coding-style.md,PR 流程在 docs/workflow/pr-guide.md,完整的贡献说明在 CONTRIBUTING.md,测试套件在 src/Ryujinx.Tests/
学习与贡献路径
官方给新人的建议很直接:先在本机把测试套件跑一遍,熟悉项目节奏;再修个文档错字或领个小 bug 练手,项目里有一批标了 good first issue 的问题专门留给新人;动手前把编码规范读完。提交要求跑过 dotnet format,而且 PR 需要至少两位核心开发者审核,所以第一次改动尽量小,描述清楚改了什么、为什么改。
社区主要在官方 Discord 上,问题基本都能实时问到;开发进展和版本消息在官方 Twitter 上发布。
写在最后:高频问题快答
上手阶段其实只需要记住三件事:数据目录在 File → Open Ryujinx Folder,调优从渲染后端开始,出问题时先翻 Logs。剩下的交给时间,这个项目的更新一直很勤。
问:Ryujinx 模拟器使用合法吗?答:模拟器本身是 MIT 协议的开源软件,使用没问题;但请只用它运行你自己合法拥有的游戏,密钥文件和游戏镜像都要来自你自己。
问:Ryujinx 存档备份在哪?答:存档在数据目录的 profiles 文件夹里。Linux 是 ~/.config/Ryujinx/profiles,Windows 在 %APPDATA%\Ryujinx\profiles。备份就是整个目录拷一份:
cp -r ~/.config/Ryujinx/profiles ~/backup-ryujinx-profiles问:固件要用什么版本?答:尽量用新的。部分游戏有明确的最低固件要求,遇到提示需要系统更新时,导入新版固件即可。
问:为什么第一次启动游戏总是很慢?答:那是着色器编译和代码翻译在发生。缓存热起来后,第二、三次启动会明显变快,属于预期行为。
【免费下载链接】Ryujinx用 C# 编写的实验性 Nintendo Switch 模拟器项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考