作者Bellkna (柔弱气质伪少女)
看板Linux
标题[心得] dosbox+wine玩老游戏(三国志5+6)
时间Mon Sep 16 22:25:53 2019
因为帮光碟机换了皮带所以就有了这篇心得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://webptt.com/cn.aspx?n=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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.134.246.92 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1568643969.A.ABB.html
1F:推 holishing: 推啊,wine 玩老游戏愈来愈好用了 09/17 01:57
2F:推 os369510: 推Arch XD 09/17 10:13
3F:推 mgdesigner: 推阿!!CD音轨的处理我以前都不懂,原来可以这样作! 09/17 14:17
4F:→ OrzOGC: 现在还能搞到三国志的光碟也算很强了... 09/17 21:48
5F:→ qoopichu: 传家宝吧 XD 09/17 22:19
6F:→ Bellkna: 用ja_JP.EUC-JP试了一下 结果还是会缺字XD 09/22 12:01
7F:→ qoopichu: ja_JP.sjis 09/22 15:53
8F:→ Bellkna: locale.gen没这个 是要自己新增吗? 09/22 20:14
9F:推 Bencrie: localedef -f SHIFT_JIS -i ja_JP ja_JP.sjis 09/22 20:37
10F:→ qoopichu: 对,要自己新增 09/22 20:47
11F:→ qoopichu: /var/lib/locales/supported.d/ja 09/22 20:50
12F:→ qoopichu: ja_JP.SJIS SJIS 09/22 20:50
13F:→ qoopichu: 新增这行後locale-gen 09/22 20:50
14F:→ Bellkna: character map `SHIFT_JIS' is not ASCII compatible, 09/22 22:45
15F:→ Bellkna: locale not ISO C compliant 用localedef只出现这行 09/22 22:45
16F:→ Bellkna: 至於/var/lib/下没有locales这个目录 也要自建吗? 09/22 22:46
17F:→ Bellkna: 用localedef有sjis了 不小心又多跑一次loacle-gen清掉它 09/22 22:52
18F:→ Bellkna: 不过用sjis跑还是有缺字问题 感谢以上 09/22 22:53
19F:→ qoopichu: 我这是Ubuntu的路径,记得以前好像不一样但是我忘了 09/23 00:15
20F:→ qoopichu: 反正就看你的locale在哪边就去哪边改 09/23 00:15
21F:→ Bellkna: 建64bit环境跑32bit程式 测试後没问题(不过样本数不多XD 10/12 07:39