1 前言
某天在 Github
下面看到了两个 Switch
的模拟器:
- yuzu
- Ryujinx
于是就想入手想尝试一下在 Linux
下面玩上Switch
。
本文首先简略介绍一下两个模拟器,接着是两个模拟器的装置应用及根本配置。附录包含了 Vulkan
以及 OpenGL
的比拟和 Ryujinx
和yuzu
的比拟。上面先来看一下两个模拟器到底是什么。
2 模拟器、平台以及兼容性
2.1 对于模拟器
yuzu
:Citra
的制作者写的一个开源NS
模拟器,用C++
编写,高达14.2k star
,特点包含Vulkan API
的反对、灵便的模拟器配置以及游戏配置等等Ryujinx
:基于.NET 5.x
与C#
的开源NS
模拟器,特点包含OpenAL
音频输入、PPTC
(下文有介绍)、反对多种输出、反对DLC
等等,5.8k star
2.2 对于平台
目前这两个模拟器反对的平台只有 Windows
和Linux
:
至于 Mac
,yuzu
没有阐明反对,而 Ryujinx
在打算中,在下载页面(上图)能够看到 Mac
的图标,然而处于灰色状态。
另外,笔者还发现了一个在 M1 Mac
上运行的 issue:
大略看了一下须要期待 2021 年 11 月的 .NET 6
去反对了,所以 Mac
党还得再等等。
2.3 对于兼容性
官网给出了游戏的兼容性列表:
yuzu
:兼容性列表Ryujinx
:兼容性列表
3 环境
笔者测试的环境为:
- 笔记本
- 零碎:
Manjaro
- 显卡:
RTX 2060
- 固件版本:
Firmware 11.0.1
- 测试游戏:超级马里奥 3D 世界
4 筹备工作
无论应用的是 yuzu
还是Ryujinx
,都须要筹备:
prod.keys
- 游戏本体
如果应用的是Ryujinx
,还须要额定筹备固件。
先来看一下prod.keys
。
4.1 prod.keys
yuzu
以及 Ryujinx
都须要 prod.keys
,外面蕴含了NS
设施须要的 key
,须要通过 Hekate
等一些列工具生成,这部分比较复杂,因而文末附录间接提供了现成的prod.keys
。
另外,在 yuzu
的官网文档还提到了须要应用 title.key
,笔者实测发现title.key
不是必须的,能够主动生成:
而在 Ryujinx
中title.key
也不是必须的,在 system
文件夹下只需存在 prod.keys
即可。
4.2 游戏本体
游戏本体这里举荐三个网站下载:
- 游戏年轮
- 游戏大桶
- 木子玩
留神:游戏下载实现后须要放在一个文件夹中。
4.3 固件(Ryujinx
)
在 Ryujinx
中还须要额定的固件(Firmware
),固件的版本须要与 prod.keys
对应,固件能够到此处下载或者从文末提供的链接下载,目前最新的版本是11.0.1
。
5 yuzu
5.1 下载
yuzu
提供了AppImage
,间接下载而后增加执行权限即可:
增加执行权限:
chmod u+x yuzu-*.AppImage
./yuzu-*.AppImage
5.2 prod.keys
第一次运行会提醒没有 key
,先疏忽进入界面,抉择右上角的File->Open yuzu Folder
,关上后,新建一个keys
文件夹:
把 prod.keys
放进去并重启即可。
5.3 增加游戏
点击Add New Game Directory
,抉择游戏目录进行增加即可:
增加完游戏后就能够间接双击启动游戏了。
5.4 配置
yuzu
的配置比拟丰盛,除了模拟器自身的配置外,每个游戏也领有独立的配置:
5.4.1 个别配置
个别的配置包含零碎语言、一些热键等的配置,通常状况下放弃默认即可:
另外在按键的配置中能够依据须要抉择本人适合的按键,能够依据单手柄和双手柄的模式配置:
5.4.2 图形配置
这里的配置很重要:
次要包含:
API
设置:yuzu
反对OpenGL
还有Vulkan
,笔者实测发现Vulkan
会运行得更晦涩,帧率更高,具体依据集体状况进行抉择,文末附录有提到两者的比拟Use disk shader cache
:磁盘着色器缓存,倡议开启,这样就不必每次都从新编译,而是间接从磁盘加载到内存Use asynchronous GPU emulation
:GPU
异步模仿,yuzu
重写了GPU
显存管理器,减速了缓存机制,使得帧数失去显著提醒,同时性能晋升 40%-400%(来自BSoD Gaming
的测试数据,链接在文末)Use NVDEC emulation
:NVDEC
是一项硬件转码技术,能缩小转码期间计算密集型工作中 CPU 的累赘,这是Nvidia
的一个技术,有了它,过场动画的播放会畅顺很多
5.4.3 游戏配置
yuzu
能够依据每个游戏进行独立的配置,在对应的游戏下面右键,并抉择 properties
选项卡即可进入如下界面:
大部分设置与模拟器设置一样,就不具体说了。
5.5 启动游戏
双击游戏就能够欢快地开始了。
6 Ryujinx
6.1 下载
间接到 Ryujinx
官网下载即可:
6.2 key
与固件
关上 Ryujinx
,Windows
间接关上 exe
,Linux
间接 ./Ryujinx
即可,首次运行的时候应该会如下提醒:
先抉择 OK,进入界面后抉择 File->Open Ryujinx Folder
,把prod.keys
放进 system
并重启。
重启之后,在界面中抉择 Tools -> Install Firmware -> Install a firmware from XCI or ZIP
装置下载好的固件。
6.3 增加游戏
关上 Options -> Settings
,抉择其中的Add
并抉择对应的游戏文件夹进行增加即可。
6.4 配置
增加完游戏后就能够看到游戏了,别急着关上,先把一些惯例设置做一下。尽管 Ryujinx
的配置选项比 yuzu
要少,但并不代表不须要配置,其中最重要的三个是 Input
、System
和Graphics
。
6.4.1 Input
这里是一些输出配置,与 yuzu
一样,也是能够依据双手柄以及单手柄的类型来设置键盘的按键:
6.4.2 System
这是一些时区以及零碎语言的设置,个别会应用操作系统的设置,不须要更改,这里说一下勾选的三个选项:
VSync
:垂直同步,当显卡每秒渲染的帧率大于屏幕的刷新率时,会将显卡的输入与屏幕刷新率协调,从而阻止画面撕裂,比方屏幕刷新率只有60Hz
,如果原来显卡每秒能渲染120 帧
,那么启用Vsync
会让显卡同步屏幕的刷新率PPTC
:这是一项能够缩小游戏加载工夫的技术,实际上是一项缓存技术,第一次启动游戏的时候会创立或更新.info
文件,第二次启动游戏的时候从该文件决定转译哪一个函数以及怎么转译,每次游戏完结都会更新该文件。这些缓存文件的地位在User’s AppData\Roaming\Ryujinx\games\<game id>\cache\cpu
或~/.config/Ryujinx/games/<game id>/cache/cpu
外面
FS Integrity Checks
:这是一个安全性的查看选项
6.4.3 Graphics
这里是一些显卡相干的选项,包含:
- 是否启用着色器缓存:倡议开启,这是一项能够进步用户体验性的技术,着色器被编译后会被放进硬盘中,随着下次启动游戏从硬盘加载到内存中
- 各向异性过滤:用来过滤、解决当视角变动导致 3D 物体外表歪斜时造成的纹理谬误等问题,能够设置从 2 倍到 16 倍,数值越大对显卡要求越高
- 分辨率缩放:默认是原生的 720p 或 1080p,能够依据显示屏缩放调整
- 画面比例:默认 16 比 9,依据屏幕设置即可
6.5 启动游戏
双击欢快地启动游戏了。
7 截图
笔者很懒就轻易截了两张马里奥的:
附录一:Vulkan
还是OpenGL
?
这里是针对 yuzu
来说的,因为 Ryujinx
只提供了 OpenGL
的API
。
yuzu
提供了两种图形API
:
Vulkan
OpenGL
笔者尝试玩了一下超级马里奥 3D 世界,发现 OpenGL
会经常性的卡顿,玩起来很不晦涩,就连顶一个金币都会卡顿大概 1s 左右,这种用户体验就十分的不好,然而,应用 Vulkan
就没有问题。
当然这也有可能是游戏自身的起因,笔者并没有测试更多的游戏。上面是 Vulkan
相比起 OpenGL
的长处:
- 更加靠近底层:
API
更加靠近驱动和硬件,不便开发者优化 - 多线程:
Vulkan
人造反对多线程,也反对异步数据交互以及并行绘制
而上面是在 Linux
上对 Dota2
以及 Mad Max
在RX 560
以及 GTX 1050 Ti
下不同场景不同分辨率下的测试数据,包含帧数以及 CPU
使用率(2018 年 7 月,作者 Michael Larabel
,链接在文末),首先是Dota2
的数据:
上面是Mad Max
,图形预设为低,1080p
:
图形预设为低,2k
分辨率:
图形预设为高,1080p
:
图形预设默认,2k
分辨率:
能够看到 Vulkan
的大部分体现都要比 OpenGL
要好,在 GTX 1050 Ti
中,无论是 1080p
还是 2k
,在更高帧率的同时放弃着更低的CPU
使用率。
不过,尽管 Vulkan
能体现出更好的性能,然而要比 OpenGL
简单得多,因为笔者不是学图形的,就不开展了,须要的请自行查阅材料。
附录二:Ryujinx
还是yuzu
?
这里同样参考了他人的测试(数据起源BSoD Gaming
,2020 年 8 月,链接见文末),环境为有两组:
i5 4690k + GTX 1080 Ti
i7 8700k + GTX 1080 Ti
上面是一些测评的截图,显示了不同环境下的 CPU
使用率以及帧数:
比拟特地的是塞尔达传说:荒野之息,能够看到只有一组变量了,因为在低配置的机器上测试不了,而在 i7 8700k
上,能够显著看到 Ryujinx
的帧数要比 yuzu
低很多,而且 Ryujinx
的CPU
占用率要比 yuzu
高:
另外在异界锁链中,尽管 yuzu
有着比 Ryujinx
更高的帧率,然而会呈现谬误的材质,如下图所示:
上面总结一下长处:
Ryujinx
:老手敌对,配置方便快捷,而且带有分辨率缩放性能,还有Mac
平台反对(目前在打算中)yuzu
:能针对硬件以及游戏进行更具体的配置,而不是像Ryujinx
那样的对立全局配置,游戏加载速度更快,更重要的是带有Vulkan API
反对,这是最大的长处
毛病:
Ryujinx
:新游戏加载迟缓,须要较长时间期待加载,然而有了PPTC
的帮忙,加载工夫快了不少yuzu
:配置较为简单,而且不具备分辨率缩放的性能,会有更好的内存使用率以及页面文件使用率
如何抉择取舍就看各位读者了。
附录三:资源下载
提供了 prod.keys
、最新的Windows
+Linux
模拟器、固件以及测试所用的游戏,链接请关注公众号“氷泠之路”并回复关键字 Switch
获取。
参考
1、Ryujinx-PPTC
2、yuzu-New Feature Release – NVDEC emulation!
3、YouTube-Yuzu Emulator – The Async GPU Update | 40 – 400% Performance Improvements
4、Vulkan vs. OpenGL Performance For Linux Games
5、知乎 -openGL、vulkan 求解惑?
6、知乎 -Vulkan 相比于 OpenGL、DX12、Metal 和 Mantle 有什么劣势、劣势?
7、YouTube-What is the Best Nintendo Switch Emulator? Performance & Features Tested