2020年3月7日 星期六

在 Mac 中安裝 Diable 1 MOD 安裝

測試環境
macOS : 10.14.6
Wine: 5.0
Diable 1 MOD: 1.045
https://mod.diablo.noktis.pl/download

參考安裝方法
https://www.youtube.com/watch?v=Td8PiAYQdrs&t=276s

步驟:
1) 安裝 wine (需要先裝 xquartz 再裝 wine 主程式)
https://wiki.winehq.org/MacOS

# brew cask install xquartz
# brew cask install wine-stable



2) 掛載 diablo 1 ISO
需要有 diable 1 ISO 檔 (不是資料片),diable 1 mod 是依照 diable 主程式去模改的。所以如果沒有 diable 1 ISO 就沒有辦法繼續安裝 mod 程式。

(1) Double click diablo ISO 檔,Mac 中 finder 介面會出現 "遠端光碟"。 df -k 可以看到 ISO 掛在 /Volumes/DIABLO 。
# df -k
...
/dev/disk2         585470   585470         0   100%       0                   0  100%   /Volumes/DIABLO


3) 啟動 wine
用 brew 安裝完 wine 後, 程式在 /usr/local/bin/wine,APP 也會出現 "Wine Stable" 的圖示,double click 圖示會呼叫 terminal 並提供一個簡單的說明:

----
################################################################################
#                           Wine Is Not an Emulator                            #
################################################################################

 Welcome to wine-5.0.

 In order to start a program:
   .exe: wine program.exe
   .msi: wine msiexec /i program.msi

 If you want to configure wine:
   winecfg

 To get information about app compatibility:
   appdb Program Name
----


4) 使用 wine 安裝 diablo 1
在 terminal 中執行以下的命令啟動光碟中的安裝程式,安裝主程式即可,無需分裂安裝。安裝完後會自動開始執行遊戲,這時遊戲會卡住,需要強制退出,此為正常的現象。
安裝完模改後程式才能使用 wine 正常執行。
# wine /Volumes/DIABLO/SETUP.EXE


5) 下載模改檔案並安裝
模改可以從下面網址下載:
https://mod.diablo.noktis.pl/download

模改是一個 zip 檔案,下載完後解壓縮,並把解壓目錄中的所有檔案覆蓋到 diablo 1 的安裝目錄。wine 安裝好 diablo 後,diablo 預設會放在 c:\Diablo 目錄中,而 wine 的 C 槽是對應到 Mac 的 ~/.wine/drive_c ,所以實際上安裝目錄在 ~/.wine/drive_c/Diablo 。
另外,為了模改執行時不需要讀取光碟的原始檔案,需要從光碟的目錄複製 DIABDAT.MPQ 到安裝目錄中。
因此需要有下的動作:

(1) 下載後的模改檔案,檔名應該長得像這樣 " Release1045.zip ",在 finder 中可以對檔案點選右鍵,選擇 "打開" 解壓縮。解壓縮完後會在相同目錄下產生 Release1045 為檔名的目錄。例如: ~/Desktop/Release1045

(2) 把模改檔案複製到 Diablo 1 安裝目錄
# cp ~/Desktop/Release1045/* ~/.wine/drive_c/Diablo

(3) 把 DIABDAT.MPQ 複製到安裝目錄
# cp /Volumes/DIABLO/DIABDAT.MPQ ~/.wine/drive_c/Diablo


6) 然後嘗試用 wine 啟動模改執行檔
# wine ~/.wine/drive_c/Diablo/Belzebub.exe




執行的時候遇到錯誤 " Creative video stream soundobject,, OpenAL invalid ID. "
從這三篇文章知道是音效驅動 dll 的問題
https://forum.diablo.noktis.pl/search.php?keywords=OpenAL+invalid+ID
https://forum.diablo.noktis.pl/viewtopic.php?f=3&t=1969&p=12451&hilit=OpenAL+invalid+ID#p12451
https://appdb.winehq.org/commentview.php?iAppId=73&iVersionId=3498&iThreadId=95358

7) 下載 OpenAL 1.1 driver
從這個網站下載 OpenAL 檔案,可以從 Download 部分找到 Win32 and Win64 的檔案下載網址,檔名長得像 "openal-soft-1.20.1-bin.zip" (版本可能不同)。
https://kcat.strangesoft.net/openal.html

下載完後解壓縮,並把目錄中的 soft_oal.dll 取代掉 diablo 1 安裝目錄中的 wrap_oal.dll。例如
# mv ~/.wine/drive_c/Diablo/wrap_oal.dll ~/.wine/drive_c/Diablo/wrap_oal.dll.old
# cp ~/Desktop/openal-soft-1.20.1-bin/bin/Win32/soft_oal.dll  ~/.wine/drive_c/Diablo/wrap_oal.dl

覆蓋完成後就可以再次啟動 模改檔案
# wine ~/.wine/drive_c/Diablo/Belzebub.exe