The registers live at 0x04000000 and up; each address below is that base plus the offset. The names are GBATEK’s
(“GBA I/O Map”), checked against the register table of the gbajs emulator. The viewer
puts a name on a branch target or a referenced address when it is one of these. The meaning of each bit is not described here.
Display
| Address | Name | Size | Meaning |
|---|---|---|---|
0x04000000 | DISPCNT | 2 | LCD control |
0x04000004 | DISPSTAT | 2 | General LCD status |
0x04000006 | VCOUNT | 2 | Vertical counter (the line being drawn) |
0x04000008 | BG0CNT | 2 | Background 0 control |
0x0400000A | BG1CNT | 2 | Background 1 control |
0x0400000C | BG2CNT | 2 | Background 2 control |
0x0400000E | BG3CNT | 2 | Background 3 control |
0x04000010 | BG0HOFS | 2 | Background 0 horizontal offset |
0x04000012 | BG0VOFS | 2 | Background 0 vertical offset |
0x04000014 | BG1HOFS | 2 | Background 1 horizontal offset |
0x04000016 | BG1VOFS | 2 | Background 1 vertical offset |
0x04000018 | BG2HOFS | 2 | Background 2 horizontal offset |
0x0400001A | BG2VOFS | 2 | Background 2 vertical offset |
0x0400001C | BG3HOFS | 2 | Background 3 horizontal offset |
0x0400001E | BG3VOFS | 2 | Background 3 vertical offset |
0x04000020 | BG2PA | 2 | Background 2 rotation and scaling parameter A |
0x04000022 | BG2PB | 2 | Background 2 parameter B |
0x04000024 | BG2PC | 2 | Background 2 parameter C |
0x04000026 | BG2PD | 2 | Background 2 parameter D |
0x04000028 | BG2X | 4 | Background 2 reference point X |
0x0400002C | BG2Y | 4 | Background 2 reference point Y |
0x04000030 | BG3PA | 2 | Background 3 rotation and scaling parameter A |
0x04000032 | BG3PB | 2 | Background 3 parameter B |
0x04000034 | BG3PC | 2 | Background 3 parameter C |
0x04000036 | BG3PD | 2 | Background 3 parameter D |
0x04000038 | BG3X | 4 | Background 3 reference point X |
0x0400003C | BG3Y | 4 | Background 3 reference point Y |
0x04000040 | WIN0H | 2 | Window 0 horizontal dimensions |
0x04000042 | WIN1H | 2 | Window 1 horizontal dimensions |
0x04000044 | WIN0V | 2 | Window 0 vertical dimensions |
0x04000046 | WIN1V | 2 | Window 1 vertical dimensions |
0x04000048 | WININ | 2 | Inside of window 0 and 1 |
0x0400004A | WINOUT | 2 | Inside of the object window and outside of windows |
0x0400004C | MOSAIC | 2 | Mosaic size |
0x04000050 | BLDCNT | 2 | Colour special effects selection |
0x04000052 | BLDALPHA | 2 | Alpha blending coefficients |
0x04000054 | BLDY | 2 | Brightness (fade in/out) coefficient |
Sound
| Address | Name | Size | Meaning |
|---|---|---|---|
0x04000060 | SOUND1CNT_L | 2 | Channel 1 sweep |
0x04000062 | SOUND1CNT_H | 2 | Channel 1 duty, length, envelope |
0x04000064 | SOUND1CNT_X | 2 | Channel 1 frequency, control |
0x04000068 | SOUND2CNT_L | 2 | Channel 2 duty, length, envelope |
0x0400006C | SOUND2CNT_H | 2 | Channel 2 frequency, control |
0x04000070 | SOUND3CNT_L | 2 | Channel 3 stop and wave RAM select |
0x04000072 | SOUND3CNT_H | 2 | Channel 3 length, volume |
0x04000074 | SOUND3CNT_X | 2 | Channel 3 frequency, control |
0x04000078 | SOUND4CNT_L | 2 | Channel 4 length, envelope |
0x0400007C | SOUND4CNT_H | 2 | Channel 4 frequency, control |
0x04000080 | SOUNDCNT_L | 2 | Control of channels 1-4 (volume, enables) |
0x04000082 | SOUNDCNT_H | 2 | Control of direct sound A and B and mixing |
0x04000084 | SOUNDCNT_X | 2 | Sound on/off |
0x04000088 | SOUNDBIAS | 2 | PWM control and bias |
0x04000090 | WAVE_RAM | 16 | Channel 3 wave pattern RAM (16 bytes) |
0x040000A0 | FIFO_A | 4 | Direct sound channel A FIFO |
0x040000A4 | FIFO_B | 4 | Direct sound channel B FIFO |
DMA
| Address | Name | Size | Meaning |
|---|---|---|---|
0x040000B0 | DMA0SAD | 4 | DMA 0 source address |
0x040000B4 | DMA0DAD | 4 | DMA 0 destination address |
0x040000B8 | DMA0CNT_L | 2 | DMA 0 word count |
0x040000BA | DMA0CNT_H | 2 | DMA 0 control |
0x040000BC | DMA1SAD | 4 | DMA 1 source address |
0x040000C0 | DMA1DAD | 4 | DMA 1 destination address |
0x040000C4 | DMA1CNT_L | 2 | DMA 1 word count |
0x040000C6 | DMA1CNT_H | 2 | DMA 1 control |
0x040000C8 | DMA2SAD | 4 | DMA 2 source address |
0x040000CC | DMA2DAD | 4 | DMA 2 destination address |
0x040000D0 | DMA2CNT_L | 2 | DMA 2 word count |
0x040000D2 | DMA2CNT_H | 2 | DMA 2 control |
0x040000D4 | DMA3SAD | 4 | DMA 3 source address |
0x040000D8 | DMA3DAD | 4 | DMA 3 destination address |
0x040000DC | DMA3CNT_L | 2 | DMA 3 word count |
0x040000DE | DMA3CNT_H | 2 | DMA 3 control |
Timers
| Address | Name | Size | Meaning |
|---|---|---|---|
0x04000100 | TM0CNT_L | 2 | Timer 0 counter and reload |
0x04000102 | TM0CNT_H | 2 | Timer 0 control |
0x04000104 | TM1CNT_L | 2 | Timer 1 counter and reload |
0x04000106 | TM1CNT_H | 2 | Timer 1 control |
0x04000108 | TM2CNT_L | 2 | Timer 2 counter and reload |
0x0400010A | TM2CNT_H | 2 | Timer 2 control |
0x0400010C | TM3CNT_L | 2 | Timer 3 counter and reload |
0x0400010E | TM3CNT_H | 2 | Timer 3 control |
Serial, keypad and interrupts
| Address | Name | Size | Meaning |
|---|---|---|---|
0x04000120 | SIODATA32 | 4 | Serial data (normal mode, 32-bit); also SIOMULTI0 and SIOMULTI1 |
0x04000122 | SIOMULTI1 | 2 | Serial data 1 (multi-player mode) |
0x04000124 | SIOMULTI2 | 2 | Serial data 2 (multi-player mode) |
0x04000126 | SIOMULTI3 | 2 | Serial data 3 (multi-player mode) |
0x04000128 | SIOCNT | 2 | Serial control |
0x0400012A | SIOMLT_SEND | 2 | Serial send data (multi-player); also SIODATA8 |
0x04000130 | KEYINPUT | 2 | Key status (0 = pressed) |
0x04000132 | KEYCNT | 2 | Key interrupt control |
0x04000134 | RCNT | 2 | Serial mode selection (R) |
0x04000140 | JOYCNT | 2 | Joy bus control |
0x04000150 | JOY_RECV | 4 | Joy bus receive data |
0x04000154 | JOY_TRANS | 4 | Joy bus transmit data |
0x04000158 | JOYSTAT | 2 | Joy bus receive status |
0x04000200 | IE | 2 | Interrupt enable |
0x04000202 | IF | 2 | Interrupt request flags, write 1 to acknowledge |
0x04000204 | WAITCNT | 2 | Game Pak wait-state control |
0x04000208 | IME | 2 | Interrupt master enable |
0x04000300 | POSTFLG | 1 | Post boot flag |
0x04000301 | HALTCNT | 1 | Power-down control |