DSプログラミング楽しや。


風邪が落ち着いてきたんで少しだけプログラム書いて遊んだ。
今度は画像をタイルマップとしてlibndsのコンソールと重ねて表示させてみた。


上画面・下画面8ビットタイルマップ表示、上画面コンソール表示デモ(簡易版)(画像1)
RGKT-NDS-TEST-002(1)


ついでに一昨日書いたBMP表示サンプルもメッセージを書き直してデモらしくしてみた。


上画面・下画面16ビットBMP表示、上画面コンソール表示デモ(簡易版)(画像2)
RGKT-NDS-TEST-001(2)


BGを描画する際に利用するVRAM関連のマクロ定義で


#define BG_MAP_RAM(base) (((base)*0x800) + 0x06000000)
#define BG_TILE_RAM(base) (((base)*0x4000) + 0x06000000)


というやつ。


タイルRAMが1ブロックに付き16KBのベース0〜31まであるってのは直ぐ納得いったんだが
マップRAMが1ブロックに付き2KBのベース0〜31までっていうのは
オフセットから数えて64KBまでのところでマップデータをやりくりしなくてはならないということなのか?

GBA時代の構成そのままみたいね。
GBAのVRAM96KBのうち最初の64KBをタイル(ベース0〜3)またはマップ(ベース0〜31)として各自定義するという仕様。
NDSでは更にタイル領域が拡張されたといった具合。


***


兎にも角にも2D描画周りは触り程度に解りだして来たので
そろそろゲームコーディング学習へ進むとしよう。