#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 |