ドラクエ風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]: 未使用

⁂次回は、パレットの設定を予定しております。

f:id:chien1956:20200104080721j:plain