まずは簡単なマッパーを試してみましょう。最も簡単なマッパーは、マッパー3(CNROM)だと思われます。 このマッパーはファミコンの歴史の中でも初期のマッパーで、特長は容量がマッパー0の倍になっていることです。 たったそれだけか!と言われればその通りで、倍でも足りないのですが、まずは最初ってことでこのマッパーを使用しましょう。
マッパー3を使用するには、NESヘッダを以下のように設定します。
.inesprg 1 ; - プログラム1バンク .ineschr 2 ; - グラフィック2バンク .inesmir 1 ; - 垂直ミラーリング .inesmap 3 ; - マッパー3番(CNROM)グラフィックを倍の2バンク使用するので、.neschrに2を指定します。.inesmapには3を指定します。 グラフィックのバンクは以下のように記述します。
.bank 2 ; バンク2 .org $0000 ; $0000から開始 .incbin "giko4.spr" ; スプライトデータ .incbin "giko7.bkg" ; 地形BGデータ .bank 3 ; バンク3 .org $0000 ; $0000から開始 .incbin "giko4.spr" ; スプライトデータ .incbin "giko8.bkg" ; 敵&メッセージBGデータこのように、スプライトとBGを従来の倍持つことができます。ただし、同時に使用できる量は変わりません。 同時に使える量は、ファミコンハードのRAM容量の問題なので、いくらROM容量を増やしてもどうにもなりません。 また、倍になったバンクから、好きなデータを自由に選んで利用することもできません。バンク2か3どちらか一方だけを 同時に使用できます。それを切り替えるにはバンク切り替えを行います。バンク切り替えは以下のようにします。
; VROMバンク切り替え lda #3 ; バンク3 sta $8000従来ならROM領域の$8000にstaするなんてとんでもない!となるはずですが、0番以外のマッパーではこれが常套手段になります。 マッパー3では、$8000~$FFFFまでのどこかに、切り替えたいバンクを書き込むだけでバンク切り替えができます。
このサンプルのBGキャラはマッパー0でも入りきるので、2バンクにする意味はあまり無いのですが、まあサンプルだからってことで。
スクロール移動や地形の判定は、次章のテーマにでもしましょう。ちょっと難航しているので・・・。
他のマッパーも扱いたいところです。
近況(2004/6/20) 4方向スクロール面倒くさくてやる気でねー・・・。
4方向スクロールはnesdev.parodius.comにScroll Demoというサンプルがあるので、それを参考にするといいと思います。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||