ドラクエ風RPGファミコンプログラム講座

NES 基礎知識編】

【コントロールレジスタ $2000 

*コントロールレジスタ  $2000 は、ビットフラグに

 なっていて各々のBITがs/wになっています。

bit7: VBlank割り込みフラグ  1:割り込み許可 0:割り込み禁止

bit6: PPUマスター/スレーブセレクト 0:マスター 1:スレーブ (通常は0)

bit5: スプライトのサイズ

bit4: BGパターンDATAセレクト

bit3: スプライトパターンDATAセレクト

bit2: PPUアドレスインクリメント

bit1~0: 表示ネームテーブルセレクト

【VBlank(垂直帰線区間)】

【$2000詳細

*VBlankとは垂直帰線区間とも言い、PPUが描画を終えて再び描画に移る

 合間のことを言い、画面の更新はこの期間に行われなければ成らない。

⑴ VBlankフラグ

 $2000のbit7は、VBlank時にCPUによる割り込みを発生させるs/wで、

 割り込みベクター1番目に設定したアドレスにJMPします、

 これをVBlank割り込みルーチンと言い、ゲームのメインルーチンに使用します。

 尚 割り込みルーチンからの帰還には。RTIを使います。

⑵ PPUマスター/スレーブセレクト

 通常は0を設定する。

⑶ スプライトのサイズ

 bit5は、スプライトサイズの設定で、0:8x8 1:8x16

 ほとんどのゲームが、8x8を使用してい。

⑷ BGパターンDATAセレクト

 bit4は、BGのパターンDATAが $0000 又は $1000 を使うかのフラグ。 

  0:$0000  1:$1000

⑸ スプライトパターンDATAセレクト

 bit3は、スプライトパターンが $0000 又は $1000 を使うかのフラグ 。

  0:$0000  1:$1000

⑹ PPUアドレスインクリメント

 bit2 はPPUアドレスの自動インクリメントで、0:+1 1:+32

 +32は、縦書き描画に便利、$2007を読み書きすると自動でプラスされる。

⑺ 表示ネームテーブルセレクト

 bit1~0 は、描画を表示開始 SCREEN を設定する

 00: $2000 01: $2400 10: $2700 11: $2c00

 

 

f:id:chien1956:20200220202414p:plain