树莓派研究笔记(7)-- lakka 《仙剑奇侠传》的完美移植
仙剑,这是我玩的第一个电脑游戏。真的太经典,无法超越。原来第一次玩的缺少开场动画,很多地方不明不白的。现在终于我们可以把这个梦想继续到树莓派中。
LAKKA是支持DOS模拟器的,所以我们一定要下载DOS版本的仙剑。因为版权问题,大家自己找找吧。
我第一次找到一个完美DOS版本,包括了开场动画,高清音乐CD之类的。
把游戏PAL目录复制到/storage/roms/downloads/DOS/PAL/,然后修改dosbox的 PALDOS.conf 文件放到 /storage/roms/downloads/DOS/ 下
[autoexec] mount c "/storage/roms/downloads/DOS/PAL" IMGmount d "/storage/roms/downloads/DOS/PAL/CD/paldos.cue" -t iso C: pal
然后新建一个游戏list, DOS.lpl 上传到 /storage/playlists 目录下:
/storage/roms/downloads/DOS/PALDOS.conf 仙剑奇侠传 /tmp/cores/dosbox_libretro.so DOS (DOSBOX) DETECT DOS.lpl
一运行发现,提示cannot find CD disk 的错误!!
经过长时间的摸索和发现,原来LAKKA对ogg/mp3文件解码不支持,这就麻烦了,我总不能去改LAKKA的系统的吧。
先将ogg文件屏蔽看看:修改/storage/roms/downloads/DOS/PAL/CD/paldos.cue 文件,删掉所有的音乐文件如下:
FILE "paldos.iso" BINARY TRACK 01 MODE1/2048 INDEX 01 00:00:00 TRACK 02 AUDIO PREGAP 00:02:00 INDEX 01 00:00:00 TRACK 03 AUDIO INDEX 01 00:00:00 TRACK 04 AUDIO INDEX 01 00:00:00 TRACK 05 AUDIO INDEX 01 00:00:00 TRACK 06 AUDIO INDEX 01 00:00:00 TRACK 07 AUDIO INDEX 01 00:00:00 TRACK 08 AUDIO INDEX 01 00:00:00 TRACK 09 AUDIO INDEX 01 00:00:00
游戏可以运行了!!但是同时播放开场动画的声音没有了。这不够完美,不能接受。于是我想,既然游戏不支持mp3解码,那么我可不可以直接提供原始CD作为虚拟光盘。
于是我开始了第二次寻找资源,下载仙剑 DOS原版繁体中文 CD的镜像。
下载完后,傻了眼,原来不是iso文件,是三个 ccd, img, 和sub组成文件。后来想到Alcohol 120%这个虚拟光驱的虚拟能力是最强的,于是安装Alcohol 120%后,发现这个软件可以正确的读取所有音轨。如下图所示:
在Alcohol 120% 中选在创建镜像文件。惊喜的发现,在读取选项中可以直接创建cue文件。那么也就是说,我们可以创建一个原版的cue文件格式的CD。
取一样的名字创建成功后,替换掉下面目录下的文件。
/storage/roms/downloads/DOS/PAL/CD/
我们来看看新的cue文件内容,看到音轨的时间变化了吧,太棒了,这正是我们想要的。
FILE "paldos.iso" BINARY TRACK 01 MODE1/2352 INDEX 01 00:00:00 TRACK 02 AUDIO PREGAP 00:02:00 INDEX 01 03:02:49 TRACK 03 AUDIO INDEX 01 05:43:24 TRACK 04 AUDIO INDEX 01 07:59:69 TRACK 05 AUDIO INDEX 01 10:18:21 TRACK 06 AUDIO INDEX 01 12:53:37 TRACK 07 AUDIO INDEX 01 15:19:59 TRACK 08 AUDIO INDEX 01 17:40:01 TRACK 09 AUDIO INDEX 01 19:31:41
测试发现,开场动画的背景音乐又回来啦。我们又可以重温一遍仙剑啦!
关于键盘的映射问题。
1. 如果想用键盘玩游戏,那么 必须要把键盘的热键全部去掉。在设置->输入->输入热键绑定 这里修改映射的热键,以免影响游戏。
2. 如果想用手柄玩游戏,那么进入游戏后,按L3+R3组合件按键(有的手柄是两个摇杆按键),弹出游戏选项。然后选择 “控制”,将用户1 设备类型设置为 keyboard,把其他用户输入设置为无。然后退出“控制”,再进入一次,这时候会发现会多出很多按键mapping。可以按照下图所示配置,就可以用手柄玩啦。