快轉到主要內容

ProtonUp-QT和Protontricks用法,調整Steam Proton環境的小工具

· 民國113年甲辰年
·
切換繁體/簡體
分類   Linux系統 Linux玩遊戲
標籤   Steam Steam Deck Bottles for Linux Lutris Wine
目錄

註:本文討論的內容主要是在桌面版Linux系統操作的,可能不適用Steam Deck。

Steam內建方便的Proton工具,基於Wine研發,讓我們可以輕鬆啟動遊戲。

但如果要調整一些設定就很不方便…若我們想要修改遊戲字型大小呢?如果要更換第三方Wine版本呢?若是有額外的字型要裝呢?若想要強制程式以指定視窗解析度執行呢?若要給遊戲打補丁呢?

以上操作在Wine環境下可以用Winetricks達成,但是Steam並沒有提供此工具。於是就有開發者寫了工具「ProtonUp-QT」和「ProtonTricks」,專門針對Steam Proton環境設計,方便我們調整遊戲的設定值。

「ProtonUp-QT」專門用來切換Steam遊戲所使用的Proton版本。「ProtonTricks」則是用於安裝額外的Windows exe套件。

在使用本文介紹的二款工具前,請先安裝Linux版Steam客戶端

0. Steam的Proton Prefix是什麼?
#

Linux版Steam之所以能夠執行Windows遊戲,背後乃是採用了名為Proton的轉譯技術。而Proton是基於「Wine」這款軟體研發而來的。相關文章:Wine指令使用教學

一個Proton的環境並不會包含其他常見的Windows系統軟體(例如Windows Media Player),但有程式就是會用到,這就是為什麼需要使用ProtonTricks自行安裝exe的緣故。

根據Steam官方文件的說明,每個Windows遊戲第一次啟動的時候都會建立Proton Prefix。

Proton使用了Wine的Wine Prefix功能來建立多個Windows環境,這裡叫做Proton Prefix。你可以將Proton Prefix想成是給每個Windows程式都建立一個C槽 (容器),每個Proton Prefix的資料夾都是獨立的,確保exe之間不會互相干擾。並且使用者調整某個遊戲設定的時候,不會破壞其他遊戲的設定。

遊戲資料與Proton Prefix通常是分開放的,不過也有遊戲會把資料放到假C槽的本機磁碟,例如drive_c/users/steamuser/AppData/

下圖是Proton Prefix的結構,每個資料夾的數字對應一個Steam遊戲ID,每個資料夾下面都有自己的C槽和設定檔。

預設Steam的Proton Prefix路徑位於~/.steam/steamapps/compatdata/Steam遊戲ID/pfx/。 + Flatpak版Steam的Proton Prefix路徑位於~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/compatdata/Steam遊戲ID/pfx/

其實仔細觀察,Proton Prefix所在的路徑就是Steam遊戲收藏庫的位置。如果你有多個遊戲收藏庫,位於不同硬碟,則Proton Prefix的位置也會跟著變。

1. ProtonUp-QT用法
#

原始碼位於Github

這款工具能夠下載不同開發者維護的Wine,並將其套用至Steam、Lutris、Bottles環境。

其中,Proton-GE是開源社群維護的Proton,開發進度較官方Proton快,內含一些修補程式,或許可以提昇遊戲性能。

  1. 透過Flatpak安裝ProtonUp-QT。它會自動偵測Steam收藏庫的目錄,包含原生版與Flatpak版。
flatpak --user install flathub net.davidotek.pupgui2
  1. 如果Steam用Flatpak安裝,可能要賦予ProtonUp-QT讀取Steam收藏庫目錄的權限:
flatpak --user override --filesystem="~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps" net.davidotek.pupgui2
  1. 在應用程式列表找到ProtonUp-QT,開啟後應該會偵測到Steam的路徑

  2. 點選「新增版本」下載要使用的Proton

  3. 下載完之後,點選「顯示遊戲列表」,給個別Steam遊戲設定要使用哪個Proton版本,之後按下套用(回到Steam的界面再設定也可以)

