天天看點

讓你的Windows/Linux玩上Switch!

讓你的Windows/Linux玩上Switch!

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

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

至于

Mac

yuzu

沒有說明支援,而

Ryujinx

在計劃中,在下載下傳頁面(上圖)可以看到

Mac

的圖示,但是處于灰色狀态。

另外,筆者還發現了一個在

M1 Mac

上運作的issue:

讓你的Windows/Linux玩上Switch!

大概看了一下需要等待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

不是必須的,可以自動生成:

讓你的Windows/Linux玩上Switch!

而在

Ryujinx

title.key

也不是必須的,在

system

檔案夾下隻需存在

prod.keys

即可。

4.2 遊戲本體

遊戲本體這裡推薦三個網站下載下傳:

  • 遊戲年輪
  • 遊戲大桶
  • 木子玩

注意:遊戲下載下傳完成後需要放在一個檔案夾中。

4.3 固件(

Ryujinx

Ryujinx

中還需要額外的固件(

Firmware

),固件的版本需要與

prod.keys

對應,固件可以到此處下載下傳或者從文末提供的連結下載下傳,目前最新的版本是

11.0.1

讓你的Windows/Linux玩上Switch!

5

yuzu

5.1 下載下傳

yuzu

提供了

AppImage

,直接下載下傳然後添加執行權限即可:

讓你的Windows/Linux玩上Switch!

添加執行權限:

chmod u+x yuzu-*.AppImage
./yuzu-*.AppImage
           

5.2

prod.keys

第一次運作會提示沒有

key

,先忽略進入界面,選擇右上角的

File->Open yuzu Folder

,打開後,建立一個

keys

檔案夾:

讓你的Windows/Linux玩上Switch!

prod.keys

放進去并重新開機即可。

5.3 添加遊戲

點選

Add New Game Directory

,選擇遊戲目錄進行添加即可:

讓你的Windows/Linux玩上Switch!

添加完遊戲後就可以直接輕按兩下啟動遊戲了。

5.4 配置

yuzu

的配置比較豐富,除了模拟器本身的配置外,每個遊戲也擁有獨立的配置:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

5.4.1 一般配置

一般的配置包括系統語言、一些熱鍵等的配置,通常情況下保持預設即可:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

另外在按鍵的配置中可以根據需要選擇自己合适的按鍵,可以根據單搖桿和雙搖桿的形式配置:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

5.4.2 圖形配置

這裡的配置很重要:

讓你的Windows/Linux玩上Switch!

主要包括:

  • 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

頁籤即可進入如下界面:

讓你的Windows/Linux玩上Switch!

大部分設定與模拟器設定一樣,就不詳細說了。

5.5 啟動遊戲

輕按兩下遊戲就可以愉快地開始了。

6

Ryujinx

6.1 下載下傳

直接到

Ryujinx

官網下載下傳即可:

讓你的Windows/Linux玩上Switch!

6.2

key

與固件

打開

Ryujinx

Windows

直接打開

exe

Linux

直接

./Ryujinx

即可,首次運作的時候應該會如下提示:

讓你的Windows/Linux玩上Switch!

先選擇OK,進入界面後選擇

File->Open Ryujinx Folder

,把

prod.keys

放進

system

并重新開機。

讓你的Windows/Linux玩上Switch!

重新開機之後,在界面中選擇

Tools -> Install Firmware -> Install a firmware from XCI or ZIP

安裝下載下傳好的固件。

6.3 添加遊戲

Options -> Settings

,選擇其中的

Add

并選擇對應的遊戲檔案夾進行添加即可。

讓你的Windows/Linux玩上Switch!

6.4 配置

添加完遊戲後就可以看到遊戲了,别急着打開,先把一些正常設定做一下。雖然

Ryujinx

的配置選項比

yuzu

要少,但并不代表不需要配置,其中最重要的三個是

Input

System

Graphics

讓你的Windows/Linux玩上Switch!

6.4.1

Input

這裡是一些輸入配置,與

yuzu

一樣,也是可以根據雙搖桿以及單搖桿的類型來設定鍵盤的按鍵:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

6.4.2

System

這是一些時區以及系統語言的設定,一般會使用作業系統的設定,不需要更改,這裡說一下勾選的三個選項:

讓你的Windows/Linux玩上Switch!
  • VSync

    :垂直同步,當顯示卡每秒渲染的幀率大于螢幕的重新整理率時,會将顯示卡的輸出與螢幕重新整理率協調,進而阻止畫面撕裂,比如螢幕重新整理率隻有

    60Hz

    ,如果原來顯示卡每秒能渲染

    120幀

    ,那麼啟用

    Vsync

    會讓顯示卡同步螢幕的重新整理率
  • PPTC

    :這是一項可以減少遊戲加載時間的技術,實際上是一項緩存技術,第一次啟動遊戲的時候會建立或更新

    .info

    檔案,第二次啟動遊戲的時候從該檔案決定轉譯哪一個函數以及怎樣轉譯,每次遊戲結束都會更新該檔案。這些緩存檔案的位置在

    User’s AppData\Roaming\Ryujinx\games\<game id>\cache\cpu

    ~/.config/Ryujinx/games/<game id>/cache/cpu

    裡面
讓你的Windows/Linux玩上Switch!
  • FS Integrity Checks

    :這是一個安全性的檢查選項

6.4.3

Graphics

讓你的Windows/Linux玩上Switch!

這裡是一些顯示卡相關的選項,包括:

  • 是否啟用着色器緩存:建議開啟,這是一項可以提高使用者體驗性的技術,着色器被編譯後會被放進硬碟中,随着下次啟動遊戲從硬碟加載到記憶體中
  • 各向異性過濾:用來過濾、處理當視角變化導緻3D物體表面傾斜時造成的紋理錯誤等問題,可以設定從2倍到16倍,數值越大對顯示卡要求越高
  • 分辨率縮放:預設是原生的720p或1080p,可以根據顯示屏縮放調整
  • 畫面比例:預設16比9,根據螢幕設定即可

6.5 啟動遊戲

輕按兩下愉快地啟動遊戲了。

7 截圖

筆者很懶就随便截了兩張馬裡奧的:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

附錄一:

Vulkan

OpenGL

這裡是針對

yuzu

來說的,因為

Ryujinx

隻提供了

OpenGL

API

yuzu

提供了兩種圖形

API

  • Vulkan

  • OpenGL

筆者嘗試玩了一下超級馬裡奧3D世界,發現

OpenGL

會經常性的卡頓,玩起來很不流暢,就連頂一個金币都會卡頓大約1s左右,這種使用者體驗就非常的不好,但是,使用

Vulkan

就沒有問題。

讓你的Windows/Linux玩上Switch!

當然這也有可能是遊戲本身的原因,筆者并沒有測試更多的遊戲。下面是

Vulkan

相比起

OpenGL

的優點:

  • 更加接近底層:

    API

    更加接近驅動和硬體,友善開發者優化
  • 多線程:

    Vulkan

    天然支援多線程,也支援異步資料互動以及并行繪制

而下面是在

Linux

上對

Dota2

Mad Max

RX 560

GTX 1050 Ti

下不同場景不同分辨率下的測試資料,包括幀數以及

CPU

使用率(2018年7月,作者

Michael Larabel

,連結在文末),首先是

Dota2

的資料:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

下面是

Mad Max

,圖形預設為低,

1080p

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

圖形預設為低,

2k

分辨率:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

圖形預設為高,

1080p

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

圖形預設預設,

2k

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

可以看到

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

使用率以及幀數:

讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!
讓你的Windows/Linux玩上Switch!

比較特别的是塞爾達傳說:荒野之息,可以看到隻有一組變量了,因為在低配置的機器上測試不了,而在

i7 8700k

上,可以明顯看到

Ryujinx

的幀數要比

yuzu

低很多,而且

Ryujinx

CPU

占用率要比

yuzu

高:

讓你的Windows/Linux玩上Switch!

另外在異界鎖鍊中,雖然

yuzu

有着比

Ryujinx

更高的幀率,但是會出現錯誤的材質,如下圖所示:

讓你的Windows/Linux玩上Switch!

下面總結一下優點:

  • 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

繼續閱讀