鳴った!PSGが鳴った!!

以前日記で書いたとおり、私が昔作ったBASIC+マシン語のPSG曲がMSXPLAYerで正常に鳴らない…という問題ですが、先ほど原因が判明したそうです。
原因は…実機とエミュの未使用ビットの挙動の違いだそうで。 私の組んだプログラムがヘボくて(^^;)、PSGレジスタの未使用ビットが0である前提で動作していたようなのですが、エミュではこの部分で0でない値が返る場合があり、その為にPSGを操作するプログラムが正常に動作していなかったんだそうです。
…って、こんな問題、似たようなのを前にも聞いたことあるぞ…と思ったら、MCKのReadOnlyレジスタにWriteしたときの挙動の違いで環境によって鳴る場合と鳴らない場合がある、という問題とよく似てますね。
実機と寸分違わぬ挙動をするエミュレータを作るには、実はスペックどおりに作るのではなくて、スペックに定義されてない部分を如何に実機と同様の動作にするか、という部分が肝心なんだなぁ、と改めて思いました。
…ていうか、こんなヘボいプログラム作ってすんません。m(_ _)m 10年以上も前の事なので許してください…(^^;)