English
HARDWARE ManualVDP1ユーザーズマニュアル
戻る進む
VDP1ユーザーズマニュアル/第6章 コマンドテーブル

■カラーモード

カラーモードビット: color mode bit、ビット5〜3
 スプライトを描画するカラーの色数と表現方法を指定します。スプライトにだけ有効です。ノンテクスチャはカラーモードを000Bにしてください。ノンテクスチャはノンテクスチャカラーでカラーを指定します。
 カラーモードには、パレットコードとカラーバンクで指定するカラーバンクモード、カラールックアップテーブルを使うルックアップテーブルモード、および直接輝度を指定するRGBモードの3つの指定方法があります。
 カラーバンクモードではピクセルデータのビット数の違いで16、64、128、256色から選ぶことができ、ルックアップテーブルモードは16色、RGBモードは32768色の描画ができます。
 カラーモードビットの内容は次のとおりです。

カラーモード
モード
内容
1pixelの
ビット数
ビット5
4
3
色数
モード名
0000
16色
カラーバンクモード
4bit
0011
16色
ルックアップテーブルモード
4bit
0102
64色
カラーバンクモード
8bit
0113
128色
カラーバンクモード
8bit
1004
256色
カラーバンクモード
8bit
1015
32768色
RGBモード
16bit
上記以外
設定禁止(設定しないでください)

各モードのキャラクタパターン
 キャラクタパターンはそれぞれのモードでVRAM上に格納されます。横8pixel、縦1pixelを例にします。

モード0
 16色のカラーバンクモードです。パレットコードとカラーバンクでカラーを表します。
 1pixelを4bitで表します。16色の描画ができます。8pixelを表すのに4Byte必要です。1Byteには2pixelのデータがあり、左右反転しないときは、上位4bitが左側のピクセル、下位4bitが右側のピクセルを表します。
 4bitでパレットコードを表し、上位12bitがカラーバンクワード(コマンドテーブルの先頭アドレス+06H)からカラーバンクが付け加えられて、フレームバッファに16ビットデータで書き込まれます。
 8bit/pixelのとき(フレームバッファ回転、またはハイレゾルーションのとき)、16bitの下位8bitがフレームバッファに書き込まれます。上位8bitは捨てられます。
 描画ピクセルデータがカラーバンクコードなので色演算はできません。

  ビット15     12 11     8 7      4 3      0 
    ┌────────┬────────┬────────┬────────┐
+00H│ ピクセル 0   ピクセル 1   ピクセル 2   ピクセル 3 │
    ├────────┼────────┼────────┼────────┤
+02H│ ピクセル 4   ピクセル 5   ピクセル 6   ピクセル 7 │
    └────────┴────────┴────────┴────────┘

モード1
 カラールックアップテーブルを使ったルックアップテーブルモードです。
 4bitで1pixelを表します。16色の描画が可能です。キャラクタデータはモード0と同じです。
 カラールックアップテーブルに格納された16bitの16色の中の1色のデータを4bitで選び、フレームバッファに書き込まれます。8bit/pixelのとき(フレームバッファ回転、またはハイレゾルーションのとき)、16bitの下位8bitがフレームバッファに書き込まれます。
 カラールックアップテーブルのアドレスをルックアップテーブルアドレス(コマンドテーブルの先頭アドレス+06H、カラーバンクワードと共用)に書き込みます。ルックアップテーブルのカラーコードはカラーバンクコード、RGBコードいずれのコードでも指定することができます。ただし、RGBコードは8bit/pixel時は禁止です。

図6.11 モード0、1の描画例
      横8ピクセルの元絵の場合 
     ┌───────┬───────┐
+00H→│0 1 2 3 4 5 6 7│←+02H
     ├───────┼───────┤
+04H→│8 9 A B C D E F│←+06H
     ├───────┼───────┤
     │   :       :   │
     │   :       :   │

モード2、モード3、モード4
 モード2は64色、モード3は128色、モード4は256色のカラーバンクモードです。パレットコードとカラーバンクでカラーを表します。
 1pixelを8bitで表します。それぞれ64色、128色、256色のカラーを描画することができます。8pixelを表すのに8Byte必要です。
 6bit、7bit、8bitでパレットコードを表し、上位10bit、9bit、8bitがカラーバンクワード(コマンドテーブルの先頭アドレス+06H)からカラーバンクが付け加えられて、フレームバッファに16ビットデータで書き込まれます。モード2、モード3ではそれぞれ上位2bit、1bitが無視されます。8bit/pixelのとき(フレームバッファ回転、またはハイレゾルーションのとき)、16bitの下位8bitがフレームバッファに書き込まれます。
 描画ピクセルデータがカラーバンクコードなので色演算はできません。

  ビット15                     8 7                     0 
    ┌─────────────────┬─────────────────┐
