寫在前面
筆者作為80后蛋叼,至今仍然對于青春時代曾經(jīng)伴隨著我們的經(jīng)典游戲念念不忘焊傅。暗黑破壞神剂陡、魔獸爭霸、重返德軍總部狐胎。鸭栖。。那畢竟是我們這一代的青春握巢。即使我現(xiàn)在玩不動了晕鹊,但筆記本電腦中依然保留著這些游戲,偶爾玩一下懷念懷念也好镜粤。
我的筆記本現(xiàn)在已經(jīng)換成 MacBook Pro捏题,運行著 macOS Catalina 操作系統(tǒng),曾經(jīng)的經(jīng)典游戲常規(guī)的方法依然無法繼續(xù)運行了肉渴。當然你可能會說公荧,安裝一個虛擬機系統(tǒng),里面跑一個 Windows XP 也可以玩了同规。這當然可以做到循狰,但是它太重了,而且中間隔著一個虛擬化層券勺,運行效率自然不高绪钥。作為搞 IT 的,怎么可以止步于此关炼?
本次介紹一種使用 Wine 運行經(jīng)典游戲的方法程腹,教程適用于 macOS 操作系統(tǒng),但思路也適用于 Linux儒拂。
Wine 簡介
來自維基百科:Wine通過提供一個兼容層來將Windows的系統(tǒng)調用轉換成與POSIX標準的系統(tǒng)調用寸潦。它還提供了Windows系統(tǒng)運行庫的替代品和一些系統(tǒng)組件的替代品。為了避免著作權問題社痛,Wine主要使用黑箱測試逆向工程來編寫见转。
說白了 Wine 和虛擬機的玩法有本質上的區(qū)別,Wine 是操作系統(tǒng)層的 API 調用轉換蒜哀,并沒有虛擬層斩箫,因此運行效率上比虛擬機方式會高很多。
macOS 下安裝 Wine
本次我們將使用 Homebrew 來安裝 Wine撵儿,Homebrew 是 macOS 下最流行的包管理器乘客,如果您還沒有安裝 Homebrew,請訪問 Homebrew 官網(wǎng)詳細了解淀歇,或者直接在終端使用以下命令進行安裝:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
接下來我們使用 Homebrew 來安裝 Wine:
$ sudo spctl --master-disable # 允許未知來源的軟件安裝
$ brew tap gcenx/wine
$ brew cask install --no-quarantine wine-crossover
配置 Wine
我們的目標是運行 Windows 下的經(jīng)典游戲寨典,因此此處所有的配置都是針對這個目標進行的。
1. 初始化 Wine
我們準備將 Wine 的主目錄存儲在 $HOME/.wine/
下房匆,在終端執(zhí)行一下命令:
$ WINEARCH=win32 WINEPREFIX=$HOME/.wine winecfg
此時 WIne 會啟動一個包含若干標簽頁的配置窗口,我們需要設置以下內容:
標簽頁 | 屬性 | 值 | 備注 |
---|---|---|---|
Applications | WIndows Version | Windows XP | |
Libraries | New override for library | ddraw | 然后點擊 Add 按鈕添加 |
配置窗口截圖如下所示:
設置完成之后,點擊 OK
按鈕保存設置浴鸿,此時 Wine 的主目錄 $HOME/.wine
的目錄結構看起來是這樣的:
.
├── dosdevices
│ ├── c: -> ../drive_c
│ └── z: -> /
├── drive_c
│ ├── Program Files
│ ├── ProgramData
│ ├── users
│ └── windows
├── system.reg
├── user.reg
└── userdef.reg
至此井氢,Wine 所有的安裝和配置工作全部結束,接下來就是如何在 Wine 中運行經(jīng)典的游戲了岳链。
2. 解決中文亂碼
在終端的 shell 配置文件中為 wine
添加別名:
alias wine="env LC_ALL=zh_CN.UTF-8 wine"
3. 環(huán)境變量配置
# Fix error `terminals database is inaccessible` for Wine Crossover 20.x
export TERMINFO=/usr/share/terminfo
# 禁止在終端輸出所有調試信息
export WINEDEBUG=-all
# Wine 主目錄
export WINEPREFIX=~/.wine
# 運行 32 位的 Windows
export WINEARCH=win32
4. 配置暗黑破壞神II
我們以 Diablo II 為例來進行說明花竞,首先進入目錄 $HOME/.wine/drive_c
,然后新建目錄 games
:
$ cd $HOME/.wine/drive_c
$ mkdir games
之后掸哑,下載免安裝版的 Diablo II 游戲到 $HOME/.wine/drive_c/games/Diablo II
约急,相信你可以很容易下載到的 :)
然后打開注冊表,增加注冊表項 KEY_CURRENT_USER\Software\Blizzard Entertainment\Diablo II\VideoConfig
并設置該項的類型為 REG_DWORD苗分,值為 0
:
在終端啟動 Diablo II:
$ alias d2="cd $HOME/.wine/drive_c/games/Diablo\ II && wine Game.exe -w -direct -txt"
$ d2
至此厌蔽,Diablo II 的基本設置就已經(jīng)全部完成,其他的經(jīng)典游戲步驟類似摔癣,筆者已經(jīng)測試通過了如下經(jīng)典游戲:
- 暗黑破壞神 II
- 重返德軍總部
- 仙劍奇?zhèn)b傳四
- 魔獸爭霸 III (過場動畫會報錯)
- 街機模擬器fbaxp
附錄:終端環(huán)境配置匯總
$HOME/.zshrc
或者 $HOME/.bashrc
# Fix error `terminals database is inaccessible` for Wine Crossover 20.x
export TERMINFO=/usr/share/terminfo
# 禁止在終端輸出所有調試信息
export WINEDEBUG=-all
# Wine 主目錄
export WINEPREFIX=~/.wine
# 運行 32 位的 Windows
export WINEARCH=win32
export WINEGAMEHOME="$WINEPREFIX/drive_c/games"
alias wine="env LC_ALL=zh_CN.UTF-8 wine"
alias d2="cd $WINEGAMEHOME/Diablo\ II && wine Game.exe -direct -txt"
alias rtcw="cd $WINEGAMEHOME/RealRTCW/Return\ to\ Castle\ Wolfenstein && wine RealRTCW.x86.exe"
alias fba="cd $WINEGAMEHOME/fba && wine fbaxp.exe"
alias pal4="cd $WINEGAMEHOME/PAL4 && wine PAL4.exe"
alias pal4cfg="cd $WINEGAMEHOME/PAL4 && wine Config.exe"
alias war3="cd $WINEGAMEHOME/Warcraft\ III && wine Frozen\ Throne.exe"