目次
仕様
- カラーパレットに組み込んで用いる。
- BGとスプライトそれぞれで、256色中16色を使用可能。
- RGBカラーモデルで指定する。ビット深度は赤と緑が3ビット、青が2ビット。
- 基本色データは ROM上に置かれる。動的な変更は出来ない。
- アドレス$00~$0Fがスプライト用、$10~$1FがBG用の色データとなる。
- スプライト用基本色の #15 は透明色として扱われる。色データを指定しても無視される。
- 前景表示した場合に BG用基本色の #15 がどう機能するかは未検証。
基本色のデータフォーマット
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
青 |
緑 |
赤 |
基本色の一覧
- まどさん(@maddoka)からの情報を元に、筆者が算出したカラーコードに基づく。
- 情報ありがとうございます。(_ _)
- 算出式は、
- 赤/緑: C = 255 * (c2 * 455 + c1 * 213 + c0 * 100) / (455 + 213 + 100)
- 青: C = 255 * (c1 * 455 + c0 * 213) / (455 + 213 + 100)
- いずれも小数第一位で四捨五入。
- Cは24bppにおける赤/緑/青用のカラーデータ(符号なし8ビット値)。
- c2、c1、c0 は基本色データフォーマットにおける色データのビット値。
- c0がLSB。
R:G:B |
0:x:x |
1:x:x |
2:x:x |
3:x:x |
4:x:x |
5:x:x |
6:x:x |
7:x:x |
x:0:0 |
0:0:0 ($00) |
1:0:0 ($01) |
2:0:0 ($02) |
3:0:0 ($03) |
4:0:0 ($04) |
5:0:0 ($05) |
6:0:0 ($06) |
7:0:0 ($07) |
x:1:0 |
0:1:0 ($08) |
1:1:0 ($09) |
2:1:0 ($0A) |
3:1:0 ($0B) |
4:1:0 ($0C) |
5:1:0 ($0D) |
6:1:0 ($0E) |
7:1:0 ($0F) |
x:2:0 |
0:2:0 ($10) |
1:2:0 ($11) |
2:2:0 ($12) |
3:2:0 ($13) |
4:2:0 ($14) |
5:2:0 ($15) |
6:2:0 ($16) |
7:2:0 ($17) |
x:3:0 |
0:3:0 ($18) |
1:3:0 ($19) |
2:3:0 ($1A) |
3:3:0 ($1B) |
4:3:0 ($1C) |
5:3:0 ($1D) |
6:3:0 ($1E) |
7:3:0 ($1F) |
x:4:0 |
0:4:0 ($20) |
1:4:0 ($21) |
2:4:0 ($22) |
3:4:0 ($23) |
4:4:0 ($24) |
5:4:0 ($25) |
6:4:0 ($26) |
7:4:0 ($27) |
x:5:0 |
0:5:0 ($28) |
1:5:0 ($29) |
2:5:0 ($2A) |
3:5:0 ($2B) |
4:5:0 ($2C) |
5:5:0 ($2D) |
6:5:0 ($2E) |
7:5:0 ($2F) |
x:6:0 |
0:6:0 ($30) |
1:6:0 ($31) |
2:6:0 ($32) |
3:6:0 ($33) |
4:6:0 ($34) |
5:6:0 ($35) |
6:6:0 ($36) |
7:6:0 ($37) |
x:7:0 |
0:7:0 ($38) |
1:7:0 ($39) |
2:7:0 ($3A) |
3:7:0 ($3B) |
4:7:0 ($3C) |
5:7:0 ($3D) |
6:7:0 ($3E) |
7:7:0 ($3F) |
x:0:1 |
0:0:1 ($40) |
1:0:1 ($41) |
2:0:1 ($42) |
3:0:1 ($43) |
4:0:1 ($44) |
5:0:1 ($45) |
6:0:1 ($46) |
7:0:1 ($47) |
x:1:1 |
0:1:1 ($48) |
1:1:1 ($49) |
2:1:1 ($4A) |
3:1:1 ($4B) |
4:1:1 ($4C) |
5:1:1 ($4D) |
6:1:1 ($4E) |
7:1:1 ($4F) |
x:2:1 |
0:2:1 ($50) |
1:2:1 ($51) |
2:2:1 ($52) |
3:2:1 ($53) |
4:2:1 ($54) |
5:2:1 ($55) |
6:2:1 ($56) |
7:2:1 ($57) |
x:3:1 |
0:3:1 ($58) |
1:3:1 ($59) |
2:3:1 ($5A) |
3:3:1 ($5B) |
4:3:1 ($5C) |
5:3:1 ($5D) |
6:3:1 ($5E) |
7:3:1 ($5F) |
x:4:1 |
0:4:1 ($60) |
1:4:1 ($61) |
2:4:1 ($62) |
3:4:1 ($63) |
4:4:1 ($64) |
5:4:1 ($65) |
6:4:1 ($66) |
7:4:1 ($67) |
x:5:1 |
0:5:1 ($68) |
1:5:1 ($69) |
2:5:1 ($6A) |
3:5:1 ($6B) |
4:5:1 ($6C) |
5:5:1 ($6D) |
6:5:1 ($6E) |
7:5:1 ($6F) |
x:6:1 |
0:6:1 ($70) |
1:6:1 ($71) |
2:6:1 ($72) |
3:6:1 ($73) |
4:6:1 ($74) |
5:6:1 ($75) |
6:6:1 ($76) |
7:6:1 ($77) |
x:7:1 |
0:7:1 ($78) |
1:7:1 ($79) |
2:7:1 ($7A) |
3:7:1 ($7B) |
4:7:1 ($7C) |
5:7:1 ($7D) |
6:7:1 ($7E) |
7:7:1 ($7F) |
x:0:2 |
0:0:2 ($80) |
1:0:2 ($81) |
2:0:2 ($82) |
3:0:2 ($83) |
4:0:2 ($84) |
5:0:2 ($85) |
6:0:2 ($86) |
7:0:2 ($87) |
x:1:2 |
0:1:2 ($88) |
1:1:2 ($89) |
2:1:2 ($8A) |
3:1:2 ($8B) |
4:1:2 ($8C) |
5:1:2 ($8D) |
6:1:2 ($8E) |
7:1:2 ($8F) |
x:2:2 |
0:2:2 ($90) |
1:2:2 ($91) |
2:2:2 ($92) |
3:2:2 ($93) |
4:2:2 ($94) |
5:2:2 ($95) |
6:2:2 ($96) |
7:2:2 ($97) |
x:3:2 |
0:3:2 ($98) |
1:3:2 ($99) |
2:3:2 ($9A) |
3:3:2 ($9B) |
4:3:2 ($9C) |
5:3:2 ($9D) |
6:3:2 ($9E) |
7:3:2 ($9F) |
x:4:2 |
0:4:2 ($A0) |
1:4:2 ($A1) |
2:4:2 ($A2) |
3:4:2 ($A3) |
4:4:2 ($A4) |
5:4:2 ($A5) |
6:4:2 ($A6) |
7:4:2 ($A7) |
x:5:2 |
0:5:2 ($A8) |
1:5:2 ($A9) |
2:5:2 ($AA) |
3:5:2 ($AB) |
4:5:2 ($AC) |
5:5:2 ($AD) |
6:5:2 ($AE) |
7:5:2 ($AF) |
x:6:2 |
0:6:2 ($B0) |
1:6:2 ($B1) |
2:6:2 ($B2) |
3:6:2 ($B3) |
4:6:2 ($B4) |
5:6:2 ($B5) |
6:6:2 ($B6) |
7:6:2 ($B7) |
x:7:2 |
0:7:2 ($B8) |
1:7:2 ($B9) |
2:7:2 ($BA) |
3:7:2 ($BB) |
4:7:2 ($BC) |
5:7:2 ($BD) |
6:7:2 ($BE) |
7:7:2 ($BF) |
x:0:3 |
0:0:3 ($C0) |
1:0:3 ($C1) |
2:0:3 ($C2) |
3:0:3 ($C3) |
4:0:3 ($C4) |
5:0:3 ($C5) |
6:0:3 ($C6) |
7:0:3 ($C7) |
x:1:3 |
0:1:3 ($C8) |
1:1:3 ($C9) |
2:1:3 ($CA) |
3:1:3 ($CB) |
4:1:3 ($CC) |
5:1:3 ($CD) |
6:1:3 ($CE) |
7:1:3 ($CF) |
x:2:3 |
0:2:3 ($D0) |
1:2:3 ($D1) |
2:2:3 ($D2) |
3:2:3 ($D3) |
4:2:3 ($D4) |
5:2:3 ($D5) |
6:2:3 ($D6) |
7:2:3 ($D7) |
x:3:3 |
0:3:3 ($D8) |
1:3:3 ($D9) |
2:3:3 ($DA) |
3:3:3 ($DB) |
4:3:3 ($DC) |
5:3:3 ($DD) |
6:3:3 ($DE) |
7:3:3 ($DF) |
x:4:3 |
0:4:3 ($E0) |
1:4:3 ($E1) |
2:4:3 ($E2) |
3:4:3 ($E3) |
4:4:3 ($E4) |
5:4:3 ($E5) |
6:4:3 ($E6) |
7:4:3 ($E7) |
x:5:3 |
0:5:3 ($E8) |
1:5:3 ($E9) |
2:5:3 ($EA) |
3:5:3 ($EB) |
4:5:3 ($EC) |
5:5:3 ($ED) |
6:5:3 ($EE) |
7:5:3 ($EF) |
x:6:3 |
0:6:3 ($F0) |
1:6:3 ($F1) |
2:6:3 ($F2) |
3:6:3 ($F3) |
4:6:3 ($F4) |
5:6:3 ($F5) |
6:6:3 ($F6) |
7:6:3 ($F7) |
x:7:3 |
0:7:3 ($F8) |
1:7:3 ($F9) |
2:7:3 ($FA) |
3:7:3 ($FB) |
4:7:3 ($FC) |
5:7:3 ($FD) |
6:7:3 ($FE) |
7:7:3 ($FF) |
備考
- 元はアナログ映像信号なので、ここで挙げた色は目安程度に考えること。
- 実機では、
- 基本色を納めたROM(82S123相当品?)から赤/緑/青ごとに3~2ビットの信号が出力される。
- その信号線に、ビットごとの色の強さに応じた抵抗値を持つ電気抵抗が接続されている。
- 最終的にそれら3~2本の信号線を1本の映像信号にまとめて(これが赤/緑/青で計3本分)CRTへ。
- ……という感じらしい(たぶん)。
- 一覧表の計算式は、まどさんが抵抗値から算出された「各ビットの比」を元にしている。
余談