各チップ(C6270,C6271,C6272,C6273)からのデータを合成し映像を作るチップ。
レジスタ(W) | 300h |
---|---|
ステータス(R) | 300h |
データ(R/W) | 304h |
bit4-bit0 | レジスタ番号? |
---|---|
bit13-bit5 | 不明(カウンタ?) |
bit15-bit14 |
画面モードを設定する。
bit1-0 | line数 | 00 = 263line |
---|---|---|
01 = 262line | ||
10 = interlace | ||
11 = 不明 | ||
bit2 | 同期 | 0 = 内部同期 |
1 = 外部同期 | ||
bit3 | ドットクロック | 0 = 5MHz |
1 = 7MHz | ||
bit6 | BG色数?(不明) | 0 = 16色 |
1 = 256色 | ||
bit7 | SPRITE色数?(不明) | 0 = 16色 |
1 = 256色 | ||
bit8 | HuC6270(BG)表示 | 0 = 非表示 |
1 = 表示 | ||
bit9 | HuC6270(SPR)表示 | 0 = 非表示 |
1 = 表示 | ||
bit10 | HuC6272/BG0表示 | 0 = 非表示 |
1 = 表示 | ||
bit11 | HuC6272/BG1表示 | 0 = 非表示 |
1 = 表示 | ||
bit12 | HuC6272/BG2表示 | 0 = 非表示 |
1 = 表示 | ||
bit13 | HuC6272/BG3表示 | 0 = 非表示 |
1 = 表示 | ||
bit14 | HuC6271表示 | 0 = 非表示 |
1 = 表示 |
パレット番号を指定する。
reg01h で指定したパレットデータ(YUV)を指定する。設定すると reg01h がインクリメントする。
HuC6270 のパレットオフセットを指定
bit3-bit0 | BG |
---|---|
bit7-bit4 | SPR |
bit11-bit8 | RAINBOW |
bit15-bit12 |
bit3-bit0 | BG0 |
---|---|
bit7-bit4 | BG1 |
bit11-bit8 | BG2 |
bit15-bit12 | BG3 |
PC-FX のパレットは RGB ではなく YUV(YCbCr?) で扱います。一般的な RGB → YUV 変換式は
ですが、HuC6261 パレットの U,V の範囲は 0 〜 15 なので、RGB を 0 〜 255 で計算した場合は U,V を 1/16 する。
実際に HuC6261 に設定する場合は、以下の形式で指定してやります。
bit15-8 | Y(0〜255) |
---|---|
bit7-4 | U(0〜15) |
bit3-0 | V(0〜15) |