#include "sgl.h" ROTSCROLL *addr_A; void slRparaInitSet( addr_A );
ROTSCROLL *addr_A -回転パラメータテーブルを格納するVRAM先頭アドレス
void - 何も返しません。
回転スクロールに使用する回転パラメータテーブル(サイズ: 60H)をVRAM 領域中に格納します。パラメータBは、パラメータA+20Hの位置から格納される ので、パラメータA・Bで、合わせてE0H必要となります。
本関数を使用しない場合のデフォルトの格納アドレスは25E3FF00Hとなっています。
addr_Aは、必ず絶対アドレスを指定するようにしてください。
slRparaInitSet( ( void * )( 0x25e5fe00 ) );
slMakeKtable |
slKtableRA |
slKtableRB |
slRparaReadCtrlRA |
slRparaReadCtrlRB |
MsScreenSizeX |
MsScreenSizeY |
Resolution |
VDP2_RPTA |
ScrRotPtr |
rpara_vram_adr |
RotScrParA |
RotScrParB |
#include "sgl.h" Uint16 mode; void slCurRpara( mode );
Uint16 mode - 回転パラメータ
void - 何も返しません。
回転パラメータA・Bのうち、操作するパラメータを指定します。
modeには以下のパラメータが入ります。
RA: 回転パラメータA RB: 回転パラメータB
/* 回転係数Aの操作 */ slCurRpara( RA); slUnitMatrix( CURRENT); slTranslate( toFIXED( 10.0 ), toFIXED( 20.0 ), toFIXED( 15.0 ) ); slRotZ( DEGtoANG( 10.0 ) ); slScrMatSet(); /* 回転係数Bの操作 */ slCurRpara( RB); slUnitMatrix( CURRENT); slTranslate( toFIXED( 100.0 ), toFIXED( -100.0 ), toFIXED( 15.0 ) ); slRotZ( DEGtoANG( 10.0 ) ); slScrMatSet();
slRparaMode |
slScrMatSet |
slScrMatConv |
ScrRotPtr |
RotScrParA |
RotScrParB |
#include "sgl.h" Uint16 mode; void slRparaMode( mode );
Uint16 mode - 回転パラメータモード(後述)。
void - 何も返しません。
回転パラメータA・Bの使用モードを指定します。
modeには、以下のパラメータが入ります。
RA : 回転パラメータAのみ使用 RB : 回転パラメータBのみ使用 K_CHANGE: 回転パラメータAの係数データによって画像切替え W_CHANGE: 回転パラメータウィンドウで画像切替え
slRparaMode( RA);
slCurRpara |
slRparaMode |
slRparaReadCtrlRA |
slRparaReadCtrlRB |
VDP2_RPMD |
#include "sgl.h" void *addr_A; void slMakeKtable( *addr_A );
void *addr_A - 係数テーブルのVRAM上アドレス
void - 何も返しません。
3次元回転で使用する係数のテーブルを作成します。
2 Wordサイズのデータを1バンク分作成します。本関数を使用する場合には、 関数 slKtableRA( K_2WORD| K_ON| K_DOT| K_FIX ) slKtableRB( K_2WORD| K_ON| K_DOT| K_FIX) を併用してください。
slRparaInitSet( ( void * )( 0x25e5fe00 ) ); slKtableRA( ( void * )( 0x25e40000 ), K_2WORD| K_ON| K_DOT| K_FIX); slMakeKtable( ( void * )( 0x25e40000 ) ); slRparaMode( K_CHANGE);
slRparaInitSet |
slKtableRA |
slKtableRB |
slRparaReadCtrlRA |
slRparaReadCtrlRB |
VDP2_KTAOF |
k_table_adr |
#include "sgl.h" void *addr_A; Uint16 mode; void slKtableRA( addr_A, mode ); void slKtableRB( addr_A, mode );
void *addr_A - 係数テーブルのVRAM上アドレス Uint16 mode - 係数テーブルコントロールモード(後述)
void - 何も返しません。
係数テーブルのアドレスをレジスタに設定し、同時に、係数テーブルの使用法、 構成を指定します。
modeには以下のパラメータが入ります。 K_OFF | K_ON : テーブル使用 K_2WORD | K_1WORD : 係数データサイズ K_MODE0 | K_MODE1 | K_MODE2 | K_MODE3: 係数モード K_LINECOL : ラインカラー K_DOT | K_LINE : 変形単位 K_FIX : 係数固定 使用する機能に応じて上記の値を "|" でつないで指定してください。
モード0(係数テーブルから、x、yの拡大係数を拾ってくる)を使用し、 係数を2 Wordモード、ドット毎に使う場合。
#define RBG0RA_RPARA_ADR ( void * )VDP2_VRAM_A0 void slKtableRA( RBG0RA_RPARA_ADR, K_ON| K_2WORD| K_MODE0| K_DOT);
slRparaInitSet |
slRparaReadCtrlRA |
VDP2_KTCTL |
slRparaReadCtrlRB |
VDP2_KTAOF |
RotScrParA |
RotScrParB |
#include "sgl.h" Uint16 type; void slRparaReadCtrlRA( type ); void slRparaReadCtrlRB( type );
Uint16 type - 回転パラメータを読み出す方法(後述)。
void - 何も返しません。
回転パラメータの内 Xst、Yst、KAstを各ラインごとに読み直すか どうかを指定します。
typeには、 LnRd_Xst、LnRd_Yst、LnRd_KAst を '|' でつないで指定します。
slRparaReadCtrlRB( LnRd_Yst);
slRparaInitSet |
slKtableRA |
slKtableRB |
VDP2_RPRCTL |