[心得] 王子传奇在DOSBox没音效的问题

楼主: Lighdark ( °Д°)   2016-02-02 13:27:55
一年多前翻出王子传奇来玩,再次注意到这没有音效的问题。
记得以前在DOS玩的时候是有音效的,怎么DOSBox就没音效,只有音乐。
于是玩没多久就放弃再玩下去,决定找出问题所在,可以的话就解决它。
先是从驱动下手,灌了声霸卡驱动,改游戏音效设定,怎么搞都一样只有音乐。
后来发现DOSBox里面的DOS是旧版的5.0,不是6.22。
在DOSBox里灌了个6.22,结果还是一样没音效,不过战斗中音乐会当掉的问题解决了。
没办法,再往别的方向去找,这次换不同模拟器来试试。
VirtualBox、VMware、Virtual PC都给他试试。
有音效没音乐、有音乐没音效、有音乐又有音效但是画面会切变两个、速度太快难控制。
总之问题没比DOSBox少,不过倒是发现有些有音效,看来是模拟器的问题了。
虽然知道是模拟器问题,但换的模拟器没一个能正常玩的,问题还是没解决。
不过DOSBox是开源的,有音效的VirtualBox也是,也许比较一下能发现什么。
载了DOSBox原始码,照着网上的方式改设定编译后,确定能执行。
开始在声霸卡硬件模拟上修改做测试,试着找出问题在哪。
试着试着,我发现王子传奇开启时会测试声卡是否能使用,而问题就出在这。
它送出了一个不完整的命令,所以音效测试失败。
比较了DOSBox和VirtualBox的声卡,发现DOSBox在重置声卡命令的模拟上有bug。
收到不完整的命令后,游戏又送了一个重置的命令,但是这个命令没被正确的执行。
王子传奇本身的奇怪行为加上模拟器模拟的bug,凑在一起才造成游戏没有音效的问题。
加了一行程式码,让它能确实重置。再开游戏…有音效了啊!!!!!!!
总算能再次听到游戏的音效了啊,太感动了啊!
赶快写封e-mail给DOSBox团队,希望这修正能被加入,以后大家玩王子传奇就有音效了。
我也很快的收到回信,说是会先在private builds测试,没问题的话再加入main code。
一年过去了,始终没看到DOSBox有修正这问题…
所以,po这篇让有需要的人载吧。
https://drive.google.com/open?id=0BxowH2d0uLvxWnh4Zk1UbEdJNlU
重编译过的执行档,是Windows下执行的,其它系统请自行编译。
你要先载DOSBox 0.74,然后解压缩这zip档盖掉里面的执行档。
建议再在DOSBox里弄个DOS 6.22,这样玩起来音乐才不会在战斗中当掉。
编出来的档比原来的小很多,我也不知道为什么…
我没灌防毒软件,要是载了发现这档有毒告诉我一下XD
http://pastebin.com/HHpLhErS
这是修改的部分原始码。
路径是dosbox-0.74\src\hardware\sblaster.cpp
想自行编译的可以照注解//Add this line.那行加进去。
GUN license有做修改要开放修改后的原始码,不知道这样做算不算是开放了?
以上,祝各位游戏愉快,谢谢收看。
补充:非官方的DOSBox SVN据说已于数个月前修正了这问题了。
消息来源游戏基地
http://www.gamebase.com.tw/forum/30032/topic/98265301/1
作者: aton602 (南方堂果)   2016-02-02 15:45:00
可以试非官方版的,修正不少官版的bug
楼主: Lighdark ( °Д°)   2016-02-02 16:05:00
之前有试过了,那个声卡的bug没有修正。一般不要像王子传奇那样送出不完整命令的话,也不会发作所以很难会发现这个问题吧…
作者: besttim93 (杀人魔)   2016-02-02 17:32:00
有心钻研 推
作者: if4 (if)   2016-02-02 18:10:00
是的...推努力研究 XD
作者: vincentpp (文森)   2016-02-02 19:22:00
刚测试的确音效跟音乐都有了,推一个
作者: skyhawkptt (skyhawk)   2016-02-02 21:59:00
推!!专业级辛苦测试
作者: eistain (小Bal)   2016-02-03 16:31:00
好怀念的游戏...
作者: ttnkuo (帕格)   2016-02-04 13:19:00
帅暴了,大大您幸苦了
作者: killeryuan (龍鳥)   2016-02-04 17:06:00
用心推
作者: e1q3z9c7 (午仁)   2016-02-05 00:08:00
一直卡在声音的问题!!终于可以享受这款游戏了!!!不过如果0.74版会当为什么不直接用6.22@@?
楼主: Lighdark ( °Д°)   2016-02-05 00:23:00
DOSBox开发团队是基于什么理由选择DOS 5.0并不清楚。战斗中音乐当掉不过是这游戏个案,其他游戏还满正常的。总之还留着能灌6.22的弹性在,不是什么大问题。
作者: dnkofe (赤空)   2016-02-05 13:36:00
太厉害了,推
作者: e1q3z9c7 (午仁)   2016-02-05 15:30:00
喔我把dosbox跟dos搞混了话说最新的dos是8.0欸 会不会最好?
楼主: Lighdark ( °Д°)   2016-02-05 22:18:00
DOS 8.0是Windows ME或2000以上内建的版本。单纯的DOS最后一版就是6.22
作者: newclicker (Newclicker)   2016-02-05 22:57:00
推 Hacker 精神! (*≧∀°)b☆
作者: vayeate (haha)   2016-02-09 12:39:00
这太专业 不推不行
楼主: Lighdark ( °Д°)   2016-02-10 18:02:00
在游戏基地看到DOSBox SVN版,数月前已经修正这问题了。
作者: e1q3z9c7 (午仁)   2016-02-10 20:11:00
太好了 我看灌6.22的说明复杂到想吐= =
楼主: Lighdark ( °Д°)   2016-02-10 21:04:00
6.22跟音效没关联啦,是音乐有关。SVN版是用几版的DOS并不清楚,音乐会不会当不清楚。灌6.22我也头痛了好一会,卡在产生磁盘影像档。最后是用别版去生成影像档再来灌的。
作者: dufflin (怨憎會 愛別離 求不得)   2016-02-11 09:08:00
有心
作者: happy530   2016-02-15 17:49:00
泪推~之前在板上反映这问题但没人理我QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com