Future Driver

スクロール(VSRAM)

スクロール(VSRAM)

プレーンA・プレーンBの水平スクロール量はVRAMに、 垂直スクロール量はVSRAMに配置します。
水平スクロール量はVRAMの任意の位置に下記4bytesのデータを配置します。

bit	15 14 13 12 11 10 9   8   7   6   5   4   3   2   1   0
	0  0  0  0  0  0  AX9 AX8 AX7 AX6 AX5 AX4 AX3 AX2 AX1 AX0
	0  0  0  0  0  0  BX9 BX8 BX7 BX6 BX5 BX4 BX3 BX2 BX1 BX0
AXx	0〜1024 = プレーンAの水平方向スクロール量
BXx	0〜1024 = プレーンBの水平方向スクロール量

VDPレジスタで全画面スクロールを設定している場合は上記4bytesだけです。
セル単位スクロール又はライン単位スクロールを設定している場合は、 ライン毎に上記4bytesのデータが必要になるので 4 * 224 = 896bytes 必要になります。
セル単位スクロールの場合VDPは32bytes飛びで値を読みますので、 不要なバイトの値は不特定で構いません。
垂直スクロール量はそれ専用のRAMとしてSVRAMが用意されています。

bit	15 14 13 12 11 10 9   8   7   6   5   4   3   2   1   0
	0  0  0  0  0  0  AY9 AY8 AY7 AY6 AY5 AY4 AY3 AY2 AY1 AY0
	0  0  0  0  0  0  BY9 BY8 BY7 BY6 BY5 BY4 BY3 BY2 BY1 BY0
AYx	0〜1024 = プレーンAの垂直方向スクロール量
BYx	0〜1024 = プレーンBの垂直方向スクロール量

全画面スクロールの場合は上記4bytesだけです。 セル単位スクロールの場合はセルの数だけ必要になるので、 320pixel(40cells)の場合は 40 * 4 = 160bytes 必要になります。



inserted by FC2 system