ドラクエ風RPGファミコンプログラム講座
【NES 基礎知識編】
【ビデオメモリーとPPU】
*ファミコンでの画像処理は、PPUが担当しておりメインメモリーの
I/Oポート $2006・$2007 からアクセスします。
$2006 はアドレスレジスタ、$2007はデータレジスタで、
PPUの管理するメモリー(VRAM)を操作します。
VRAMにはメモリーマップがあってパターンデータ、ネームテーブル、
パレットデータ、アトリビュート(属性)
[コントロールレジスタ]
I/Oポートの $2000~$2002 は、コントロールレジスタといって
各種設定する所で各BITが意味を持っています,これをビットフラグといいます。
[$2000]
BIT7:VBlank割り込みを許可(0:禁止 1:許可)
BIT6:PPUのマスターMODE(通常は0を選択)
BIT5:スプライトサイズ 0:8x8 1:8x16
BIT4:背景パターンテーブルアドレス指定 0:$0000、 1:$1000
BIT3:3 スプライトパターンテーブルアドレス指定 0:$0000、 1:$1000
BIT2:PPUアドレスインクリメント 0:+1 1:+32
BIT1-0:ネームテーブルセレクト 00:$2000 01:$2400 10:$2800 11:$2c00
[$2001]
BIT7-5:背景色の強調 000:無し 001:緑 010:青 100:赤 (それ以外は不可)
BIT4:スプライトの表示 0:非表示 1:表示
BIT3:BGの表示 0:非表示 1:表示
BIT2:スプライトクリップ(画面の左8ドットの表示) 0:非表示 1:表示
BIT1:BGクリップ (画面の左8ドットの表示) 0:非表示 1:表示
BIT0:ディスプレイモード 0:カラーモード 1:モノクロモード
[$2003~$2004]: スプライト関係。
[$2005]:背景スクロールレジスタ。
[$2006]:アドレスレジスタ。
[$2007]:データーレジス。
【PPUメモリーマップ】
[$0000~$1FFF]: パターンデータ
[$2000~$23BF]:ネームテーブル1
[$23C0~$23FF]:属性テーブ1
[$2400~$27BF]:ネームテーブル2
[$27C0~$27FF]:属性テーブル2
[$2800~$2BBF]:ネームテーブル3
[$2BC0~$2BFF]:属性テーブル3
[$2C00~$2FBFネームテーブル2
[$2FC0~$2FFF]:属性テーブル2
[$3000~$3EFF]:未使用
[$3F00~$3F1F]: パレットテーブル
[$3F20~$3FFF]: 未使用
[$4000~$FFFF]: 未使用
⁂次回は、パレットの設定を予定しております。