MSX関連の技術情報
縦分割スクロール
概要
MSX2以降
で画面縦分割についての検証結果です。
以前から知られている技術ですが、
縦スクロール
が
即時反映
である為に可能となっています。
SCREEN 5・7・8・12
で動作確認しています。
※ エミュレータでは奇麗に分割できない場合があります
走査線割込
1:割込後に
ステータスレジスタ #1
を読む処理が必要です。
2:
縦スクロールの値
を
加算
する必要があります。
3:
0038H
を
RAM
にして直接プログラムを書かないと処理が間に合いません。
4:
垂直帰線
との判別が必要です。(レジスタ #1 の
bit0
で判断できます)
分割可能位置
VDP
との描画タイミングが合わないと
8ドット単位
のブレが生じます。
検証では
128ドット目(中央)
と
152・176ドット目
での分割が可能でした。
※ A1ST・A1GT・A1WXで検証
VDPの描画タイミングについて
恐らく
全ての画面モード
で
8ドット単位
の描画が行われていると思われます。
描画速度は
Z80・1クロック
当たり
1.5
ドット。
最速命令の
5クロック
では
7.5
ドット進みます。
調整は非常に困難だと思われます。
応用の可能性
分割処理に
掛かりっきり
になる為、
垂直帰線中
でしか他の処理ができません。
簡易的な
シューティングゲーム等
が可能だと考えられますが、難しいと思います。
MSX2 と MSX2+ 以降との互換性
MSX2
では
VDPウェイト
の有無で処理速度に違いが出る事が知られています。
機種によって
ズレ
が生じると考えられます。
サンプルプログラム
vertical.zip 118K <DOWNLOAD>
P27
と
P59
が最適な状態です。
検証用に
ウェイト
が異なるプログラムを用意しました。
※ 数値が大きい程、ウェイトが増えます
参考動画リンク
【MSX】縦分割スクロール実験【改訂版】
戻る
ツリー表示
トップページへ