dosbox+wine玩老遊戲(三國志5+6) - Linux

James avatar
By James
at 2019-09-16T22:25

Table of Contents

因為幫光碟機換了皮帶所以就有了這篇心得XD

本篇所有操作都在 Arch Linux 下進行


//cd
首先從把三國志5+6遊戲光碟弄成 cue 檔開始(為了CD音軌)

# pacman -S cdrdao (有裝的可以略過)

$ cdrdao read-cd --datafile SAN5.bin --driver generic-mmc:0x20000 --device
/dev/sr0 --read-raw SAN5.toc
$ toc2cue SAN5.toc SAN5.cue
$ cdrdao read-cd --datafile SAN6.bin --driver generic-mmc:0x20000 --device
/dev/sr0 --read-raw SAN6.toc
$ toc2cue SAN6.toc SAN6.cue

等它跑完(大概要一點時間 可以喝餅吃茶XD

https://www.dosbox.com/wiki/Cuesheet
(參考這邊來讀取有CD音軌的遊戲光碟 使用時設備名稱記得改)

順利讀取完後可以得到下面這6個檔案

SAN5.bin SAN5.cue SAN5.toc
SAN6.bin SAN6.cue SAN6.toc


//dosbox
接下來從三國志5開始

# pacman -S dosbox (一樣有裝的可以略過)

vim ~/.dosbox/dosbox-0.74-3.conf

[sdl] 的部份
把"autolock=true" 改成 "autolock=false"
這個沒改的話滑鼠遊標會有點問題

[autoexec]
mount c /path/folder (看要讓 dosbox 存取哪邊)
imgmount d /path/SAN5.cue -t iso (一樣記得改路徑)

https://www.dosbox.com/wiki/MOUNT
(參考這邊來掛載)

然後就是啟動 doxbox 然後就安裝遊戲執行
其實這邊沒什麼要特別注意的地方
畢竟 dosbox 已經算是很成熟的軟體


//wine

# pacman -S wine-staging
(一樣有裝的可以略過 或是選裝穩定版的 wine 我覺得用起來差不多)

# pacman -S lib32-nvidia-utils
(顯示卡是 nvidia 的 所以裝這個)

# pacman -S lib32-libpulse
(裝這個才可以用 plasma 的音量控制)

wine 頭一次裝好後就得從設定它開始

$ WINEARCH=win32 WINEDEBUG=-all winecfg
(把 wine 環境設成 win32 然後也關掉除錯訊息)

WINEARCH=win32 只要初次建立環境時加上去就可以 參考下面網址
https://wiki.archlinux.org/index.php/Wine#WINEARCH
其實也有文章說就算建 win64 環境也可以跑 32bit 的程式
不過為了避免增加除錯的影響因素 還是選建 win32 的環境

WINEDEBUG=-all 雖然可以直接 export 放進 env
不過畢竟用 wine 還是可能會遇到要除錯的時候
所以還是選擇執行時加這個比較方便
https://wiki.winehq.org/FAQ#I_get_lots_of_.22fixme:.22_messages_in_the_terminal_and_Wine_runs_a_bit_slow

等 wine 建立好環境後
在 Applications 頁面裡的 Windows Version: 選 Windows 7 就可以
雖然老遊戲可能會覺得要設 XP 相容性會比較好(這邊設成 XP 一樣會卡住 後面會講)
不過 設成 7 還是能動我就沒設成 XP 了(因為我還有用 wine 跑其它東西)

接下來準備安裝三國志6
雖然 wine 可以直接 mount iso
可是為了 CD 音軌 還是要再裝 cdemu 才行

# pacman -S cdemu-client (一樣有裝的可以略過)
# systemctl start cdemu-daemon.service (裝好後開啟服務)

https://wiki.archlinux.org/index.php/CDemu
然後參考這篇來掛載遊戲光碟

$ cdemu load 0 /path/SAN6.cue (掛載光碟)
$ cdemu unload 0 (退出光碟)
$ cdemu status (顯示狀態)

記得不要用 sudo 掛載 用一般使用者就可以 不然只會得到 error 訊息
https://bbs.archlinux.org/viewtopic.php?id=224428
像這篇一樣XD

$ cdemu device-mapping
用這個看一下設備名稱然後隨便找個目錄 mount 它
然後就是進掛載的目錄安裝遊戲

$ WINEDEBUG=-all LANG=ja_JP.UTF-8 wine setup.exe

因為我的三國志6是日文版的
所以加上 LANG=ja_JP.UTF-8
中文版的要改用 LANG=zh_TW.UTF-8

然後就是等它安裝好

安裝好後雖然 wine 也會幫你建好 menu
不過它是根據系統 locale 建立的
像我平常都用 en_US.utf8 直接跑會亂碼

$ WINEDEBUG=-all LANG=ja_JP.UTF-8 wine SAN6.EXE
(記得先到安裝位置再執行 ~/.wine/drive_c/Program\ Files/KOEI/San6/)

所以還是用這樣來跑遊戲 也方便除錯
然後一執行就會發現跳出無法播放開頭影片
這樣是正常的(按確定後就可以進入遊戲)

因為 wine 無法處理 反斜線 的問題
不過也因為如此 要是開頭動畫能播放 反而會進不了遊戲 會卡住XD

但是想看開頭動畫的也可以用 wine 去掛載遊戲目錄
可是這樣遊戲會卡在開頭 所以還是直接略過開頭動畫

三國志5執行畫面
https://images.plurk.com/3t28usyuObCOrBHSeb89Bi.png
三國志6執行畫面
https://images.plurk.com/3dYa07LzUbhuMMDhzgcL1r.png

https://www.ptt.cc/bbs/Koei/M.1434674265.A.A43.html
至於這篇有人提到的 在 win7 執行 6代 可能會有的問題
目前我簡單試玩後是沒遇到 等玩一陣子後再看看會不會發生
只有遇到開頭動畫卡住和有些武將名稱會方塊字的問題
這個推測是utf8編碼的問題 畢竟三國志6是2000年前的 windows 程式
也許得用 ja_JP.EUC-JP 執行才能正常顯示某些缺字
再找時間用這個跑看看能不能解決
不能的話大概就是字型的關係

最後要來講一下 wine 的字型
雖然可以用 winetricks 來安裝常用字型
不過還是覺得用 windows 提供的
比較不會遇到奇怪的問題
以前用 wine 玩 ro 調半天 字型就是很小
裝 windows 字型就秒解XD


心血來潮把遊戲光碟拿出來裝的簡單心得大概就這樣
應該沒什麼遺漏的地方XD

--
Tags: Linux

All Comments

Xanthe avatar
By Xanthe
at 2019-09-20T03:20
推啊,wine 玩老遊戲愈來愈好用了
Cara avatar
By Cara
at 2019-09-24T09:56
推Arch XD
Ula avatar
By Ula
at 2019-09-28T06:59
推阿!!CD音軌的處理我以前都不懂,原來可以這樣作!
Elma avatar
By Elma
at 2019-10-02T12:41
現在還能搞到三國志的光碟也算很強了...
Rachel avatar
By Rachel
at 2019-10-06T20:33
傳家寶吧 XD
Annie avatar
By Annie
at 2019-10-09T15:09
用ja_JP.EUC-JP試了一下 結果還是會缺字XD
Damian avatar
By Damian
at 2019-10-09T21:12
ja_JP.sjis
Madame avatar
By Madame
at 2019-10-11T03:13
locale.gen沒這個 是要自己新增嗎?
Hedda avatar
By Hedda
at 2019-10-15T01:59
localedef -f SHIFT_JIS -i ja_JP ja_JP.sjis
Kyle avatar
By Kyle
at 2019-10-17T13:53
對,要自己新增
Oscar avatar
By Oscar
at 2019-10-19T21:10
/var/lib/locales/supported.d/ja
ja_JP.SJIS SJIS
新增這行後locale-gen
Odelette avatar
By Odelette
at 2019-10-22T23:56
character map `SHIFT_JIS' is not ASCII compatible,
locale not ISO C compliant 用localedef只出現這行
Thomas avatar
By Thomas
at 2019-10-26T23:12
至於/var/lib/下沒有locales這個目錄 也要自建嗎?
Tracy avatar
By Tracy
at 2019-10-30T19:52
用localedef有sjis了 不小心又多跑一次loacle-gen清掉它
Daniel avatar
By Daniel
at 2019-11-03T13:55
不過用sjis跑還是有缺字問題 感謝以上
Lydia avatar
By Lydia
at 2019-11-06T20:06
我這是Ubuntu的路徑,記得以前好像不一樣但是我忘了
反正就看你的locale在哪邊就去哪邊改
Tom avatar
By Tom
at 2019-11-10T07:16
建64bit環境跑32bit程式 測試後沒問題(不過樣本數不多XD

iptables 字串封鎖功能

Yedda avatar
By Yedda
at 2019-09-16T18:48
※ 引述《fordmvp (無名氏)》之銘言: : 之前用Ubuntu 14.04桌面版安裝iptables 用string封鎖字串可以成功,後來改安裝 : centos7.6安裝iptables但同樣的指令雖然可以執行確實際沒有封鎖,請問何解? : 後來有看到網路上有webstr和weburl指令,確卻無法 ...

OpenSuse 15.1安裝pcmanx

Agatha avatar
By Agatha
at 2019-09-16T18:18
我的環境是Oensuse 15.1 Gnome桌面, 安裝pcmanx後卻發現程式可執行但連線卻沒反應, 結果改用終端機測試才發現: 1.Opensuse 15.1預設and#34;不安裝telnetand#34; 2.pcmanx軟體包and#34;不依賴telnetand#34; 所以在Oens ...

Nginx 無法啟動

Puput avatar
By Puput
at 2019-09-13T16:39
※ 引述《jasmine3471 (藍可光)》之銘言: : 本人為Linux完全新手 : 很多都是複製貼上orz 如果你是新手,要先學會的是遇到問題找各種 error log,有 log 才能丟去搜尋。 : 目前正在用VPS SERVER創minecraft server : 正要安裝Nginx 在 De ...

Nginx 無法啟動

Olivia avatar
By Olivia
at 2019-09-13T12:10
本人為Linux完全新手 很多都是複製貼上orz 目前正在用VPS SERVER創minecraft server 正要安裝Nginx 在 Debian 9上 有跑安裝的畫面 卻無法啟動 會顯示 command not found 上網各種爬文 各種安裝其他配件 或是新增文件都沒有辦法 https ...

X11 connection rejected

Hedy avatar
By Hedy
at 2019-09-13T11:07
大家好,小弟今早連線學校雲端 Windows 10 的 MobaXterm 連SSH到學校實驗室Linux 伺服器(Scientific Linux),開啟我的模擬軟體時,突然出現底下的錯誤訊息: X11 connection rejected because of wrong authentication ...