GBAは96KBのVRAMを0x0600_0000-0x0601_7fff
に持っています。VRAMの使い方はDISPCNTで設定するBGモードによって異なります。
BGマップは、8x8のタイルデータを画面上にどのように配置していくかを表すデータです。背景マップや、タイルマップとも呼ばれます。
タイルモード(Mode0-2)でのみ利用します。
BGマップは、BGレイヤが伸縮回転するかしないかで内容が異なります。
各エントリ(1タイルの配置を担当)あたり2バイトです。
Specifies the tile number and attributes. Note that BG tile numbers are always specified in steps of 1 (unlike OBJ tile numbers which are using steps of two in 256 color/1 palette mode).
bit | 内容 |
---|---|
0-9 | タイル番号 (0-1023) (a bit less in 256 color mode, because there'd be otherwise no room for the bg map) |
10 | X反転 (0=しない, 1=反転) |
11 | Y反転 (0=しない, 1=反転) |
12-15 | パレット番号 (0-15) (256色/1パレットのときは使用しない) |
BGマップは、32タイル×32タイル(256px×256px)が1単位で、大きさは 32×32×2 = 2KBとなります。これはマップブロックの大きさと一致します。
もちろんBGのサイズによっては複数のBGマップが必要になることもあります。 例えば512px×512pxのBGが必要な場合はBGマップが4つ必要になります。 この場合BGマップが配置されるマップブロックは連続している必要があります。
各エントリ(1タイルの配置を担当)あたり1バイトです。
伸縮回転モードでは256タイルのみが利用可能で、XY方向の反転属性はなく色深度も256色/1パレットのみ利用可能です。
bit | 内容 |
---|---|
0-7 | タイル番号 (0-255) |
BGマップの大きさとVRAMのどこに配置されるかは、BG0-3それぞれ別々の値を取ることが可能です。
BGマップのサイズの設定はBG制御レジスタのbit14-15でおこないます。
VRAMの配置場所の設定はBG制御レジスタのbit8-12でおこないます。