快轉到主要內容

樹莓派玩Windows遊戲,Box86+Steam安裝教學

分類   Linux系統 Linux玩遊戲
標籤   Steam Box86 Box64 Raspberry Pi
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

本文Ivon討論如何在ARM架構的樹莓派跑x86架構的Steam客戶端,遊玩x86架構的Windows遊戲。

這裡講的不是安裝Steam Link遠端串流,而是真正在樹莓派直接跑遊戲。嗯?這塊小板子的硬體撐得住嗎?可以的,樹莓派4代以後就能玩2D遊戲了,5代要玩些3D小遊戲更是沒問題。

圖例:在Raspberry Pi 5遊玩《Helltaker》遊戲

圖例:在Raspberry Pi 5遊玩《POSTAL 2》遊戲

同樣是Linux系統,樹莓派的Steam安裝過程會比在一般Linux電腦複雜,因為Steam的遊戲大部分都是x86架構,就連Steam客戶端本身也只支援x86架構,那麼在以ARM為主的樹莓派Linux系統便會遇到無法執行的難題。

所幸現在有了轉譯方案,我們可以透過ptitSeb研發的開源Box86與Box64程式,讓x86架構的遊戲程式能在ARM架構的系統上執行,效能還不會損失太多!

1. 測試環境
#

  • Raspberry Pi 5 8GB
  • Raspberry Pi OS 12 Bookworm
  • Box86 0.3.6
  • Box64 0.3.0

玩遊戲建議接上實體螢幕與鍵鼠操作。若要用遠端桌面請使用支援GPU加速的RustDesk。

2. 安裝Box86與Box64
#

請先 安裝Box86與Box64,記得向binfmt註冊。

Linux版Steam客戶端本身是32位元程式,所以必須用Box86安裝。但是很多Steam遊戲都是64位元的,所以你得裝Box64。

3. 安裝Steam客戶端
#

  1. 利用Box86原始碼儲存庫提供的指令稿即可完成安裝
cd box86

./install_steam.sh
  1. 執行Steam,Box86會自動跳出來轉譯
steam
  1. 等待依賴套件裝完。如果Steam啟動的時候崩潰,嘗試停用Steam Client WebHelper的GPU加速。

  2. 開啟後就能下載遊戲了。具體能跑什麼遊戲呢?因為這裡是用Box86轉譯執行的,請先看 Box86相容性清單,再參考電腦 ProtonDB的資料。

    Screenshot_20241013_123647.webp

  3. 如果Steam下載原生支援Linux系統的遊戲,執行的時候box86會自動跳出來轉譯。若下載Windows遊戲,請參考 Linux版Steam使用教學,到Steam設定「強制啟用相容性工具」,Steam就會在下載Winows遊戲的時候自動幫你裝好Proton相容層。

  4. 遊戲若是打不開,請觀察Steam終端機輸出的訊息,然後到Github搜尋錯誤訊息。我有遇到Steam無法按右鍵的bug,這個時候配合Shift一起按就能解決。


這裡提供另一個啟動Steam的方法,以下指令僅會開啟收藏庫的遊戲迷你列表,如此一來可減少Steam客戶端佔用的系統資源。

steam steam://open/minigameslist

另一種方法是用命令行啟動遊戲:

steam steam://rungameid/1289310

4. 3D遊戲的Vulkan問題
#

Steam的2D遊戲玩起來應該沒問題,但3D遊戲就會牽扯到Vulkan驅動。

Wine在執行Windows exe的時候會透過WINED3D將DirectX的繪圖指令轉成OpenGL;而Steam Proton因為內建DXVK,會將DirectX轉成Vulkan提供更好的效能。

Box86會自動使用宿主機Vulkan驅動,讓轉譯的遊戲支援GPU加速。

  1. 安裝以下套件取得Vulkan驅動
sudo apt install libgdm1:armhf libudev1:armhf libgl1-mesa-dri:armhf libglapi-mesa:armhf libglu1-mesa:armhf libglx-mesa0:armhf mesa-va-drivers:armhf mesa-vdpau-drivers:armhf mesa-vulkan-drivers:armhf libsdl1.2debian:armhf libegl-mesa0:armhf

sudo apt install mesa-vulkan-drivers
  1. 確認宿主機Vulkan驅動狀態
vulkaninfo --summary
  1. 可惜的是,根據Box86開發者所述,Raspberry Pi 4、Raspberry Pi5的Vulkan驅動目前尚不支援Steam Proton內建的DXVK,故需要對Steam收藏庫的遊戲按右鍵 → 內容,編輯啟動選項,設定環境變數PROTON_USE_WINED3D=1 %command%,改回使用WINED3D,也就是將DirectX轉譯為OpenGL的作法。如此遊戲才能開啟。
    Screenshot_20241013_192633.webp

另一種可能讓DXVK跑起來的方式:加入環境變數MESA_LOADER_DRIVER_OVERRIDE=zink,使用Mesa的Zink驅動,它能將OpenGL的指令轉譯成Vulkan。不過這個尚屬於實驗性驅動。

  1. 若Raspberry Pi的OpenGL版本太低,Unity遊戲可能不給跑,或是出現缺少DirectX的錯誤。這時得在啟動遊戲的環境變數加上MESA_GL_VERSION_OVERRIDE=3.2,強制覆寫系統的OpenGL版本。

  2. 如果原生支援Linux的遊戲開不起來,請讓Steam強制下載Windows版本(相容性 → 強制啟用相容性工具)再用Proton跑。

儘管做了以上措施,我發現還是有些遊戲無法執行,且把OpenGL版本提昇過高會造成遊戲圖形錯誤。

5. 安裝Protontricks與ProtonUp-QT
#

ProtonUp-QT是下載第三方維護的Proton的工具。

使用Python虛擬環境安裝:

git clone https://github.com/DavidoTek/ProtonUp-Qt.git

cd ProtonUp-Qt

python3 -m venv venv

source venv/bin/activate

pip3 install -r ./requirements.txt

sudo apt install libxcb-cursor0

執行程式:

python3 -m pupgui2

指定要下載的Proton-GE就行。

Screenshot_20241013_221556.webp

雖然Protontricks讀不到經由Box86 Steam安裝的遊戲,但是下載好Proton-GE後便能在Steam客戶端切換。

Screenshot_20241013_222112.webp


Protontricks功能等同Winetricks,方便我們安裝字體與打patch。

用pipx安裝:

sudo apt install pipx

pipx install protontricks

再用以下指令啟動:

protontricks --gui --no-bwrap

選取要修改的遊戲即可操作。

Screenshot_20241013_221817.webp

參考資料
#

相關文章

FEX-Emu安裝:樹莓派玩Steam Windows遊戲,Linux ARM平台的x86模擬器
分類   Linux系統 Linux玩遊戲
標籤   Box86 Box64 Raspberry Pi
樹莓派安裝Box64,使用Wine跑Windows exe程式
分類   Linux系統 Linux玩遊戲
標籤   Box86 Box64 Raspberry Pi Wine
DXVK Linux版安裝方法,改善Wine轉譯Windows遊戲的3D效能
分類   Linux系統 Linux玩遊戲
標籤   Vulkan Wine Steam

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

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