steamdeck使用protontricks打遊戲補丁

steamdeck使用protontricks打遊戲補丁1. protontricks簡介1.1  什麼是protontricks

protontricks是Winetricks命令的包裝器,用來支持proton環境下運行的遊戲(steam遊戲和非steam遊戲)。每個proton環境下運行的遊戲首次運行時都會創建一個以數字命名(gameID)的目錄,然後將這個目錄下的driver_c掛載到windows環境下的C盤,再運行exe程序。而protontricks的功能就是可以通過輸入gameID找到該遊戲對應的pronton環境(C盤目錄以及proton的版本),在該環境上運行exe遊戲程序。詳見《4. proton的運行架構》一節。

若不使用protontricks的可以看我的另一篇教程《steamdeck運行遊戲時同時開修改器(使用任務管理器)》: https://www.bilibili.com/read/cv21078466,protontricks的打補丁等基本功能都可以使用任務管理器實現。

2. protontricks的簡單使用2.1 protontricks的安裝與配置

在桌面系統的商店安裝」protontricks」 和 「flatseal」

flatseal protontricks

用 flatseal 給 protontricks 分配所有的文件系統訪問許可權

分配文件許可權

2.2 在protontricks打遊戲補丁之前

在使用protontricks打遊戲補丁之前,對應非steam遊戲,我們必須使用steam客戶端添加一個"非steam遊戲"。選擇對應遊戲的exe, 保存。

添加非steam遊戲

勾選"強制使用兼容層",這里推薦使用GE-Proton

強制使用兼容層

把遊戲運行一下,然後關掉,這樣就初始好該遊戲的沙盒環境了

初始化遊戲的沙盒環境

2.3 使用protontricks給遊戲打補丁

右鍵"遊戲補丁.exe", 選擇protontricks打開.

使用protontricks打開補丁

選擇需要打補丁的遊戲, 點"OK"完成打補丁

選擇目標遊戲

=============== 以下的部分偏技術,有點硬核,請斟酌食用 ==============

3. protontricks的高級使用3.1 在命令行中使用(在konsole中執行)

安裝protontricks命令

echo "alias protontricks='flatpak run com.github.Matoking.protontricks'" >> ~/.bashrc

之後關閉konsole並重開konsole

獲取遊戲ID

kong@ubuntu:~$ protontricks  -lFound the following games:Non-Steam shortcut: taskmgr.exe (4290865737)Non-Steam shortcut: windows app (3758420005)Plants vs. Zombies: Game of the Year (3590)

使用圖片界面運行winetricks

在windows app沙盒環境內 以圖形界面的方式運行winetricksprotontricks  3758420005  --gui

在指定遊戲的沙盒環境內運行winetricks命令

# 在windows app沙盒環境內 運行注冊表, 3758420005之後的參數直接傳給winetricksprotontricks  3758420005  regedit# 在windows app沙盒環境內 運行任務管理器, 3758420005之後的參數直接傳給winetricksprotontricks  3758420005  taskmgr# 在windows app沙盒環境內 安裝d3dx9 DLL庫, 我們常用該方式給遊戲安裝缺失的動態庫protontricks  3758420005  d3dx9

在指定遊戲的沙盒環境內運行linux命令

這里可以直接使用pronton兼容層內的wine.

# 在windows app沙盒環境內: 使用wine啟動注冊表protontricks -c "wine regedit" 3758420005# 在windows app沙盒環境內: 使用wine啟動終端應用protontricks -c "wine wineconsole.exe" 3758420005# 在windows app沙盒環境內: 使用wine啟動exe應用protontricks -c "wine Z:\\\\home\\deck\\your_path.exe" 3758420005# 在windows app沙盒環境內: 使用wine的wineconsole.exe安裝bat腳本protontricks -c "wine wineconsole.exe Z:\\\\home\\deck\\your_path.bat" 3758420005

3.2 winetricks功能

protontricks是一個proton環境下的winetricks包裝器,winetricks擁有的功能,protontricks都能實現,而winetricks的功能主要為: 1. 安裝dll庫;  2.安裝字型檔

啟動winetricks

protontricks  3758420005  --gui

winetricks功能清單3.3 protontricks的心得3.3.1 使用代理加快winetricks上dll, 字體庫的安裝速度

# 這里的IP與埠改成實際的代理埠export http_proxy="http://127.0.0.1:10809"export https_proxy="http://127.0.0.1:10809"# 啟動winetricksprotontricks  3758420005  --gui

3.3.2 protontricks運行遊戲與steam客戶端運行遊戲有何區別?

桌面模式下, protontricks可以直接打開exe遊戲,但兼容性可能不及使用steam客戶端運行遊戲;

兩者運行的環境變數是不一致的,有待進一步研究。

4. proton的運行架構

涉及的客戶端:

steamapp客戶端: steamos桌面系統自帶;

protontricks客戶端: 可在桌面系統discover商店下載,使用前用flatseal分配以下文件許可權.

