在 Linux 上玩遊戲2 === 前篇: [在 Linux 上玩 RPG 製作大師的遊戲](https://hackmd.io/s/Sk_LHAfog) [toc] ## 理由 主要有三個理由寫這篇: 1. POL 依賴的 wxPython 跟 wine 1.6 已經非常老了 2. 新遊戲跑不起來 3. 安裝依賴沒辦法自動化 ## 環境 理論上 Linux 環境應該都可以,本文使用的環境是 **Linux Mint 18.3 (Ubuntu 16.04)** 為了怕版本不同介面不一樣,本文會特別寫上撰寫時的最新版本 ## 第一步 — 安裝主要工具 ### Wine 官網: https://www.winehq.org/download [![](https://i.imgur.com/GrA8il7.png)](https://www.winehq.org/download) 選擇 **Ubuntu** :::info 根據自己的作業系統選擇安裝教學,因為我用的是 **Linux Mint 18.3 (Ubuntu 16.04)** ,所以選 **Ubuntu** ::: 安裝時有三種不同的版本可以選擇,這邊選 **Staging** ![](https://i.imgur.com/RXJWlmr.png) 用`wine --version`檢查是否安裝成功 ```shell $ wine --version wine-2.21 (Staging) ``` ### Winetricks GitHub: https://github.com/Winetricks/winetricks 基本上跟著官網教學做即可 ```shell $ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks $ chmod +x winetricks $ sudo mv winetricks /usr/local/bin ``` 用`winetricks --version`檢查是否安裝成功 ```shell $ winetricks --version 20171222-next - sha256sum: 01ebb56d22f54467343700eedfe283d82a47e67bbb6c2d68b7da743f41bb78a3 ``` ## 第二步 — 設置虛擬環境 如果有使用前面的教學,應該知道我們安裝都會先創造一個虛擬環境(在 POL 叫**虛擬磁碟**),這邊一樣需要創一個虛擬環境作為容器,但這邊更簡單,只要創造一個資料夾就好了。 假設我們要讓 `~/GameVM` 作為容器 ```shell $ mkdir ~/GameVM # 建立資料夾 $ export WINEPREFIX=~/GameVM # 讓環境變數 WINEPREFIX 指向該資料夾 ``` 如果要每次都指向該資料夾可以寫到 .bashrc (或 .zshrc, ...) 裡面 ## 第三步 — 安裝 Windows 函式庫 這是之前最痛苦的步驟,只能一個安裝完才能點下一個繼續安裝,現在可以指定好一次安裝! ```shell $ echo $WINEPREFIX # 確認 WINEPREFIX 有設定好,重要! /home/<你的名字>/GameVM $ winetricks d3dx10 \ d3dx9 \ devenum \ dinput8 \ dinput \ directmusic \ directplay \ directx9 \ dsound \ dxdiagn \ dxdiag \ gmdls \ mfc40 \ cjkfonts \ corefonts ``` 當然也可以用 GUI 來操作! ```shell $ winetricks # 打開 winetricks GUI 界面 ``` 選擇 **選取預設的 wine 容器** ![](https://i.imgur.com/u66jp2h.png) 選擇 **裝載 Windows DLL 或套件** (確認上面的路徑是正確的 **WINEPREFIX**) ![](https://i.imgur.com/mhZ2AMp.png) 然後將以下的勾起來 - [x] d3dx10 - [x] d3dx9 - [x] devenum - [x] dinput - [x] dinput8 - [x] directmusic - [x] directplay - [x] directx9 - [x] dsound - [x] dxdiag - [x] dxdiagn - [x] gmdls - [x] mfc40 完成後點**裝載字體** ,然後將以下的勾起來 - [x] cjkfonts - [x] corefonts ## 其他細節 * Q: 還是沒講怎麼打開遊戲阿? ``` $ wine *.exe ``` * Q: 日文遊戲亂碼 確認 `locale -a` 裡有沒有日文 ```shell $ locale -a C # en_XX.utf8 # ... ja_JP.utf8 # ... ``` 沒有則下載語言包 (下載好確認 `locale -a`) ``` $ apt install language-pack-ja ``` 然後 ``` $ LANG=ja_JP.utf8 $ wine *.exe # 或是 $ LANG=ja_JP.utf8 wine *.exe # 或是 $ alias wine.jp='LANG=ja_JP.utf8 wine' $ wine.jp *.exe ``` * Q: 說好的自動化? 懶得寫,有人願意幫忙可以告訴我 (vbnm123c小老鼠gmail點com) ## 舉個 :chestnut: ![](https://i.imgur.com/qMkhjzr.png) ## 資源參考 - https://wiki.archlinux.org/index.php/Wine - https://wiki.winehq.org/Winetricks