#include "sgl.h"
void *addr;
void slLineColTable( addr );
void *addr - VRAM上のラインカラーテーブルアドレス。
void - 何も返しません。
ラインカラーテーブルアドレスをレジスタにセットします。
addrには、VDP2の先頭からのオフセット又は、絶対アドレスどちらも
使用できます。(下位20ビットのみ有効です。)
slDMACopy( src, ( void * )0x25e20000, 256 * sizeof( Uint16 ) );
:
slLineColTable( ( void * )0x25e20000 );
slLine1ColSet |
slLineColTable |
slColorCalc |
slColorCalcOn |
slLineColDisp |
slColorCalcMode |
slColRateLNCL |
VDP2_LCTA |
#include "sgl.h"
void *addr;
Uint16 color;
void slLine1ColSet( addr, color );
void *addr - VRAM上のラインカラーテーブルアドレス
Uint16 color - カラー番号。
void - 何も返しません。
ラインカラー画面を単一色にし、その色を設定します。
addrには、VDP2の先頭からのオフセット又は、絶対アドレスどちらも
使用できます。(下位20ビットのみ有効です。)
NBG1にラインカラーを掛ける。(ラインカラーテーブルは、25E20000H)
slColorCalc( CC_RATE| CC_2ND| NBG1ON);
slColorCalcOn( NBG1ON);
slLine1ColSet( ( void * )0x20000, 128 );
slLineColTable |
slColorCalc |
slColorCalcOn |
slLineColDisp |
slColorCalcMode |
slColRateLNCL |
VDP2_LCTA |
#include "sgl.h"
Uint16 mode;
void slLineColDisp( mode );
Uint16 mode - トップ画像になった時にラインカラーの影響を受ける画面。
void - 何も返しません。
トップ画像になった時にラインカラーの影響を受ける画面を設定します。
modeには、
NBG0ON、NBG1ON、NBG2ON、NBG3ON、RBG0ON、LNCLON
が入ります。
複数のスクロール面の描画設定を同時に行なう場合は、各面のモードを "|"で
つないで指定してください。
スプライトを設定したい場合には LNCLONを使用してください。
(これは他のレジスタとビット位置が異なっているためです)
NBG1にラインカラーを掛ける。
slColorCalcMode( CC_RATE| CC_2ND);
slColorCalcOn( NBG1ON);
slLineColTable( ( void * )0x25e20000 );
slLineColDisp( NBG1ON);
slColRateLNCL( CLRate20_12);
slLine1ColSet |
slLineColTable |
slColorCalc |
slColorCalcOn |
slColorCalcMode |
slColRateLNCL |
slLineColTable |
VDP2_LNCLEN |
#include "sgl.h"
Uint16 mode;
void slColorCalc( mode );
Uint16 mode - カラー演算のためのパラメータ(後述)。
void - 何も返しません。
カラー演算のためのパラメータを設定します。
modeは以下のパラメータを指定します。
CC_RATE| CC_ADD : 演算方法
CC_TOP| CC_2ND : 演算指定画面
CC_EXT : 拡張カラー演算
NBG0ON| NBG1ON| NBG2ON| NBG3ON| RBG0ON| LNCLON| SPRON: 登録面
使用する機能に応じて上記の値を "|" でつないで指定してください。
NBG1にラインカラーを掛ける。
slColorCalc( CC_RATE| CC_2ND| NBG1ON);
slLineColTable( ( void * )0x25e20000 );
slLineColDisp( NBG1ON);
slColRateLNCL( CLRate20_12);
NBG0とNBG1での、拡張カラー演算。
slColorCalc( CC_RATE| CC_TOP| NBG0ON| NBG1ON| CC_EXT);
slColRateNbg0( CLRate6_26);
slColRateNbg1( CLRate12_20);
slPriorityNbg0( 7 );
slPriorityNbg1( 6 );
slPriorityNbg2( 5 );
この関数は、slColorCalcModeとslColorCalcOnの両方
を実行するのと同じです。
#include "sgl.h"
Uint16 mode;
void slColorCalcMode( mode );
Uint16 mode - カラー演算モード(後述)。
void - 何も返しません。
slColorCalc関数のモード設定部分のみを行う関数です。
slColorCalcOn関数と併用します。
modeは以下のパラメータを指定します。
CC_RATE| CC_ADD : 演算方法
CC_TOP| CC_2ND : 演算指定画面
CC_EXT : 拡張カラー演算
NBG1にラインカラーを掛ける。
slColorCalcMode( CC_RATE| CC_2ND);
slColorCalcOn( NBG1ON);
slLineColTable( ( void * )0x25e20000 );
slLineColDisp( NBG1ON);
slColRateLNCL( CLRate20_12);
#include "sgl.h"
Uint16 mode;
void slColorCalcOn( mode );
Uint16 mode - カラー演算コントロールの影響を受ける画面
void - 何も返しません。
カラー演算コントロールの影響を受ける画面を設定します。
modeには、
NBG0ON、NBG1ON、NBG2ON、NBG3ON、RBG0ON、LNCLON、SPRON
が入ります。
複数のスクロール面の描画設定を同時に行なう場合は、各面のモードを "|"で
つないで指定してください。
NBG1にラインカラーを掛ける。
slColorCalcMode( CC_RATE| CC_2ND);
slColorCalcOn( NBG1ON);
slColRateNbg1( CLRate20_12);
#include "sgl.h"
Uint16 mode;
void slGradationOn( mode );
Uint16 mode - ボカシ機能を作用させる面(後述)。
void - 何も返しません。
ボカシ機能を有効にし、作用する画面を指定します。
modeには、
grdNBG0、grdNBG1、grdNBG2、grdNBG3、grdRBG0、grdSPR、OFF
のいずれかのみ指定します。
slColRAMMode( CRM16_1024);
:
slGradationOn( grdNBG0);
slColorCalc( CC_RATE| CC_TOP| NBG0ON);
slColRateNbg0( CLRate20_12 );
ボカシ機能は、カラーRAMモードが0の場合にしか使えません。
また、ボカシ機能はカラー演算と併用しないと機能しませんので注意して
ください。
ボカシ機能を取り消す時は、引数に OFF を指定するか、
slGradationOff関数を利用してください。
#include "sgl.h"
void slGradationOff( void );
void - 何も与えません。
void - 何も返しません。
ボカシ機能を無効にします。
slGradationOff();
#include "sgl.h"
Uint16 rate;
Uint16 mode;
void slColRate( mode, rate );
void slColRateNbg0( rate );
void slColRateNbg1( rate );
void slColRateNbg2( rate );
void slColRateNbg3( rate );
void slColRateRbg0( rate );
void slColRateLNCL( rate );
void slColRateBACK( rate );
void slColRateSpr0( rate );
void slColRateSpr1( rate );
void slColRateSpr2( rate );
void slColRateSpr3( rate );
void slColRateSpr4( rate );
void slColRateSpr5( rate );
void slColRateSpr6( rate );
void slColRateSpr7( rate );
Uint16 mode - カラー演算割合を指定する面(後述)。
Uint16 rate - カラー演算割合。
void - 何も返しません。
各画面のカラー演算割合を指定します。
modeには、
scnNBG0、scnNBG1、scnNBG2、scnNBG3、scnRBG0、scnLNCL、scnBACK
のいずれかを指定します。
rateはCLRate31_1〜CLRate0_32の範囲で指定します。
rate Top Screen : Second Screen
CLRate31_1 31:1
CLRate30_2 30:2
CLRate29_3 29:3
CLRate28_4 28:4
CLRate27_5 27:5
CLRate26_6 26:6
CLRate25_7 25:7
CLRate24_8 24:8
CLRate23_9 23:9
CLRate22_10 22:10
CLRate21_11 21:11
CLRate20_12 20:12
CLRate19_13 19:13
CLRate18_14 18:14
CLRate17_15 17:15
CLRate16_16 16:16
CLRate15_17 15:17
CLRate14_18 14:18
CLRate13_19 13:19
CLRate12_20 12:20
CLRate11_21 11:21
CLRate10_22 10:22
CLRate9_23 9:23
CLRate8_24 8:24
CLRate7_25 7:25
CLRate6_26 6:26
CLRate5_27 5:27
CLRate4_28 4:28
CLRate3_29 3:29
CLRate2_30 2:30
CLRate1_31 1:31
CLRate0_32 0:32
slColRate( scnNBG0, CLRate29_3);
slColRateNbg2( CLRate2_30);
slLineColTable |
slLine1ColSet |
slLineColTable |
slColorCalc |
slColorCalcOn |
slColorCalcMode |
slGradationOn |
slGradationOff |
VDP2_CCRNA |
#include "sgl.h"
void *addr_A;
void slBackColTable( addr_A );
void *addr_A - バック画面のカラーテーブルを示す絶対アドレス。
void - 何も返しません。
バック画面のカラーテーブルをセットし、ラスター単位でカラーを切り替える
モードに設定します。
ss_main() {
Uint16 col[ 256 ] = {
C_RGB( 3, 6, 6 ), ...
};
:
slDMACopy( col, ( void * )( 0x25e40000 ), 256 * sizeof( Uint16 ) );
:
slBackColTable( ( void * )( 0x25e40000 ) );
:
この関数に与える引数は、VDP2のVRAMのアドレスを絶対アドレスで指定します。
slBack1ColSet |
VDP2_BKTA |
#include "sgl.h"
void *addr_A;
Uint16 color;
void slBack1ColSet( addr_A, color );
void *addr_A - バックカラーを格納するVRAMの先頭アドレス(絶対アドレス)。
Uint16 color - カラーデータをRGB各5ビットで指定。
void - 何も返しません。
バック画面の設定を行ないます。バック画面とは、他の画面が全く描画されて
いない部分に表示される、最背面の描画面のことです。
バック画面を白くする。
slBack1ColSet( ( void * )0x25e00000, 0x7fff
VRAMはカラーRAMでなく、VDP2のVRAM領域を用います。
slBackColTable |
VDP2_BKTA |