English
HARDWARE ManualVDP2ユーザーズマニュアル
戻る進む
VDP2ユーザーズマニュアル

第14章 シャドウ機能


 シャドウ機能は、スプライトを使ってスプライト自身、またはスクロール画面に影を付ける機能です。影となるスプライトには、そのデータによってノーマルシャドウとMSBシャドウの2種類があります。MSBシャドウは、スプライトタイプがタイプ2〜7のときのみ使用できます。シャドウ機能は、影となるスプライトのプライオリティが最も高くなるときにのみ使用されます。

 シャドウ機能は、カラー演算機能およびカラーオフセット機能よりも後に処理されます。シャドウ機能を図14.1に示します。

図14.1 シャドウ機能

■14.1 シャドウ処理

 シャドウ処理は、ノーマルシャドウまたはMSBシャドウのスプライトのプライオリティが最も高くなるような場合に、そのスプライトを強制的に透明にし、スプライトを除いた画面において決定したトップ画像において、スプライトがあった部分の輝度を半分にするものです。

 ●ノーマルシャドウ

 ノーマルシャドウのスプライトは、指定したスプライトタイプにおけるドットカラーデータの最下位ビットだけが0で、その他のドットカラーデータがすべて1となっているもので、スプライトタイプによって判断するビット数が変わります。

 ノーマルシャドウのスプライトデータは、ドットカラーコードを除いたドットカラーデータのすべてのビットが1となるようなカラー制御ワードを指定して、最下位ビットだけが0で、残りのビットをすべて1としたドットカラーコードのスプライトキャラクタを、フレームバッファに書き込むことで作られます。このとき、既に書き込まれていたフレームバッファデータに上書きするので、スプライトに影を付けることはできません。したがって、通常は、フレームバッファへ最初に書き込んでください。カラー制御ワードについては、「VDP1ユーザーズマニュアル」を参照してください。

 ノーマルシャドウのスプライトによって影を付けるスクロール画面およびバック画面は、画面ごとに指定することができます。

 ノーマルシャドウを図14.2に、ノーマルシャドウのスプライトデータを図14.3に示します。

図14.2 ノーマルシャドウのスプライトデータの書き込み

図14.3 ノーマルシャドウのスプライトデータ
●スプライトタイプ0〜3、5の場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│1│1│1│1│1│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

●スプライトタイプ4、6の場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│−│1│1│1│1│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

●スプライトタイプ7の場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│−│−│1│1│1│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

●スプライトタイプC〜Fの場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│−│−│−│1│1│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

●スプライトタイプ8の場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│−│−│−│−│1│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

●スプライトタイプ9〜Bの場合
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │−│−│−│−│−│−│−│−│−│−│1│1│1│1│1│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

注:「−」部のビットは、ノーマルシャドウの判断には使用しません。

 ●MSBシャドウ

 MSBシャドウは、スプライトタイプがタイプ2〜7の場合にのみ有効となり、 スプライトデータの最上位ビット(MSB)が1となっているもので、MSB以外の15ビットの値によって、 スプライトシャドウと透明シャドウの2種類があります。スプライトシャドウは、MSBが1で、 かつMSB以外の15ビットの値がすべて0ではないものです。透明シャドウは、MSBが1で、 MSB以外の15ビットの値がすべて0のものです。 ただし、ドットカラーデータがノーマルシャドウの条件を満たしている場合には、 スプライトシャドウの条件を満たしていても、ノーマルシャドウとして判断されます。

 MSBシャドウのスプライトデータは、VDP1が既に書き込まれたフレームバッファデータに対して、MSBシャドウのスプライトの形にMSBだけを1に変更することで作られます。 (「VDP1ユーザーズマニュアル」の「■MSBオン」を参照してください。)このとき、MSBを変更する前のフレームバッファデータのすべてのビットが0でなかった場合、 すなわち、通常のスプライトが既に書き込まれていた場合にはスプライトシャドウとなり、そのスプライトキャラクタに対して影を付けます。

 MSBを変更する前のフレームバッファデータのすべてのビットが0であった場合、すなわち、透明だった場合には透明シャドウとなり、その透明シャドウのスプライトよりプライオリティが1つ下になったスクロール画面に対して影を付けます。透明シャドウのスプライトによって影を付けるスクロール画面およびバック画面は、画面ごとに指定することができます。
透明シャドウのスプライトのプライオリティナンバーは、プライオリティナンバーレジスタのスプライト用レジスタ0に設定された値が使用されることに注意してください。

 スプライトウィンドウを使用する場合、このMSBシャドウを使用できなくなります。スプライトウィンドウについては、「8.1 ウィンドウ領域」を参照してください。

 スプライトシャドウと透明シャドウを図14.4に、MSBシャドウのスプライトデータを図14.5に示します。

図14.4 スプライトシャドウと透明シャドウ

図14.5 MSBシャドウのスプライトデータ
●スプライトシャドウ
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │1│×│×│×│×│×│×│×│×│×│×│×│×│×│×│×│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

 ×は、指定したスプライトタイプにおけるドットカラーデータがノーマルシャドウの
 条件を満たしていない限り、0でも1でも可。


●透明シャドウ
ビット 15             8 7             0
    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
    │1│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│
    └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

 ●シャドウコントロールレジスタ

 シャドウコントロールレジスタは、スクロール画面およびバック画面に対してシャドウ機能を使用するかどうかを指定します。書き込み専用の16ビットのレジスタで、1800E2H番地にあります。電源投入後またはリセット後、値は0にクリアされますので必ず設定してください。

SDSTL 1800E2H
   15   
   14   
   13   
   12   
   11   
   10   
   09   
   08   
   -   
   -   
   -   
   -   
   -   
   -   
   -   
TPSDSL 

   07   
   06   
   05   
   04   
   03   
   02   
   01   
   00   
   -   
   -   
BKSDEN 
R0SDEN 
N3SDEN 
N2SDEN 
N1SDEN 
N0SDEN 

シャドウイネーブルビット:Shadow enable bit
(N0SDEN, N1SDEN, N2SDEN, N3SDEN, R0SDEN, BKSDEN)
 ノーマルシャドウおよび透明シャドウのスプライトにおいて、スクロール画面およびバック画面に対してシャドウ機能を使用するかどうかを指定します。

N0SDEN1800E2Hビット0NBG0用(またはRBG1用)
N1SDEN1800E2Hビット1NBG1用(またはEXBG用)
N2SDEN1800E2Hビット2NBG2用
N3SDEN1800E2Hビット3NBG3用
R0SDEN1800E2Hビット4RBG0用
BKSDEN1800E2Hビット5BACK用

 スプライトシャドウのスプライトは、自分自身に対して常にシャドウ機能を使用します。

xxSDEN処 理
0シャドウ機能を使用しない(影を付けない)
1シャドウ機能を使用する(影を付ける)

透明シャドウセレクトビット:Transparent shadow select bit (TPSDSL)、ビット8
 透明シャドウのスプライトを有効にするかどうかを指定します。

TPSDSL処 理
0透明シャドウのスプライトを無効にする
1透明シャドウのスプライトを有効にする

 透明シャドウのスプライトを無効にした場合、どの画面に対しても透明シャドウのスプライトで影を付けることはできなくなります。


戻る進む
HARDWARE ManualVDP2ユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997