Skip to content

Latest commit

 

History

History
42 lines (25 loc) · 2.21 KB

bgmap.md

File metadata and controls

42 lines (25 loc) · 2.21 KB

BGマップ

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でおこないます。