ドラクエ風RPGファミコンプログラム パレットの設定
第15回
*今回からは、やっと本題であるファミコンの
プログラミングをやります。
【パレットの設定】
ファミコンのパレットコードは $00~$3f で、
64色(実際には52色)中、同時に16色使えます。
パレットは BG・スプライト各 4色4セット
用意されて います。
【パレット1欄】
パレットテーブルは、PPUメモリの$3F00~$3F1F
なの で、アドレスレジスタの$2006に、
ロード先のアドレス$3F00を書き込みます。
しかしレジスタのサイズは8ビットなので、
2回に分けて書き込みます。
*下は、パレットテーブルのアドレスを
アドレスレジスタ に書き込むコード。
lda #$3f
sta $2006 ;アドレスレジスタ $2006に、
; パレットテーブルのアドレス上位$3fを
;書き込む。
lda #$00 ;アドレスレジスタ $2006に、
sta $2006 ;パレットテーブルのアドレス下位$00を
;書き込む。
パレットデーターの書き込みは、データーレジスタ$2007に、書き込みます。
*下は、パレットデーターをアドレスを
データーレジスタに書き込むコード。
lda #$20 ;パレットデーター(白色)をAレジスタsta $2007 ;にセット。
;パレットデーターを,データーレジスタ ;$2007に、書き込む。
*上に記載したコードをTEST用のプログラムに書いて、 コンパイル、実行してください。
画面が白くなったと思います、それは背景色に $20 を 設定したからです。
FUECXのDebug~PPU Viewerで、確認してください。
パレットが 設定されているのがわかります。
×印が、設定されたところ。
【PPU画像】
*パレットデータの値を変えて、試して見て下さい、
0番目は、$0f(黒色)を設定するのが、
一般的です。
次回は、パレットの続きをやります。