DIY FCカートリッジのサンプルプログラム修正

https://sites.google.com/site/yugenkaisyanico/diy-fc-cartridge

数か月ぶりに自作ファミコンカートリッジのサンプルプログラムの不具合を修正しました。

f:id:nicotakuya:20200709103148j:plain

動作が正常な場合

正常に動くと、こんな感じですが、、、。

 

f:id:nicotakuya:20200709104520j:plain

異常な場合。パターンテーブルが壊れてる

その後、ファミコン本体のリセットボタンを押すと、こんな感じに表示が化けてしまいました。これはPPUが動作中にパターンテーブルを書き換えようとして、書き換えに失敗するという現象です。

対策としては、

(1)VBlankが発生するまで待つ。

(2)スプライトとBGの表示をオフにする。

という処理を電源投入直後に追加しました。こうすれば、安全にパターンテーブルを書き換えることができます。

この不具合は実機だけで発生するので、発見が遅れてしまいました。修正版のプログラムはすでに公開済みです。