Appearance
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 是最佳選擇:
| 方案 | 優點 | 缺點 |
|---|---|---|
| Bottles | UI 直覺、環境隔離好、內建依賴管理、Flatpak 安裝乾淨 | 啟動鏈稍長 |
| Lutris | 社群腳本豐富 | 小眾遊戲無腳本,優勢消失;UI 較老派 |
| 直接 Wine | 最輕量 | 需自行管理 prefix、runtime 版本,維護成本高 |
| Steam + Proton | 內建相容性修正 | 主要針對 Steam 遊戲優化,設定彈性差 |
Bottles 每個遊戲可建立獨立隔離的 Wine bottle,依賴互不干擾;內建依賴管理(cjkfonts、vcredist、d3dx 等),無需手動 winetricks;並內建 Steam 捷徑功能,可整合到 Steam 遊戲庫。
核心內容
日文 Locale 的必要性
許多日系遊戲在非日文 locale 下會發生兩種問題:
- 文字亂碼:遊戲以 Shift-JIS 或 EUC-JP 編碼顯示文字,locale 不符時亂碼
- 直接 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 筆電預設可能讓遊戲跑在核顯上,效能低落。強制使用獨顯有兩種方式:
- 系統列切換:Pop!_OS 內建 GPU 切換(需重新登入,全局生效)
- 環境變數(即時切換):在 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-8和LC_ALL=ja_JP.UTF-8是日系遊戲的必設環境變數cjkfontsdependency 是日文顯示的最基本要求- Bottles 各 bottle 間完全隔離,每個遊戲建一個 bottle 是最佳實踐
- Steam 捷徑中不要勾選 Proton,避免與 Bottles 內建 Wine 衝突
- Bottles 與 Lutris 可並存,互不衝突
實際應用
此設定適用於:
- 免安裝日系 .exe 遊戲(Visual Novel、同人遊戲、RPGMaker 等)
- Pop!_OS(Ubuntu 系)+ NVIDIA 獨顯環境
- 需要將 Wine 遊戲整合到 Steam 遊戲庫管理
部署設定參考
以下為實際部署時使用的完整設定,供日後查詢與複製使用。
環境參數
| 項目 | 值 |
|---|---|
| 作業系統 | Pop!_OS(獨立 GPU 筆電) |
| 安裝方式 | Flatpak(Flathub) |
| Runner | Soda 或 Caffe |
| Bottle 類型 | Gaming |
| 目標遊戲類型 | 免安裝 .exe 日系遊戲 |
安裝指令
bash
flatpak install flathub com.usebottles.bottles必要依賴(Bottle → Dependencies 頁面)
| 依賴 | 用途 | 必要性 |
|---|---|---|
cjkfonts | 日文字型 | 必裝 |
vcredist | Visual C++ Runtime | 多數遊戲需要 |
d3dx | DirectX | 有圖形介面的遊戲 |
dotnet | .NET Framework | 部分遊戲需要 |
必要環境變數(Bottle → 設定 → 環境變數)
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8NVIDIA 獨顯強制環境變數(選用,雙 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 |
相關概念
- WSL 2 安裝指南(Windows 11) — 在 Windows 執行 Linux 的互補方案(反向)