各チップ(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) |