2. Protontricks用法
#

原始碼位於Github

Protontricks功能等同Winetricks,可以給Proton容器安裝字型、調整字型大小、安裝額外exe或dll(例如Windows Media Player)、打patch(打補丁)、修改登錄檔、啟動命令提示字元、強制遊戲視窗化等等操作。

  1. 透過Flatpak安裝。它會自動偵測Steam收藏庫的目錄,包含原生版與Flatpak版。
flatpak --user install flathub com.github.Matoking.protontricks
  1. 可能要賦予讀取Steam收藏庫目錄的權限。(如果你的遊戲不是裝在Steam預設的收藏庫目錄,那麼也要另外賦予讀取權限)
flatpak --user override --filesystem="~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps" com.github.Matoking.protontricks
  1. Protontricks圖形界面啟動後,會要你選擇Steam遊戲的容器再操作。如果列表看不到你要的遊戲,請在Steam收藏庫對遊戲按下右鍵,啟用Proton,並且啟動過一次遊戲再試試。

  2. 接下來會跳出面板,按確定執行操作,按取消關閉ProtonTricks。

名字很明顯的我就不講了,常用的選項如下:

  • 安裝一個Windows應用或.dll:快速安裝.Net framework、DirectX、Windows Media Player、Winrar等軟體。有些exe安裝的時候沒有進度條,需要等選取Wine容器的選單重新跳出來才代表exe安裝完成。

  • 安裝字型:安裝Windows系統的字型,例如程式無法顯示中日韓文的話,就裝cjkfonts

  • 修改設定:調整Wine的環境,例如模擬其他Windows版本

  • 執行Wine設定程式:也就是winecfg,在這裡可以設定字體大小(螢幕解析度DPI),勾選「模擬一個虛擬桌面」的話則會在啟動程式前開一個虛擬桌面出來,讓全螢幕的遊戲改成視窗化執行。

  1. 遊戲打補丁通常得透過exe操作。在你下載好補丁程式後,於Linux系統檔案管理器對exe按右鍵,選擇以Protontricks Launcher開啟,再選取遊戲程式的容器,即可將補丁安裝到那個遊戲的目錄。

Protontricks也可以用protontricks指令來操作,方便觀察下載進度。語法參考Winetricks

Flatpak版執行指令的語法如下,例如給Steam ID為15320的遊戲容器,安裝cjkfonts字型

flatpak run --command=protontricks com.github.Matoking.protontricks 15320 cjkfonts

或者透過protontricks-launch指令,執行任意exe:

flatpak run com.github.Matoking.protontricks --command=protontricks-launch "exe路徑"

如果安裝exe的時候出現Unknown arg...錯誤,代表Protontricks版本太舊,可能得等作者更新。

3. 重置遊戲的Proton Prefix環境
#

如果你用ProtonTricks安裝太多有的沒的,致使遊戲出現問題,你可能要考慮重新建立Proton環境。換言之,就是刪除整個Proton Prefix環境與假C槽。

警告:這可能會刪除遊戲存檔,請確保該遊戲有使用Steam雲端存檔的功能,而非將存檔都保存在本機磁碟。

  1. ~/.steam/steamapps/compatdata/目錄,依照Steam遊戲ID找到遊戲的假C槽目錄。

  2. 刪除該目錄,或者暫時移動到其他地方。

  3. 在Steam重新啟動遊戲,就會自動建立新的Proton Prefix。

相關文章

如何在Linux執行Windows exe檔,用Bottles管理多版本的Wine容器
分類   Linux系統 Linux好用軟體
標籤   Bottles for Linux Wine Steam Deck Flatpak
Linux玩Windows的Galgame遊戲的一些方法
分類   Linux系統 Linux玩遊戲
標籤   Visual Novel Wine Steam
用Box86 + chroot在ARM Linux手機玩Steam遊戲
分類   Linux系統 Linux玩遊戲
標籤   Box86 Box64 PinePhone Wine Steam Mobian

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。