作者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有做修改要開放修改後的原始碼,不知道這樣做算不算是開放了?
以上,祝各位遊戲愉快,謝謝收看。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.184.186
※ 文章網址: https://www.ptt.cc/bbs/Old-Games/M.1454390881.A.65D.html
※ 編輯: Lighdark (1.168.184.186), 02/02/2016 13:32:10
推 aton602: 可以試非官方版的,修正不少官版的bug 02/02 15:45
→ Lighdark: 之前有試過了,那個音效卡的bug沒有修正。 02/02 16:05
→ Lighdark: 一般不要像王子傳奇那樣送出不完整命令的話,也不會發作 02/02 16:06
→ Lighdark: 所以很難會發現這個問題吧… 02/02 16:07
推 besttim93: 有心鑽研 推 02/02 17:32
推 if4: 是的...推努力研究 XD 02/02 18:10
推 vincentpp: 剛測試的確音效跟音樂都有了,推一個 02/02 19:22
推 skyhawkptt: 推!!專業級辛苦測試 02/02 21:59
推 eistain: 好懷念的遊戲... 02/03 16:31