Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef int s32;
- typedef short s16;
- typedef char s8;
- typedef unsigned int u32;
- typedef unsigned short u16;
- typedef unsigned char u8;
- // LCD I/O Registers
- #define DISPCNT *((volatile u16*)(0x4000000)) // LDC Control
- #define DISPSTAT *((volatile u16*)(0x4000004)) // General LCD Status (STAT,LYC)
- #define VCOUNT *((volatile u16*)(0x4000006)) // Vertical Counter (LY)
- #define BG0CNT *((volatile u16*)(0x4000008)) // BG0 Control
- #define BG1CNT *((volatile u16*)(0x400000A)) // BG1 Control
- #define BG2CNT *((volatile u16*)(0x400000C)) // BG2 Control
- #define BG3CNT *((volatile u16*)(0x400000E)) // BG3 Control
- #define BG0HOFS *((volatile u16*)(0x4000010)) // BG0 X-Offset
- #define BG0VOFS *((volatile u16*)(0x4000012)) // BG0 Y-Offset
- #define BG1HOFS *((volatile u16*)(0x4000014)) // BG1 X-Offset
- #define BG1VOFS *((volatile u16*)(0x4000016)) // BG1 Y-Offset
- #define BG2HOFS *((volatile u16*)(0x4000018)) // BG2 X-Offset
- #define BG2VOFS *((volatile u16*)(0x400001A)) // BG2 Y-Offset
- #define BG3HOFS *((volatile u16*)(0x400001C)) // BG3 X-Offset
- #define BG3VOFS *((volatile u16*)(0x400001E)) // BG3 Y-Offset
- #define BG2PA *((volatile u16*)(0x4000020)) // BG2 Rotation/Scaling Parameter A (dx)
- #define BG2PB *((volatile u16*)(0x4000022)) // BG2 Rotation/Scaling Parameter B (dmx)
- #define BG2PC *((volatile u16*)(0x4000024)) // BG2 Rotation/Scaling Parameter C (dy)
- #define BG2PD *((volatile u16*)(0x4000026)) // BG2 Rotation/Scaling Parameter D (dmy)
- #define BG2X *((volatile u32*)(0x4000028)) // BG2 Reference Point X-Coordinate
- #define BG2Y *((volatile u32*)(0x400002C)) // BG2 Reference Point Y-Coordinate
- #define BG3PA *((volatile u16*)(0x4000030)) // BG3 Rotation/Scaling Parameter A (dx)
- #define BG3PB *((volatile u16*)(0x4000032)) // BG3 Rotation/Scaling Parameter B (dmx)
- #define BG3PC *((volatile u16*)(0x4000034)) // BG3 Rotation/Scaling Parameter C (dy)
- #define BG3PD *((volatile u16*)(0x4000036)) // BG3 Rotation/Scaling Parameter D (dmy)
- #define BG3X *((volatile u32*)(0x4000038)) // BG3 Reference Point X-Coordinate
- #define BG3Y *((volatile u32*)(0x400003C)) // BG3 Reference Point Y-Coordinate
- #define WIN0H *((volatile u16*)(0x4000040)) // Window 0 Horizontal Dimensions
- #define WIN1H *((volatile u16*)(0x4000042)) // Window 1 Horizontal Dimensions
- #define WIN0V *((volatile u16*)(0x4000044)) // Window 0 Vertical Dimensions
- #define WIN1V *((volatile u16*)(0x4000046)) // Window 1 Vertical Dimensions
- #define WININ *((volatile u16*)(0x4000048)) // Inside of Window 0 and 1
- #define WINOUT *((volatile u16*)(0x400004A)) // Inside of OBJ Window & Outside of Windows
- #define MOSAIC *((volatile u16*)(0x400004C)) // Mosaic Size
- #define BLDCNT *((volatile u16*)(0x4000050)) // Color Special Effects Selection
- #define BLDALPHA *((volatile u16*)(0x4000052)) // Alpha Blending Coefficients
- #define BLDY *((volatile u16*)(0x4000054)) // Brightness (Fade-In/Out) Coefficient
- // Sound Registers
- #define SOUND1CNT_L *((volatile u16*)(0x4000060)) // Channel 1 Sweep register
- #define SOUND1CNT_H *((volatile u16*)(0x4000062)) // Channel 1 Duty/Length/Envelope
- #define SOUND1CNT_X *((volatile u16*)(0x4000064)) // Channel 1 Frequency/Control
- #define SOUND2CNT_L *((volatile u16*)(0x4000068)) // Channel 2 Duty/Length/Envelope
- #define SOUND2CNT_H *((volatile u16*)(0x400006C)) // Channel 2 Frequency/Control
- #define SOUND3CNT_L *((volatile u16*)(0x4000070)) // Channel 3 Stop/Wave RAM select
- #define SOUND3CNT_H *((volatile u16*)(0x4000072)) // Channel 3 Length/Volume
- #define SOUND3CNT_X *((volatile u16*)(0x4000074)) // Channel 3 Frequency/Control
- #define SOUND4CNT_L *((volatile u16*)(0x4000078)) // Channel 4 Length/Envelope
- #define SOUND4CNT_H *((volatile u16*)(0x400007C)) // Channel 4 Frequency/Control
- #define SOUNDCNT_L *((volatile u16*)(0x4000080)) // Control Stereo/Volume/Enable
- #define SOUNDCNT_H *((volatile u16*)(0x4000082)) // Control Mixing/DMA Control
- #define SOUNDCNT_X *((volatile u16*)(0x4000084)) // Control Sound on/off
- #define SOUNDBIAS *((volatile u16*)(0x4000088)) // Sound PWM Control
- // #define WAVE_RAM *((volatile u16*)(0x4000090)) Channel 3 Wave Pattern RAM
- #define FIFO_A *((volatile u32*)(0x40000A0)) // Channel A FIFO
- #define FIFO_B *((volatile u32*)(0x40000A4)) // Channel B FIFO
- // DMA Transfer Channels
- #define DMA0SAD ((volatile u32*)(0x40000B0)) // DMA 0 Source Address
- #define DMA0DAD ((volatile u32*)(0x40000B4)) // DMA 0 Destination Address
- #define DMA0CNT_L ((volatile u16*)(0x40000B8)) // DMA 0 Word Count
- #define DMA0CNT_H ((volatile u16*)(0x40000BA)) // DMA 0 Control
- #define DMA1SAD ((volatile u32*)(0x40000BC)) // DMA 1 Source Address
- #define DMA1DAD ((volatile u32*)(0x40000C0)) // DMA 1 Destination Address
- #define DMA1CNT_L ((volatile u16*)(0x40000C4)) // DMA 1 Word Count
- #define DMA1CNT_H ((volatile u16*)(0x40000C6)) // DMA 1 Control
- #define DMA2SAD ((volatile u32*)(0x40000C8)) // DMA 2 Source Address
- #define DMA2DAD ((volatile u32*)(0x40000CC)) // DMA 2 Destination Address
- #define DMA2CNT_L ((volatile u16*)(0x40000D0)) // DMA 2 Word Count
- #define DMA2CNT_H ((volatile u16*)(0x40000D2)) // DMA 2 Control
- #define DMA3SAD ((volatile u32*)(0x40000D4)) // DMA 3 Source Address
- #define DMA3DAD ((volatile u32*)(0x40000D8)) // DMA 3 Destination Address
- #define DMA3CNT_L ((volatile u16*)(0x40000DC)) // DMA 3 Word Count
- #define DMA3CNT_H ((volatile u16*)(0x40000DE)) // DMA 3 Control
- // Timer Registers
- #define TM0CNT_L ((volatile u16*)(0x4000100)) // Timer 0 Counter/Reload
- #define TM0CNT_H ((volatile u16*)(0x4000102)) // Timer 0 Control
- #define TM1CNT_L ((volatile u16*)(0x4000104)) // Timer 1 Counter/Reload
- #define TM1CNT_H ((volatile u16*)(0x4000106)) // Timer 1 Control
- #define TM2CNT_L ((volatile u16*)(0x4000108)) // Timer 2 Counter/Reload
- #define TM2CNT_H ((volatile u16*)(0x400010A)) // Timer 2 Control
- #define TM3CNT_L ((volatile u16*)(0x400010C)) // Timer 3 Counter/Reload
- #define TM3CNT_H ((volatile u16*)(0x400010E)) // Timer 3 Control
- // Serial Communication
- #define SIODATA32 ((volatile u32*)(0x4000120)) // SIO Data (Normal-32bit Mode) (shared with below!)
- #define SIOMULTI0 ((volatile u16*)(0x4000120)) // SIO Data 0 (Parent) (Multi-Player Mode)
- #define SIOMULTI1 ((volatile u16*)(0x4000122)) // SIO Data 1 (1st Child) (Multi-Player Mode)
- #define SIOMULTI2 ((volatile u16*)(0x4000124)) // SIO Data 2 (2nd Child) (Multi-Player Mode)
- #define SIOMULTI3 ((volatile u16*)(0x4000126)) // SIO Data 3 (3rd Child) (Multi-Player Mode)
- #define SIOCNT ((volatile u16*)(0x4000128)) // SIO Control Register
- #define SIOMLT_SEND ((volatile u16*)(0x400012A)) // SIO Data (Local of Multi-Player) (shared below)
- #define SIODATA8 ((volatile u16*)(0x400012A)) // SIO Data (Normal-8bit and UART Mode)
- #define RCNT ((volatile u16*)(0x4000134)) // SIO Mode Select/General Purpose Data
- #define JOYCNT ((volatile u16*)(0x4000140)) // SIO JOY Bus Control
- #define JOY_RECV ((volatile u32*)(0x4000150)) // SIO JOY Bus Receive Data
- #define JOY_TRANS ((volatile u32*)(0x4000154)) // SIO JOY Bus Transmit Data
- #define JOYSTAT ((volatile u16*)(0x4000158)) // SIO JOY Bus Receive Status
- // Keypad Input
- #define KEYINPUT ((volatile u16*)(0x4000130)) // Key Status
- #define KEYCNT ((volatile u16*)(0x4000132)) // Key Interrupt Control
- // Interrupt, Waitstate, Power-Down Control
- #define IE ((volatile u16*)(0x4000200)) // Interrupt Enable Register
- #define IF ((volatile u16*)(0x4000202)) // Interrupt Request Flags / IRQ Acknowledge
- #define WAITCNT ((volatile u16*)(0x4000204)) // Game Pak Waitstate Control
- #define IME ((volatile u16*)(0x4000208)) // Interrupt Master Enable Register
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement