作者choan (八房龙の助)
看板Emulator
标题[新闻] desmume-spuNoUserWorkaround
时间Fri Sep 11 16:16:48 2009
http://bb2.atbb.jp/tas/viewtopic.php?t=29
さて、ボイス等ストリーム音声にノイズが入るのは、エミュレーション精度の问题では
ありません(ファイルにwav録音するとわかる)。これは、动作が遅い场合にそれを补
うだけの音声サンプルを生成するような仕様にしてあることで、まだ続きの音声をゲー
ムが书き込まないうちに余计な読み込みを行ってしまうことで生じてしまうのです(お
そらく)。wav録音で记録するのと同じ要领でDirectSoundに书き込みを行えば、ゲーム
侧からの読み込みで波形が"途切れることは"ないのです。
と、前置きしたうえで、やっつけ
http://gocha.s1.zmx.jp/down/public/desmume_snapshot/desmume-spuNoUser
Workaround.zip
カーソル位置确认を怠っているせいか、初期设定バッファが短いせいか、结局のところ
、こちらもノイズが入ります(加えて、wav録音と同様の书き込み方をしているので、
书き込みの回数が多すぎる)。ただし挙动の违いの性质上、バッファ长を10000~20000
のように长くしてしまえば、一応ノイズを感じることなく一连の音声を闻くことはでき
ます。代わりに、音声は映像に遅れて、そのうえしばしば巻き戻ることは避けられませ
んが……。
结局、成果としてはいまいちなように思うので、このアプローチはダメかもしれません
。zeromusさんはBlip_Bufferを通して音声を伸长してバッファに书き込むことを考えて
いたようですが、そのほうが満足いく结果が得られそうな感じがします(伸长にあたっ
てどの程度の速度が犠牲になるのかは疑问ですが)。
※伸长する场合、ADPCMはこれまでどおりで、PCM16(&8)のみコアの分を伸长するとな
かなかよさそうに思いますが、そんな器用なこともうまくできるんでしょうか。谜です
。
たぶんこれでは需要もないので、ひとまずコミットしない方向で。
http://gocha.s1.zmx.jp/down/public/desmume_snapshot/
(请利用
http://www.evadefilter.com/ 进入)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.238.100
※ 编辑: choan 来自: 59.126.238.100 (09/11 16:17)