当前位置: 首页 > Linux

让您的Windows-Linux在Switch上畅玩!

时间:2023-04-06 19:21:48 Linux

1前言某日在Github上看到两款Switch模拟器:yuzuRyujinx,于是想在Linux上试试玩Switch。本文先简单介绍一下这两款模拟器,然后介绍这两款模拟器的安装、使用和基本配置。附录包括Vulkan和OpenGL的比较以及Ryujinx和yuzu的比较。让我们看看这两个模拟器是什么。2模拟器、平台和兼容性2.1关于模拟器yuzu:一个由Citra的创建者编写的开源NS模拟器,用C++编写,高达14.2kstars,特性包括VulkanAPI支持,灵活的模拟器配置和游戏配置等。Ryujinx:一个基于.NET5.x和C#的开源NS模拟器。特性包括OpenAL音频输出、PPTC(下面介绍)、支持多路输入、支持DLC等,目前为止5.8kstars2.2关于平台这两个模拟器支持的平台只有Windows和Linux:至于Mac,yuzu没有表示支持,而Ryujinx在计划中,在下载页面(上图)可以看到Mac图标,但是是灰色的。另外,笔者在M1Mac上运行也发现了一个问题:看了一下,需要等2021年11月的.NET6才能支持,所以Mac党还得等。2.3关于兼容性官方给出了游戏兼容性列表:yuzu:CompatibilityListRyujinx:CompatibilityList3Environment我测试的环境是:系统:Manjaro显卡:RTX2060固件版本:Firmware11.0.1测试游戏:SuperMario3DWorld4准备工作无论使用yuzu还是Ryujinx,都需要准备:prod.keys如果游戏本体使用Ryujinx,则需要额外准备固件。我们先来看看prod.keys。4.1prod.keysyuzu和Ryujinx都需要prod.keys,prod.keys里面包含了NS设备需要的密钥,需要通过Hekate等一系列工具生成。这部分比较复杂,所以文末的附录直接提供了现成的prod.keys。另外yuzu的官方文档也提到需要使用title.key。笔者发现title.key不是必须的,可以自动生成:在Ryujinx中,title.key不是必须的,只需要存在于系统文件夹prod.keys即可。4.2游戏本体这里游戏本体推荐三个网站下载:游戏年轮游戏大同木子play注意:游戏下载后需要放在文件夹中。4.3固件(Ryujinx)在Ryujinx中,需要额外的固件(Firmware)。固件版本需要对应prod.keys。可以在此处或从文章末尾提供的链接下载固件。最新版本是11.0.1。5yuzu5.1下载yuzu提供AppImage,直接下载并添加执行权限即可:添加执行权限:chmodu+xyuzu-*.AppImage./yuzu-*.AppImage5.2prod.keys第一次运行会提示如果没有钥匙,直接忽略进入界面,选择右上角文件->打开yuzu文件夹即可。打开后,新建一个keys文件夹:把prod.keys放进去,重启。5.3添加游戏点击AddNewGameDirectory,选择要添加的游戏目录:添加游戏后,直接双击即可开始游戏。5.4配置yuzu的配置比较丰富。每个游戏除了模拟器本身的配置外,还有自己的配置:5.4.1通用配置通用配置包括系统语言的配置,一些热键等,一般保持默认即可:另外,在按钮配置,可以根据需要选择自己合适的按钮,可以根据单手柄和双手柄的形式进行配置:5.4.2图形配置这里的配置很重要:主要包括:API设置:yuzu支持OpenGL和Vulkan,笔者发现Vulkan会运行的更流畅,帧率更高。具体选择视个人情况而定。文末附录中提到了两者的对比。UseasynchronousGPUemulation:GPU异步仿真,yuzu重写GPU内存管理器,加速缓存机制,让帧数明显提升,性能提升40%-400%(测试数据来自BSoDGaming,链接在末尾文章)使用NVDEC仿真:NVDEC是一种硬件转码技术,可以在转码过程中减轻CPU在计算密集型任务中的负担。这是英伟达的一项技术。Withit5.4.3游戏配置yuzu可以根据每个游戏独立配置,右键点击对应的游戏,选择属性选项卡,进入如下界面:大部分设置和模拟器设置一样,就不赘述了.5.5开始游戏双击游戏即可愉快的开始。6下载Ryujinx6.1直接去Ryujinx官网下载:6.2密钥和固件打开Ryujinx,Windows直接打开exe,Linux到./Ryujinx,第一次运行应该出现如下提示:先选择OK,进入界面选择File->OpenRyujinxFolder,将prod.keys放入系统并重启。重启后在界面中选择Tools->InstallFirmware->InstallafirmwarefromXCIorZIP即可安装下载的固件。6.3添加游戏打开选项->设置,选择添加,选择对应的游戏文件夹进行添加。6.4配置添加游戏后就可以看到游戏了,先不要急着打开,先做一些通用的设置。虽然Ryujinx的配置选项比yuzu少,但不代表不需要配置。最重要的三个是输入、系统和图形。6.4.1输入下面是一些输入配置。和柚子一样,也可以根据双手柄和单手柄的类型来设置键盘的按键:6.4.2系统这是一些时区和系统语言的设置。一般操作系统都会用到设置,不用改,这里勾选三个选项:VSync:垂直同步,当显卡每秒渲染的帧率大于屏幕的刷新率时,会协调显卡的输出与屏幕刷新率,从而防止屏幕撕裂,比如屏幕刷新率只有60Hz。如果原装显卡每秒可以渲染120帧,那么启用Vsync就可以让显卡同步屏幕的刷新率。PPTC:这是一种可以减少游戏加载时间的技术,实际上是一种Caching技术,在游戏第一次启动的时候会创建或者更新.info文件,翻译哪个函数,怎么翻译第二次开始游戏时根据这个文件确定,每次游戏结束都会更新这个文件。这些缓存文件的位置在用户的AppData\Roaming\Ryujinx\games\\cache\cpu或~/.config/Ryujinx/games//cache/cpuFSIntegrityChecks:这是一个securityPerformancecheckoption6.4.3Graphics下面是一些与显卡相关的选项,包括:是否启用shadercaching:建议启用。这是一项可以提升用户体验的技术。shader编译完成后会被放入硬盘,下次游戏从硬盘加载到内存时各向异性过滤:用于过滤和处理表面渲染时引起的纹理错误等问题3D物体因视角变化而倾斜,可设置2倍到16倍,数值越大对显卡要求更高的分辨率Scaling:默认为原生720p或1080p,您可以调整屏幕比例根据显示屏幕缩放比例:默认为16:9,根据屏幕设置6.5开始游戏双击愉快开始游戏。7截图作者比较懒,随便截了两张马里奥的截图:附录一:VulkanorOpenGL?这是针对柚子的,因为Ryujinx只提供OpenGLAPI。yuzu提供了两个图形API:VulkanOpenGL笔者尝试玩超级马里奥3D世界,发现OpenGL会频繁卡顿,游戏不流畅。就算顶一枚金币也会冻结1s左右。这种用户体验很差,但是用Vulkan是没有问题的。当然这也可能是游戏本身的原因,笔者并没有测试更多的游戏。以下是Vulkan相比OpenGL的优势:更接近底层:API更接近驱动和硬件,方便开发者优化多线程:Vulkan天然支持多线程,也支持异步数据交互和平行绘图。以下是Linux上的Dota2以及RX560和GTX1050Ti下MadMax在不同场景、不同分辨率下的测试数据,包括帧数和CPU使用率(2018年7月,作者MichaelLarabel,链接在文末文章),首先是Dota2数据:下面是MadMax,画面预设低,1080p:画面预设低,2k分辨率:画面预设高,1080p:画面预设默认,2k分辨率:可以看到大部分Vulkan的性能比OpenGL更好,在GTX1050Ti下,无论是1080p还是2k,在更高的帧率下同时保持较低的CPU使用率。然而,Vulkan虽然可以表现出更好的性能,但它比OpenGL要复杂得多。由于笔者不是学图形的,就不展开了。需要的请自行查阅资料。附录二:Ryujinx还是柚子?这里也参考了别人的测试(数据来源BSoDGaming,2020年8月,见文末链接),环境是两组:i54690k+GTX1080Tii78700k+GTX1080Ti以下是部分截图评估,显示环境中不同的CPU使用率和帧率:塞尔达传说:荒野之息比较特别。可以看到只有一组变量,因为在配置低的机器上无法测试,但是在i78700k上,可以清楚的看到Ryujinx的帧率比yuzu,而且Ryujinx的CPU使用率比yuzu高:另外在外星人链中,虽然yuzu的帧率比Ryujinx高,但是会出现贴图错误,如下图所示:下面总结一下优点:Ryujinx:对新手友好,配置方便快捷,并且有分辨率缩放功能,支持Mac平台(目前正在规划中)yuzu:对硬件和游戏的配置更详细,并且不像Ryujinx那样全局统一配置,游戏加载速度更快,更重要的是自带VulkanAPI支持,这是最大的优势缺点:Ryujinx:新游戏加载速度慢,加载等待时间较长,不过有了PPTC和yuzu的帮助,加载时间要快得多。yuzu:配置比较复杂,没有分辨率缩放的功能。它将有更好的内存使用和页面文件使用。如何取舍,取舍取决于读者。附录三:资源下载提取码Kova参考Ryujinx-PPTCyuzu-新特性发布-NVDEC仿真!YouTube-YuzuEmulator-TheAsyncGPUUpdate|Linux游戏的40-400%性能提升Vulkan与OpenGL性能Zhihu-openGL、vulkan困惑?知乎-Vulkan与OpenGL、DX12、Metal、Mantle相比有哪些优缺点?YouTube-最好的NintendoSwitch模拟器是什么?性能和功能测试