+00H│     ピクセル 0             ピクセル 1     │
    ├─────────────────┼─────────────────┤
+02H│     ピクセル 2             ピクセル 3     │
    ├─────────────────┼─────────────────┤
+04H│     ピクセル 4             ピクセル 5     │
    ├─────────────────┼─────────────────┤
+06H│     ピクセル 6             ピクセル 7     │
    ├─────────────────┼─────────────────┤
    │       :                 :         │

図6.12 モード2、3、4の描画例
      横8ピクセルの元絵の場合 
     ┌───┬───┬───┬───┐
+00H→│0 1│2 3│4 5│6 7│←+06H
     ├───┼───┼───┼───┤
+08H→│8 9│A B│C D│E F│←+0EH
     ├───┼───┼───┼───┤
     │ : │ : │ : │ : │
     │ : │ : │ : │ : │

モード5
 32768色のRGBモードです。RGB別(赤、緑、および青)の輝度でカラーを表します。1pixelを16bitで表します。32768色の描画ができます。8pixelを表すのに16Byte必要です。
 RGBコードは、RGBコードを表すMSB1bit(値は1)とRGBそれぞれ輝度を5bitで表します。RGBそれぞれの輝度は、00H〜1FHで、00Hに近づくほど暗く、1FHに近づくほど明るくなります。RGBがすべて00Hのとき8000Hとなり黒を表し、すべて1FHのときFFFFHとなり白を表します。
 RGBコードはそのまま16bitがフレームバッファに書き込まれます。8bit/pixelのとき(フレームバッファ回転、またはハイレゾルーションのとき)、このモードは使えません。
 RGBコードは色演算をすることができます。

  ビット15                     8 7                     0 
    ┌─────────────────┬─────────────────┐
+00H│   ピクセル0(上位バイト)      ピクセル0(下位バイト)  │
    ├─────────────────┼─────────────────┤
+02H│   ピクセル1(上位バイト)      ピクセル1(下位バイト)  │
    ├─────────────────┼─────────────────┤
+04H│   ピクセル2(上位バイト)      ピクセル2(下位バイト)  │
    ├─────────────────┼─────────────────┤
+06H│   ピクセル3(上位バイト)      ピクセル3(下位バイト)  │
    ├─────────────────┼─────────────────┤
+08H│   ピクセル4(上位バイト)      ピクセル4(下位バイト)  │
    ├─────────────────┼─────────────────┤
+0AH│   ピクセル5(上位バイト)      ピクセル5(下位バイト)  │
    ├─────────────────┼─────────────────┤
+0CH│   ピクセル6(上位バイト)      ピクセル6(下位バイト)  │
    ├─────────────────┼─────────────────┤
    │       :                 :         │

図6.13 RGBコードフォーマット
MSB                           LSB
┌─┬─────────┬─────────┬─────────┐
│ │    B    │    G    │    R    │
│1├─┬─┬─┬─┬─┼─┬─┬─┬─┬─┼─┬─┬─┬─┬─┤
│ │4│3│2│1│0│4│3│2│1│0│4│3│2│1│0│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
[注]MBSは「1」です

表6.2 ピクセルデータ
ピクセルデータ
描 画 デ ー タ
0000H
透明カラーコード
0001H

7FFEH
設定禁止
(RGBモードでは設定しないでください)          
(パレットバンクコードです)
7FFEH
エンドコード
8000H

FFFFH
RGBコード

図6.14 モード5の描画例
      横8ピクセルの元絵の場合 
     ┌─┬─┬─┬─┬─┬─┬─┬─┐
+00H→│0│1│2│3│4│5│6│7│←+0EH
     ├─┼─┼─┼─┼─┼─┼─┼─┤
+10H→│8│9│A│B│C│D│E│F│←+1EH
     ├─┼─┼─┼─┼─┼─┼─┼─┤
     │:│:│:│:│:│:│:│:│
     │:│:│:│:│:│:│:│:│


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