關(guān)于東方獸王園BGM沒有聲音的問題
關(guān)于游戲沒有BGM的問題,解決方法是檢查游戲所在目錄是否包含中文路徑,如是,修改成英文即可。
這是一個(gè)朋友今天初見遇到的問題。
游戲的其他部分都正常運(yùn)作,只是沒有BGM。
不得不讓人懷疑在有中文路徑的情況下游戲根本無法加載thbgm.dat(已確認(rèn),如圖1),與之相對(duì)的,成功加載了余下的其他文件(th19.dat)。個(gè)人推測(cè)是因?yàn)榧虞d其他文件時(shí),程序使用的是相對(duì)路徑,由于其他文件均與th19.exe本體位于同一層目錄下,故不論是否包含了中文目錄,都可以被正常加載,而在加載thbgm.dat時(shí),程序可能首先獲取了自己的絕對(duì)執(zhí)行路徑,然后拼接出了thbgm的路徑并加載,故在此過程中對(duì)可能出現(xiàn)的中文路徑處理不當(dāng),導(dǎo)致了問題。

對(duì)于thbgm.dat沒加載這種錯(cuò)誤,程序居然沒直接報(bào)錯(cuò)退出,這就意味著這個(gè)錯(cuò)誤一定在程序內(nèi)部被catch了。在游戲初始化階段catch到了這么嚴(yán)重的錯(cuò)誤還不直接報(bào)錯(cuò)退出,反而是繼續(xù)裝作無事發(fā)生一般執(zhí)行其余的代碼邏輯,本人做個(gè)大膽的假設(shè),就是在本作內(nèi)容體量巨大的情況下,2un可能在完成基本立繪,編寫彈幕和游戲邏輯時(shí),未能完成bgm的作曲,這導(dǎo)致在調(diào)試游戲程序的階段必須要容許諸如“沒有此段對(duì)應(yīng)的bgm游戲也要正常運(yùn)作”這種事情的發(fā)生,甚至有可能在程序底層的管理bgm播放相關(guān)代碼邏輯中添加了對(duì)于bgm缺失的錯(cuò)誤suppression。這個(gè)猜想同時(shí)也解釋了為什么thbgm.dat相比于其他文件,在加載路徑方式上的特殊。以上,此般種種最終導(dǎo)致了游戲在v1.00a,也就是光盤發(fā)布版的時(shí)候,在遇到中文路徑的情況下無法加載thbgm.dat,因此也就沒有BGM聲音,而其他部分正常運(yùn)作的情況。