ドラクエ風RPGファミコンプログラム講座 パターンテーブルの仕組み
第17回
【アセンブラ入門編】
『2進数と16進数の解説』
*アセンブラを学習するには、2進数と16進数は避けて通れないものです
✖✖進数というのは、××になると桁上がりするということです
すなわち2進数なら2になったら、16進数なら16になったら桁が上がる
ということです、具体的に言うと 0000,0001,0010,0011,0100
のようになります、 16進数のほうは、1桁に0~15を表現しなければ
なりません、どの様に表現するかというと0~9はそのまま10~15を
アルファベットのA~Fで代用します、 0,1,3,4,5,6,7,8,9
A,B,C,D,E,F のように表現します。
『アドレス空間とBANK』
*PPUアドレス空間は、BANK 2に割り当てられてます、BANK 0は
メインメモリのアドレス空間、BANK 1は、割り込みベクターになっています。
『パターンテーブルの仕組み』
PPUアドレス
$0000-$0FFF パターンテーブル LOW
$1000-$1FFF パターンテーブル HIGH
*ファミコンのパターンテーブルは8×8ピクセルのタイルパターンを256個格納出来ます、1ピクセル当たり2ビットで表現され4色が使用可能です、
それが BG・スプライト用に2つあります、それを切り替えることもできます。
プレーン0 プレーン1 16進データ
00100000 00000000 $20 $00
00110000 00000000 $30 $00
00111000 00000000 $38 $00
00111100 00000000 $3C $00
00111100 00000000 $3C $00
00111000 00000000 $38 $00
00110000 00000000 $30 $00
00100000 00000000 $20 $00
『パレットとプレーンの関係』
*1ピクセル2ビットというのは、プレーン0が0プレーン1が0のとき、
パレット番号は0 プレーン0が1 プレーン1が0のとき パレット番号は1
プレーン0が1 プレーン1が1のとき、それがパレット番号は3になります。
下のコードを【画像1】のように入力して、コンパイル実行して、
FUECXのPPU Viewerで確認して下さい。
パターンテーブルに、カーソルが設定されているのが、わかります。
【画像2】 本来ならば、パターンエディター等を使うところですが、
仕組みを,覚えることも大事なことなので、今回は手作業でやってみました。
次回は、スプライトを、表示してみようと思います。
;********************************************************************
.bank 2
.org $0000
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.db $20,$30,$38,$3C,$3C,$38,$30,$20,$00,$00,$00,$00,$00,$00,$00,$00
【画像1】
㏍
【画像2】