Skip to content

Pop!_OS 上執行 Windows 日系遊戲(Bottles / Wine)

在 Pop!_OS 上使用 Bottles(Flatpak)建立隔離的 Wine 環境執行免安裝 .exe 日系遊戲,解決亂碼、locale 與 GPU 切換問題。

概述

Linux 上執行 Windows 遊戲有多種方案:Bottles、Lutris、直接 Wine、Steam Proton。對於小眾日系 .exe 遊戲(Visual Novel、RPGMaker、同人遊戲等),Bottles 是最佳選擇:

方案優點缺點
BottlesUI 直覺、環境隔離好、內建依賴管理、Flatpak 安裝乾淨啟動鏈稍長
Lutris社群腳本豐富小眾遊戲無腳本,優勢消失;UI 較老派
直接 Wine最輕量需自行管理 prefix、runtime 版本,維護成本高
Steam + Proton內建相容性修正主要針對 Steam 遊戲優化,設定彈性差

Bottles 每個遊戲可建立獨立隔離的 Wine bottle,依賴互不干擾;內建依賴管理(cjkfonts、vcredist、d3dx 等),無需手動 winetricks;並內建 Steam 捷徑功能,可整合到 Steam 遊戲庫。

核心內容

日文 Locale 的必要性

許多日系遊戲在非日文 locale 下會發生兩種問題:

  1. 文字亂碼:遊戲以 Shift-JIS 或 EUC-JP 編碼顯示文字,locale 不符時亂碼
  2. 直接 crash:部分遊戲在初始化時強制檢查系統 locale,非日文時拒絕啟動

解決方式是在 Bottle 的環境變數設定 LANG=ja_JP.UTF-8 + LC_ALL=ja_JP.UTF-8,讓 Wine 環境以日文 locale 運行,而不影響宿主 Linux 系統的語言設定。

老舊遊戲使用 Shift-JIS 編碼(Windows ANSI code page 932)時,有時只換 locale 還不夠,需要嘗試不同 Wine runner 版本,或加入 WINEDLLOVERRIDES 設定強制覆蓋特定 DLL。

Wine Runner 選擇

Bottles 支援多種 Wine runner:

  • Soda:Bottles 官方 fork,針對現代遊戲最佳化,建議優先嘗試
  • Caffe:另一個常用 runner,部分老遊戲相容性較好
  • GE-Proton:Steam Proton 的社群 fork,可在 Bottles 中使用,某些 DirectX 遊戲相容性最佳

建議先用 Soda,遇到相容性問題再嘗試 Caffe 或特定版本的 GE-Proton。每個 bottle 可獨立設定 runner,不影響其他遊戲。

獨顯強制指定(雙 GPU 筆電)

Pop!_OS 對 NVIDIA 支援良好,但 Optimus 筆電預設可能讓遊戲跑在核顯上,效能低落。強制使用獨顯有兩種方式:

  1. 系統列切換:Pop!_OS 內建 GPU 切換(需重新登入,全局生效)
  2. 環境變數(即時切換):在 Bottle 中設定 NVIDIA 環境變數,不需重新登入,只影響該 bottle

加入 Steam 的注意事項

將 Bottles 遊戲加入 Steam 時,不能在 Steam 屬性中勾選「Force the use of a specific Steam Play compatibility tool」。Bottles 已自帶 Wine runtime;疊加 Proton 會造成兩套 Wine 衝突,導致遊戲無法啟動或行為異常。

啟動鏈為:Steam → Flatpak → Bottles → Wine → game.exe。Steam Overlay 因為在 Wine 內部,截圖和 FPS 顯示等功能通常無法正確注入。

關鍵要點

  • LANG=ja_JP.UTF-8LC_ALL=ja_JP.UTF-8 是日系遊戲的必設環境變數
  • cjkfonts dependency 是日文顯示的最基本要求
  • Bottles 各 bottle 間完全隔離,每個遊戲建一個 bottle 是最佳實踐
  • Steam 捷徑中不要勾選 Proton,避免與 Bottles 內建 Wine 衝突
  • Bottles 與 Lutris 可並存,互不衝突

實際應用

此設定適用於:

  • 免安裝日系 .exe 遊戲(Visual Novel、同人遊戲、RPGMaker 等)
  • Pop!_OS(Ubuntu 系)+ NVIDIA 獨顯環境
  • 需要將 Wine 遊戲整合到 Steam 遊戲庫管理

部署設定參考

以下為實際部署時使用的完整設定,供日後查詢與複製使用。

環境參數

項目
作業系統Pop!_OS(獨立 GPU 筆電)
安裝方式Flatpak(Flathub)
RunnerSoda 或 Caffe
Bottle 類型Gaming
目標遊戲類型免安裝 .exe 日系遊戲

安裝指令

bash
flatpak install flathub com.usebottles.bottles

必要依賴(Bottle → Dependencies 頁面)

依賴用途必要性
cjkfonts日文字型必裝
vcredistVisual C++ Runtime多數遊戲需要
d3dxDirectX有圖形介面的遊戲
dotnet.NET Framework部分遊戲需要

必要環境變數(Bottle → 設定 → 環境變數)

LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8

NVIDIA 獨顯強制環境變數(選用,雙 GPU 筆電)

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia
__VK_LAYER_NV_optimus=NVIDIA_only

手動補強字型(若 cjkfonts 不足)

手動複製 Windows 字型到:

<Bottle路徑>/drive_c/windows/Fonts/

常用字型:msgothic.ttc(MS Gothic)、meiryo.ttc(Meiryo)、msmincho.ttc(MS Mincho)

Steam 手動捷徑指令

flatpak run --command=bottles-cli com.usebottles.bottles run -b "你的Bottle名稱" -e "/path/to/game.exe"

問題排查表

症狀可能原因解法
文字亂碼缺日文 locale 或字型確認 LANG=ja_JP.UTF-8 + 安裝 cjkfonts
啟動後立即 crash缺依賴(vcredist / d3dx)在 Dependencies 補裝
畫面全黑但有聲音GPU 未正確使用獨顯加入 NVIDIA 環境變數
老遊戲 Shift-JIS 亂碼編碼不相容嘗試不同 Wine runner 版本,或加 WINEDLLOVERRIDES
Bottles 調不動相容性問題換 Runner 版本,或改用 Lutris + 不同 Wine build

相關概念

來源