在 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://www.winehq.org/download)
選擇 **Ubuntu**
:::info
根據自己的作業系統選擇安裝教學,因為我用的是 **Linux Mint 18.3 (Ubuntu 16.04)** ,所以選 **Ubuntu**
:::
安裝時有三種不同的版本可以選擇,這邊選 **Staging**

用`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 容器**

選擇 **裝載 Windows DLL 或套件** (確認上面的路徑是正確的 **WINEPREFIX**)

然後將以下的勾起來
- [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://wiki.archlinux.org/index.php/Wine
- https://wiki.winehq.org/Winetricks