2012年08月04日

画面描画期間検出(2)

 画面描画期間検出(1) でアップしたプログラムですが、mk2以降では期待通りに分割されません。

 これは、初代機と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


posted by えすび at 14:49| Comment(0) | P6解析:画面周り | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。