4.1 相關概念

沙盒環境: 為保證非steam遊戲的運行環境彼此隔離獨立,減少干擾,steam os系統為每個steam遊戲創建一個以gameId隨機數字命令的沙盒環境;

proton客戶端: 包括steamapp官方客戶端和protontricks客戶端, 可以用來管理沙盒環境下的非steam遊戲;

gameId: 用來識別某個非steam遊戲的沙盒環境,但使用steamapp官方客戶端,強制使用兼容層首次運行遊戲後,steamapp客戶端會給當前遊戲創建一個由隨機數字組成的目錄,裡面放置了driver_c系統核心。

Z掛載盤: 兼容層proton運行非steam遊戲後,會把當前linux系統的根目錄(/)掛在偽windows運行環境的Z盤符上,exe程序可以在Z盤找到遊戲補丁進行安裝。

proton兼容層: 兼容層實質為wine與winetricks的封裝,加入了遊戲運行組件庫等。非steam遊戲的沙盒環境由proton創建。兼容層可以在遊戲屬性中動態切換,保證能最大程度運行遊戲。

4.2 運行非steam遊戲原理

steamos啟動非steam遊戲實質是通過proton兼容層下的wine核心,創建一個偽windows運行環境,在該環境下運行exe程序。

4.3 steam遊戲沙盒架構 proton遊戲沙盒架構

4.3.1 proton客戶端

steamapp客戶端:  steamos桌面系統提供的steam客戶端,通過該客戶端選擇一個非steam遊戲運行,強制使用兼容層,並首次運行遊戲後,可以創建一個由隨機數字組成(gameId)的目錄,裡面放置了driver_c系統核心;

protontricks客戶端: steamapp的客戶端功能比較少,一些給遊戲打補丁的操作無法實現。protontricks是wiinetricks的封裝(通過gameId指定WINE_PREFIX環境變數),它的可用功能實則就是wiinetricks的所有功能,可以進行的操作有: 1. 安裝exe運行的dll庫; 2. 安裝字體; 3. 修改注冊表; 4. 安裝exe等。protontricks是一個專業向的強大工具,一些exe遊戲的遊戲補丁都可以用它來安裝;

4.3.2 遊戲沙盒環境

一個非steam遊戲對應一個遊戲沙盒環境,放置在STEAM_COMPAT_DATA_PATH目錄(默認為/home/deck/.local/share/Steam/steamapps/compatdata/xxx)下,文件夾為一串隨機數字。

每個遊戲沙盒環境包括以下內容: 

driver_c:  當前沙盒環境下的windows系統的c盤內容,可以理解為windows系統運行的最小文件系統。exe程序可以訪問C盤訪問driver_c目錄下的內容; 

Z掛載盤: 偽windows系統啟動後,會將當前linux系統的根目錄(/)掛載在偽windows運行環境的Z盤符上,exe程序可以訪問Z盤訪問linux系統根目錄(/)的內容,這里的概念類似windows的網路掛載盤; 

注冊表: 隨機數字目錄下的system.reg和user.reg, 保存當前遊戲沙盒環境下的注冊表信息;

4.3.3 proton兼容層

兼容層實質為wine與winetricks的封裝,加入了遊戲運行組件庫等。非steam遊戲的沙盒環境由proton兼容層來創建。兼容層可以在遊戲屬性中動態切換,保證能最大程度運行遊戲。

5. 安裝一個非steam遊戲的流程5.1 安裝綠色版遊戲(無需打補丁)

使用"steam客戶端"直接添加非steam遊戲即可,然後設置強制使用兼容層,選擇"運行遊戲".

安裝綠色版遊戲

5.2 安裝綠色版遊戲(需打補丁)

該類型遊戲提供一個基礎exe文件,還有一個或多個gamePatch.exe補丁文件,需要全部安裝才能使用。

分為以下兩步:

安裝綠色版遊戲(需打補丁)

: 使用"steam客戶端"直接添加非steam遊戲, 選擇基礎game.exe即可,然後設置強制使用兼容層,選擇"運行遊戲";

打遊戲補丁: 右鍵從protontricks客戶端打開gamePatch.exe,選擇上一步創建的遊戲,在目標遊戲的沙盒環境下安裝exe;

5.3 安裝安裝版遊戲

該類型遊戲提供一個install.exe文件,需要安裝才能使用。

分為以下三步:

創建沙盒環境: 使用"steam客戶端"直接添加非steam遊戲, 隨便選擇一個exe文件,然後設置強制使用兼容層,選擇"運行遊戲";

安裝安裝版遊戲: 右鍵從protontricks客戶端打開gamePatch.exe,選擇上一步創建的遊戲,在目標遊戲的沙盒環境下安裝install.exe;

更新遊戲路徑: 使用steam客戶端將遊戲的啟動目標改為上一步的遊戲安裝文件夾內的遊戲exe;

隨便看看 更多

相關內容 更多