在 PC 上运行 Switch 游戏:Ryujinx 模拟器的安装、首通与调优实操
【免费下载链接】Ryujinx用 C# 编写的实验性 Nintendo Switch 模拟器项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx
没有 Switch 主机,却想在电脑上玩它上面的游戏,这件事现在并不复杂。Ryujinx 是一个用 C# 编写的开源 Nintendo Switch 模拟器,把主机的 ARM 指令与 Maxwell 显卡行为搬到 PC 上运行。这篇把它从零装起来、第一次进入游戏画面,以及之后怎么调快,按真实使用顺序讲一遍。
能不能跑:Ryujinx 覆盖了多少款 Switch 游戏
先看覆盖面。截至 2024 年 5 月,项目方测试过约 4300 款游戏,其中 4100 多款能启动并越过菜单进入实机画面,约 3550 款被判定为可正常游玩。换句话说,你手里的热门大作大概率能玩,只有少数存在兼容性问题。
硬件门槛不高,但有一条硬线:内存至少 8 GiB,低于这个值容易出现卡顿甚至崩溃。除此之外,CPU 和显卡越强,能开起的图形选项越多,具体见后文的图形后端。
怎么跑起来:从源码编译到进入首个可玩画面
从源码编译出 Ryujinx 模拟器
项目要求 .NET 8.0(或更高)SDK,版本约束写在全局配置文件 global.json 里,当前指定 8.0.100。把仓库拉到本地后进入项目目录构建即可:
git clone https://gitcode.com/GitHub_Trending/ry/Ryujinx cd Ryujinx dotnet build -c Release -o build编译产物在 build 目录。仓库同时针对 win-x64、osx-x64、linux-x64 三个平台,所以 Windows、macOS、Linux 都能构建。
首次配置:固件、密钥与游戏文件
首次启动后,从菜单的 File 里选 "Open Ryujinx Folder" 打开用户目录,模拟器的系统文件、配置和日志都集中在这里。把系统固件与解密用的密钥文件放进对应系统目录,再把游戏文件(NSP 数字版、XCI 卡带镜像等)放进模拟器能识别的目录。图形、输入等所有设置既可以在这份 Config.json 里改,也可以在图形界面里点。
启动游戏进入可玩状态
在界面里选中一个游戏启动即可。第一次启动会现场翻译游戏代码,所以偏慢属正常,原因在后面解释。
跑得快不快:决定帧率与加载速度的三套机制
CPU 翻译:ARM 到 x86 的 IR 中转
CPU 部分由名为 ARMeilleure 的组件负责,它把 Switch 的 ARMv8 指令先转成一套自定义的中间表示(IR,可理解为与平台无关的通用指令集),做几轮优化后再落成 x86 代码。它支持大部分 64 位 ARMv8 指令,也覆盖了部分更早的 ARMv7 指令和 32 位路径。内存管理有三种模式,从偏慢的纯软件模式到更快的宿主映射模式,默认走最快那一档。
常驻翻译缓存:让第三次启动明显变快
项目里有个默认开启的功能,叫 Profiled Persistent Translation Cache(常驻翻译缓存),位置在 Options > System。它把翻译过的函数存下来,下次不必重复翻译,所以几乎所有游戏的加载时间都能缩短。注意生效规则:得先把游戏跑到标题画面、且至少两次,第三次启动起性能才解锁,此后一直有效。
图形后端与渲染增强
显卡这块模拟的是 Switch 的 Maxwell GPU,可选 OpenGL(需 4.5 及以上)、Vulkan,或在 macOS 上通过 MoltenVK 走 Metal。界面里给了六项可调的增强:磁盘着色器缓存、分辨率缩放、抗锯齿、缩放滤镜(含 FSR)、各向异性过滤和宽高比调整,随需在图形界面里开关。
慢怎么调:帧率不达标时的排查清单
先定位瓶颈:CPU、GPU 还是内存
帧率低时别急着乱调。先确认内存是否已占用到极限,再判断是 CPU 翻译跟不上还是 GPU 渲染吃满,瓶颈不同要动的开关也不同。日志放在用户目录的 Logs 里、按日期命名,出问题时翻主程序和 GPU 两份日志定位最快。
值得动手的几个图形开关
如果稳定帧率上不去,优先做这几件事:把分辨率缩放调低一档、先关抗锯齿试跑、确认磁盘着色器缓存已开启(它能把着色器编译成本摊薄到多次启动)。这几项对帧率影响最直接,也不怎么牺牲画质。
⚠️ 注意:模拟器只应用于自己已合法拥有的游戏备份,遵守当地版权规定,不做商业用途。日常维护上,定期升级到最新构建、备份好游戏存档、清理不再需要的缓存,基本就能保持长期稳定。
还能干什么:输入、联机与 MOD 玩法
手柄、触屏与 Joy-Con
输入覆盖很全:键鼠、触摸、Joy-Con,以及绝大多数第三方手柄。体感在多数情况下原生支持;若要用双 Joy-Con 的体感,需配合 DS4Windows 或 BetterJoy。所有映射都能在输入配置菜单里逐项设置。
本地无线联机与 DLC、MOD
联机方面提供基于本地无线(LDN,模拟 Switch 之间的近场通讯)的多人玩法,走 ldn_mitm 实现,需要专门的构建。DLC 可直接在界面里管理,自动识别并支持多版本共存。MOD 同样支持:romfs、exefs 补丁以及运行时作弊码,界面上有快捷入口直达对应游戏的 MOD 目录。
Ryujinx 模拟器的问题排查和社区交流,官方 Discord 是最快的渠道,遇到报错先去那里搜一下,多半已有答案。
看懂原理:一眼看懂 Ryujinx 的模块划分
想深入源码,路径其实很直白。CPU 模拟在 src/ARMeilleure/,图形分前后端:GPU 逻辑在 src/Ryujinx.Graphics.Gpu/,OpenGL 与 Vulkan 两套渲染后端分别是 src/Ryujinx.Graphics.OpenGL/ 和 src/Ryujinx.Graphics.Vulkan/,音频在 src/Ryujinx.Audio/,输入在 src/Ryujinx.Input/。更多上下文可看 docs/README.md,贡献代码前先读一遍 docs/coding-guidelines/coding-style.md。
【免费下载链接】Ryujinx用 C# 编写的实验性 Nintendo Switch 模拟器项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考