|
IWRAM 'registers' |
#define | REG_IFBIOS *(vu16*)(REG_BASE-0x0008) |
| IRQ ack for IntrWait functions.
|
#define | REG_RESET_DST *(vu16*)(REG_BASE-0x0006) |
| Destination for after SoftReset.
|
#define | REG_ISR_MAIN *(fnptr*)(REG_BASE-0x0004) |
| IRQ handler address.
|
Display registers |
#define | REG_DISPCNT *(vu32*)(REG_BASE+0x0000) |
| Display control.
|
#define | REG_DISPSTAT *(vu16*)(REG_BASE+0x0004) |
| Display status.
|
#define | REG_VCOUNT *(vu16*)(REG_BASE+0x0006) |
| Scanline count.
|
Background control registers |
#define | REG_BGCNT ((vu16*)(REG_BASE+0x0008)) |
| Bg control array.
|
#define | REG_BG0CNT *(vu16*)(REG_BASE+0x0008) |
| Bg0 control.
|
#define | REG_BG1CNT *(vu16*)(REG_BASE+0x000A) |
| Bg1 control.
|
#define | REG_BG2CNT *(vu16*)(REG_BASE+0x000C) |
| Bg2 control.
|
#define | REG_BG3CNT *(vu16*)(REG_BASE+0x000E) |
| Bg3 control.
|
Regular background scroll registers. (write only!) |
#define | REG_BG_OFS ((BG_POINT*)(REG_BASE+0x0010)) |
| Bg scroll array.
|
#define | REG_BG0HOFS *(vu16*)(REG_BASE+0x0010) |
| Bg0 horizontal scroll.
|
#define | REG_BG0VOFS *(vu16*)(REG_BASE+0x0012) |
| Bg0 vertical scroll.
|
#define | REG_BG1HOFS *(vu16*)(REG_BASE+0x0014) |
| Bg1 horizontal scroll.
|
#define | REG_BG1VOFS *(vu16*)(REG_BASE+0x0016) |
| Bg1 vertical scroll.
|
#define | REG_BG2HOFS *(vu16*)(REG_BASE+0x0018) |
| Bg2 horizontal scroll.
|
#define | REG_BG2VOFS *(vu16*)(REG_BASE+0x001A) |
| Bg2 vertical scroll.
|
#define | REG_BG3HOFS *(vu16*)(REG_BASE+0x001C) |
| Bg3 horizontal scroll.
|
#define | REG_BG3VOFS *(vu16*)(REG_BASE+0x001E) |
| Bg3 vertical scroll.
|
Affine background parameters. (write only!) |
#define | REG_BG_AFFINE ((BG_AFFINE*)(REG_BASE+0x0000)) |
| Bg affine array.
|
#define | REG_BG2PA *(vs16*)(REG_BASE+0x0020) |
| Bg2 matrix.pa.
|
#define | REG_BG2PB *(vs16*)(REG_BASE+0x0022) |
| Bg2 matrix.pb.
|
#define | REG_BG2PC *(vs16*)(REG_BASE+0x0024) |
| Bg2 matrix.pc.
|
#define | REG_BG2PD *(vs16*)(REG_BASE+0x0026) |
| Bg2 matrix.pd.
|
#define | REG_BG2X *(vs32*)(REG_BASE+0x0028) |
| Bg2 x scroll.
|
#define | REG_BG2Y *(vs32*)(REG_BASE+0x002C) |
| Bg2 y scroll.
|
#define | REG_BG3PA *(vs16*)(REG_BASE+0x0030) |
| Bg3 matrix.pa.
|
#define | REG_BG3PB *(vs16*)(REG_BASE+0x0032) |
| Bg3 matrix.pb.
|
#define | REG_BG3PC *(vs16*)(REG_BASE+0x0034) |
| Bg3 matrix.pc.
|
#define | REG_BG3PD *(vs16*)(REG_BASE+0x0036) |
| Bg3 matrix.pd.
|
#define | REG_BG3X *(vs32*)(REG_BASE+0x0038) |
| Bg3 x scroll.
|
#define | REG_BG3Y *(vs32*)(REG_BASE+0x003C) |
| Bg3 y scroll.
|
Windowing registers |
#define | REG_WIN0H *(vu16*)(REG_BASE+0x0040) |
| win0 right, left (0xLLRR)
|
#define | REG_WIN1H *(vu16*)(REG_BASE+0x0042) |
| win1 right, left (0xLLRR)
|
#define | REG_WIN0V *(vu16*)(REG_BASE+0x0044) |
| win0 bottom, top (0xTTBB)
|
#define | REG_WIN1V *(vu16*)(REG_BASE+0x0046) |
| win1 bottom, top (0xTTBB)
|
#define | REG_WININ *(vu16*)(REG_BASE+0x0048) |
| win0, win1 control
|
#define | REG_WINOUT *(vu16*)(REG_BASE+0x004A) |
| winOut, winObj control
|
Alternate Windowing registers |
#define | REG_WIN0R *(vu8*)(REG_BASE+0x0040) |
| Win 0 right.
|
#define | REG_WIN0L *(vu8*)(REG_BASE+0x0041) |
| Win 0 left.
|
#define | REG_WIN1R *(vu8*)(REG_BASE+0x0042) |
| Win 1 right.
|
#define | REG_WIN1L *(vu8*)(REG_BASE+0x0043) |
| Win 1 left.
|
#define | REG_WIN0B *(vu8*)(REG_BASE+0x0044) |
| Win 0 bottom.
|
#define | REG_WIN0T *(vu8*)(REG_BASE+0x0045) |
| Win 0 top.
|
#define | REG_WIN1B *(vu8*)(REG_BASE+0x0046) |
| Win 1 bottom.
|
#define | REG_WIN1T *(vu8*)(REG_BASE+0x0047) |
| Win 1 top.
|
#define | REG_WIN0CNT *(vu8*)(REG_BASE+0x0048) |
| window 0 control
|
#define | REG_WIN1CNT *(vu8*)(REG_BASE+0x0049) |
| window 1 control
|
#define | REG_WINOUTCNT *(vu8*)(REG_BASE+0x004A) |
| Out window control.
|
#define | REG_WINOBJCNT *(vu8*)(REG_BASE+0x004B) |
| Obj window control.
|
Graphic effects |
#define | REG_MOSAIC *(vu32*)(REG_BASE+0x004C) |
| Mosaic control.
|
#define | REG_BLDCNT *(vu16*)(REG_BASE+0x0050) |
| Alpha control.
|
#define | REG_BLDALPHA *(vu16*)(REG_BASE+0x0052) |
| Fade level.
|
#define | REG_BLDY *(vu16*)(REG_BASE+0x0054) |
| Blend levels.
|
Channel 1: Square wave with sweep |
#define | REG_SND1SWEEP *(vu16*)(REG_BASE+0x0060) |
| Channel 1 Sweep.
|
#define | REG_SND1CNT *(vu16*)(REG_BASE+0x0062) |
| Channel 1 Control.
|
#define | REG_SND1FREQ *(vu16*)(REG_BASE+0x0064) |
| Channel 1 frequency.
|
Channel 2: Simple square wave |
#define | REG_SND2CNT *(vu16*)(REG_BASE+0x0068) |
| Channel 2 control.
|
#define | REG_SND2FREQ *(vu16*)(REG_BASE+0x006C) |
| Channel 2 frequency.
|
Channel 3: Wave player |
#define | REG_SND3SEL *(vu16*)(REG_BASE+0x0070) |
| Channel 3 wave select.
|
#define | REG_SND3CNT *(vu16*)(REG_BASE+0x0072) |
| Channel 3 control.
|
#define | REG_SND3FREQ *(vu16*)(REG_BASE+0x0074) |
| Channel 3 frequency.
|
Channel 4: Noise generator |
#define | REG_SND4CNT *(vu16*)(REG_BASE+0x0078) |
| Channel 4 control.
|
#define | REG_SND4FREQ *(vu16*)(REG_BASE+0x007C) |
| Channel 4 frequency.
|
Sound control |
#define | REG_SNDCNT *(vu32*)(REG_BASE+0x0080) |
| Main sound control.
|
#define | REG_SNDDMGCNT *(vu16*)(REG_BASE+0x0080) |
| DMG channel control.
|
#define | REG_SNDDSCNT *(vu16*)(REG_BASE+0x0082) |
| Direct Sound control.
|
#define | REG_SNDSTAT *(vu16*)(REG_BASE+0x0084) |
| Sound status.
|
#define | REG_SNDBIAS *(vu16*)(REG_BASE+0x0088) |
| Sound bias.
|
Sound buffers |
#define | REG_WAVE_RAM (vu32*)(REG_BASE+0x0090) |
| Channel 3 wave buffer.
|
#define | REG_WAVE_RAM0 *(vu32*)(REG_BASE+0x0090) |
| Channel 3 wave buffer.
|
#define | REG_WAVE_RAM1 *(vu32*)(REG_BASE+0x0094) |
| Channel 3 wave buffer.
|
#define | REG_WAVE_RAM2 *(vu32*)(REG_BASE+0x0098) |
| Channel 3 wave buffer.
|
#define | REG_WAVE_RAM3 *(vu32*)(REG_BASE+0x009C) |
| Channel 3 wave buffer.
|
#define | REG_FIFO_A *(vu32*)(REG_BASE+0x00A0) |
| DSound A FIFO.
|
#define | REG_FIFO_B *(vu32*)(REG_BASE+0x00A4) |
| DSound B FIFO.
|
DMA registers |
#define | REG_DMA ((volatile DMA_REC*)(REG_BASE+0x00B0)) |
| DMA as DMA_REC array.
|
#define | REG_DMA0SAD *(vu32*)(REG_BASE+0x00B0) |
| DMA 0 Source address.
|
#define | REG_DMA0DAD *(vu32*)(REG_BASE+0x00B4) |
| DMA 0 Destination address.
|
#define | REG_DMA0CNT *(vu32*)(REG_BASE+0x00B8) |
| DMA 0 Control.
|
#define | REG_DMA1SAD *(vu32*)(REG_BASE+0x00BC) |
| DMA 1 Source address.
|
#define | REG_DMA1DAD *(vu32*)(REG_BASE+0x00C0) |
| DMA 1 Destination address.
|
#define | REG_DMA1CNT *(vu32*)(REG_BASE+0x00C4) |
| DMA 1 Control.
|
#define | REG_DMA2SAD *(vu32*)(REG_BASE+0x00C8) |
| DMA 2 Source address.
|
#define | REG_DMA2DAD *(vu32*)(REG_BASE+0x00CC) |
| DMA 2 Destination address.
|
#define | REG_DMA2CNT *(vu32*)(REG_BASE+0x00D0) |
| DMA 2 Control.
|
#define | REG_DMA3SAD *(vu32*)(REG_BASE+0x00D4) |
| DMA 3 Source address.
|
#define | REG_DMA3DAD *(vu32*)(REG_BASE+0x00D8) |
| DMA 3 Destination address.
|
#define | REG_DMA3CNT *(vu32*)(REG_BASE+0x00DC) |
| DMA 3 Control.
|
Timer registers |
#define | REG_TM ((volatile TMR_REC*)(REG_BASE+0x0100)) |
| Timers as TMR_REC array.
|
#define | REG_TM0D *(vu16*)(REG_BASE+0x0100) |
| Timer 0 data.
|
#define | REG_TM0CNT *(vu16*)(REG_BASE+0x0102) |
| Timer 0 control.
|
#define | REG_TM1D *(vu16*)(REG_BASE+0x0104) |
| Timer 1 data.
|
#define | REG_TM1CNT *(vu16*)(REG_BASE+0x0106) |
| Timer 1 control.
|
#define | REG_TM2D *(vu16*)(REG_BASE+0x0108) |
| Timer 2 data.
|
#define | REG_TM2CNT *(vu16*)(REG_BASE+0x010A) |
| Timer 2 control.
|
#define | REG_TM3D *(vu16*)(REG_BASE+0x010C) |
| Timer 3 data.
|
#define | REG_TM3CNT *(vu16*)(REG_BASE+0x010E) |
| Timer 3 control.
|
Serial communication |
#define | REG_SIOCNT *(vu16*)(REG_BASE+0x0128) |
| Serial IO control (Normal/MP/UART).
|
#define | REG_SIODATA ((vu32*)(REG_BASE+0x0120)) |
| Serial IO control (Normal/MP/UART).
|
#define | REG_SIODATA32 *(vu32*)(REG_BASE+0x0120) |
| Normal/UART 32bit data.
|
#define | REG_SIODATA8 *(vu16*)(REG_BASE+0x012A) |
| Normal/UART 8bit data.
|
#define | REG_SIOMULTI ((vu16*)(REG_BASE+0x0120)) |
| Multiplayer data array.
|
#define | REG_SIOMULTI0 *(vu16*)(REG_BASE+0x0120) |
| MP master data.
|
#define | REG_SIOMULTI1 *(vu16*)(REG_BASE+0x0122) |
| MP Slave 1 data.
|
#define | REG_SIOMULTI2 *(vu16*)(REG_BASE+0x0124) |
| MP Slave 2 data.
|
#define | REG_SIOMULTI3 *(vu16*)(REG_BASE+0x0126) |
| MP Slave 3 data.
|
#define | REG_SIOMLT_RECV *(vu16*)(REG_BASE+0x0120) |
| MP data receiver.
|
#define | REG_SIOMLT_SEND *(vu16*)(REG_BASE+0x012A) |
| MP data sender.
|
Keypad registers |
#define | REG_KEYINPUT *(vu16*)(REG_BASE+0x0130) |
| Key status (read only??).
|
#define | REG_KEYCNT *(vu16*)(REG_BASE+0x0132) |
| Key IRQ control.
|
Joybus communication |
#define | REG_RCNT *(vu16*)(REG_BASE+0x0134) |
| SIO Mode Select/General Purpose Data.
|
#define | REG_JOYCNT *(vu16*)(REG_BASE+0x0140) |
| JOY bus control.
|
#define | REG_JOY_RECV *(vu32*)(REG_BASE+0x0150) |
| JOY bus receiever.
|
#define | REG_JOY_TRANS *(vu32*)(REG_BASE+0x0154) |
| JOY bus transmitter.
|
#define | REG_JOYSTAT *(vu16*)(REG_BASE+0x0158) |
| JOY bus status.
|
Interrupt / System registers |
#define | REG_IE *(vu16*)(REG_BASE+0x0200) |
| IRQ enable.
|
#define | REG_IF *(vu16*)(REG_BASE+0x0202) |
| IRQ status/acknowledge.
|
#define | REG_WAITCNT *(vu16*)(REG_BASE+0x0204) |
| Waitstate control.
|
#define | REG_IME *(vu16*)(REG_BASE+0x0208) |
| IRQ master enable.
|
#define | REG_PAUSE *(vu16*)(REG_BASE+0x0300) |
| Pause system (?).
|