HuC6261(NEW鉄観音)

各チップ(C6270,C6271,C6272,C6273)からのデータを合成し映像を作るチップ。

I/Oポートアドレス

レジスタ(W)300h
ステータス(R)300h
データ(R/W)304h

ステータス

bit4-bit0レジスタ番号?
bit13-bit5不明(カウンタ?)
bit15-bit14

レジスタ

00h 画面モード(Half)

画面モードを設定する。

bit1-0line数00 = 263line
01 = 262line
10 = interlace
11 = 不明
bit2同期0 = 内部同期
1 = 外部同期
bit3ドットクロック0 = 5MHz
1 = 7MHz
bit6BG色数?(不明)0 = 16色
1 = 256色
bit7SPRITE色数?(不明)0 = 16色
1 = 256色
bit8HuC6270(BG)表示0 = 非表示
1 = 表示
bit9HuC6270(SPR)表示0 = 非表示
1 = 表示
bit10HuC6272/BG0表示0 = 非表示
1 = 表示
bit11HuC6272/BG1表示0 = 非表示
1 = 表示
bit12HuC6272/BG2表示0 = 非表示
1 = 表示
bit13HuC6272/BG3表示0 = 非表示
1 = 表示
bit14HuC6271表示0 = 非表示
1 = 表示

01h パレット番号(Half)

パレット番号を指定する。

02h パレットデータ(Half)

reg01h で指定したパレットデータ(YUV)を指定する。設定すると reg01h がインクリメントする。

04h HuC6270 パレットオフセット(Half)

HuC6270 のパレットオフセットを指定

05h パレットオフセット(Half)

06h パレットオフセット(Half)

07h パレットオフセット(Half)

08h プライオリティ0(Half)

bit3-bit0BG
bit7-bit4SPR
bit11-bit8RAINBOW
bit15-bit12

09h プライオリティ1(Half)

bit3-bit0BG0
bit7-bit4BG1
bit11-bit8BG2
bit15-bit12BG3

0Ah (Half)

0Bh (Half)

0Ch (Half)

0Dh (Half)

0Eh (Half)

0Fh (Half)

10h (Half)

11h (Half)

12h (Half)

13h (Half)

14h (Half)

15h (Half)

パレットデータ

PC-FX のパレットは RGB ではなく YUV(YCbCr?) で扱います。一般的な RGB → YUV 変換式は

Y = 0.2990R + 0.5870G + 0.1140B
U = -0.1686R - 0.3311G + 0.4997B + 128
V = 0.4998R - 0.4185G - 0.0813B + 128

ですが、HuC6261 パレットの U,V の範囲は 0 〜 15 なので、RGB を 0 〜 255 で計算した場合は U,V を 1/16 する。

実際に HuC6261 に設定する場合は、以下の形式で指定してやります。

bit15-8Y(0〜255)
bit7-4U(0〜15)
bit3-0V(0〜15)

[TOPへ戻る]