これは、初代機とmk2以降で、表示画面の取り込みが違うためのようです。
初代機:ポート0xB0 の値で、逐次変更される →画面描画途中でも表示ページが変更される
mk2以降:1画面描画する直前で、ポート0xB0 の値を記憶する →画面描画途中では、表示ページが変更されない
ちなみに、画面描画期間検出(1) でアップしたプログラムの ウエイト時間を変更すると、違う画面になります。
vsync.p6 の 2120行の最後の 01,00,03 を 01,80,05 にすると、SCREEN3 とSCREEN4 の重ね合わせになります(かなりちらつきますが)。
実際の動画がこちら。
ダウンロードは🎥こちら
ビデオ出力したものですが、よくみるとSCREEN3 が1行置きに表示されています。
これは、SCREEN3 描画 → SCREEN4 描画 → SCREEN3 描画、と1フレーム毎に交互に描画されているためのようです。
画面がちらつくのは、画面描画期間検出のタイミングが多少ずれたり、検出ルーチンを通らなかったりするためで、mk2以降の機能にあるAY-3-8910のポ
ート経由でVSYNC を検出すると、ちらつきがなくなります。
実際の動画がこちら。
ダウンロードは🎥こちら
プログラムはこちらです。
vsyncmk2.zip

