作者Lighdark ( °Д°)
看板Old-Games
标题[心得] 王子传奇在DOSBox没音效的问题
时间Tue Feb 2 13:27:55 2016
一年多前翻出王子传奇来玩,再次注意到这没有音效的问题。
记得以前在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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.168.184.186
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Old-Games/M.1454390881.A.65D.html
※ 编辑: Lighdark (1.168.184.186), 02/02/2016 13:32:10
1F:推 aton602: 可以试非官方版的,修正不少官版的bug 02/02 15:45
2F:→ Lighdark: 之前有试过了,那个音效卡的bug没有修正。 02/02 16:05
3F:→ Lighdark: 一般不要像王子传奇那样送出不完整命令的话,也不会发作 02/02 16:06
4F:→ Lighdark: 所以很难会发现这个问题吧… 02/02 16:07
5F:推 besttim93: 有心钻研 推 02/02 17:32
6F:推 if4: 是的...推努力研究 XD 02/02 18:10
7F:推 vincentpp: 刚测试的确音效跟音乐都有了,推一个 02/02 19:22
8F:推 skyhawkptt: 推!!专业级辛苦测试 02/02 21:59
9F:推 eistain: 好怀念的游戏... 02/03 16:31
10F:推 ttnkuo: 帅暴了,大大您幸苦了 02/04 13:19
11F:推 killeryuan: 用心推 02/04 17:06
12F:推 e1q3z9c7: 一直卡在声音的问题!!终於可以享受这款游戏了!!! 02/05 00:08
13F:推 e1q3z9c7: 不过如果0.74版会当为什麽不直接用6.22@@? 02/05 00:18
14F:→ Lighdark: DOSBox开发团队是基於什麽理由选择DOS 5.0并不清楚。 02/05 00:23
15F:→ Lighdark: 战斗中音乐当掉不过是这游戏个案,其他游戏还满正常的。 02/05 00:26
16F:→ Lighdark: 总之还留着能灌6.22的弹性在,不是什麽大问题。 02/05 00:27
17F:推 dnkofe: 太厉害了,推 02/05 13:36
18F:推 e1q3z9c7: 喔我把dosbox跟dos搞混了 02/05 15:30
19F:推 e1q3z9c7: 话说最新的dos是8.0欸 会不会最好? 02/05 21:36
20F:→ Lighdark: DOS 8.0是Windows ME或2000以上内建的版本。 02/05 22:18
21F:→ Lighdark: 单纯的DOS最後一版就是6.22 02/05 22:19
22F:推 newclicker: 推 Hacker 精神! (*≧∀°)b☆ 02/05 22:57
23F:推 vayeate: 这太专业 不推不行 02/09 12:39
24F:→ Lighdark: 在游戏基地看到DOSBox SVN版,数月前已经修正这问题了。 02/10 18:02
※ 编辑: Lighdark (36.232.24.211), 02/10/2016 18:05:41
25F:推 e1q3z9c7: 太好了 我看灌6.22的说明复杂到想吐= = 02/10 20:11
26F:→ Lighdark: 6.22跟音效没关联啦,是音乐有关。 02/10 21:04
27F:→ Lighdark: SVN版是用几版的DOS并不清楚,音乐会不会当不清楚。 02/10 21:05
28F:→ Lighdark: 灌6.22我也头痛了好一会,卡在产生磁碟影像档。 02/10 21:07
29F:→ Lighdark: 最後是用别版去生成影像档再来灌的。 02/10 21:08
30F:推 dufflin: 有心 02/11 09:08
31F:推 happy530: 泪推~之前在板上反映这问题但没人理我QQ 02/15 17:49
32F:推 if4: 啪啪(还是拍拍?) 04/11 22:49