ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【第42回】

 

『マップ描画編』

1.ファミコンNES)の画面構成

  NESには、ネームテーブルというテキスト画面が1面とスプライトがあす。   

  テキスト画面は、256x240 (8x8キャラ)で32x30の表示が可能、

  水直ミラーリング時には、512x240・水平ミラーリング時んは、256x480に

  すことも可能、スプライトは8x8のパターンが64個同時に表示可能しかし

  水平には、最大で8個までしか表示できません。

2.テキスト画面とスプライト

  テキスト画面は、一般的に背景や文字を表示するもので、

  スプライトはキャラクターや動的なものに使用します。

  テキストやスプライトのパターンDATAは、PPUのメモリー$0000~$1fff

  のROMに割り当てられており、$0000からと$1000をテキスト用・

  スプライト用にPPUコントロールレジスタ $2000 により切り替えられます。

  テキストの表示は、スクリーン0 $2000 ~$23bf スクリーン1 $2400~$27bf

       (水平ミラーリング時)のRAMに割り当てられています。

3.アトリビュート

  アトリビュート(属性)は、タイルパターンにパレットを指定するのもで、

  $23c0~$23c0 と $27c0~$27ff に割り当てられています。

  アトリビュートは、かなり変則的なので後で詳しく解説します。

4.マップDATAのフォーマット

  1タイル当たり8ビットその内上位2ビットをパレットDATAとします。

  0000_0001 赤色のところがパレット(属性)DATAで、

  残りの6BITがタイルIDです。

5.MAPタイルの構成

   *下記のようなDATA構成になります。

Tip_data:

 .db $00,$00,$00,$00;海

 .db $01,$02,$03,$04;草原

6.ミラーリング

  下の画像の通り水平に同じ画面が描画されるのが水平ミラーリングです。

【水平ミラーリング

f:id:chien1956:20200129121551p:plain

下の画像の通り水直に同じ画面が描画されるのが水直ミラーリングです。

【水直ミラーリング

f:id:chien1956:20200129121616p:plain

*画像は、WIKIからお借りしました。

 

⁂次回は、MAPタイルの表示です。