PC8001エミュレータ on プチコン4号。Beep音関係を、ちょっと頑張って改善しました

PC8001エミュレータ on プチコン4号。Beep音関係を、ちょっと頑張って改善しました

PC8001エミュレータ、Beep音関係がまだまだ不十分だなと思っていて、お盆が終わってからも改良を延々と続けています。ほぼ毎日のように更新しています。もうちょっと、プチコン4号のPCMストリーム関係の使い方が分かると良いのですが・・・。高速で on/offするBeep音は音階を推定し、それ以外は愚直にBeep音を指定された通りに並べる実装を行いました。これまではこの動画で言うところの、音階推定のみを行っており、細かなBeepのOn/Offのタイミングはいい加減でした。今回は、クロックを丁寧に数え上げて、BeepをOn/Offするタイミングを真面目に計算し、PCM波形を構築しています。この手法は、プチコン4号で実機よりも高速にZ80をエミュレーションできるようにり、ステート数を真面目に数える余裕が出てきたため、出来るようになりました。それまでは、命令の実行数に適当な係数を掛けて、ステート数をざっくり予測するというかなーりいい加減な方法をとっていたのとは、大違いです。動画の最後に出てくる、ミサイルファントムのBeepによる効果音が、大分PC8001の実機に近くなったのが、個人的にはうれしいです。驚くのが、パックマンのBGMやドットを食べる効果音が見事だと言うことを、改めて思い知らされました。当時のBeep音による効果音でも十分感動的でしたが、今回、音階を推定して矩形波にして鳴らすと、本当に素晴らしいです。New RALLY-X は、当時は「ノイズみたいな効果音だなぁ」と思っていましたが、あらためて音階になおして再生すると、なんとなく自動車の走行音に聞こえるんですよね。プログラムリスト一式をプチコン4号の公開サーバに上げてあります。公開キー:4NK3N3EBX※BASICのROMは、自分で用意する必要があります。インストールの詳細は、以下の動画で。 sm35544843

http://www.nicovideo.jp/watch/sm35620650