Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.06 KB | None | 0 0
  1. typedef int s32;
  2. typedef short s16;
  3. typedef char s8;
  4.  
  5. typedef unsigned int u32;
  6. typedef unsigned short u16;
  7. typedef unsigned char u8;
  8.  
  9. // LCD I/O Registers
  10. #define DISPCNT     *((volatile u16*)(0x4000000))   // LDC Control
  11. #define DISPSTAT    *((volatile u16*)(0x4000004))   // General LCD Status (STAT,LYC)
  12. #define VCOUNT      *((volatile u16*)(0x4000006))   // Vertical Counter (LY)
  13. #define BG0CNT      *((volatile u16*)(0x4000008))   // BG0 Control
  14. #define BG1CNT      *((volatile u16*)(0x400000A))   // BG1 Control
  15. #define BG2CNT      *((volatile u16*)(0x400000C))   // BG2 Control
  16. #define BG3CNT      *((volatile u16*)(0x400000E))   // BG3 Control
  17. #define BG0HOFS     *((volatile u16*)(0x4000010))   // BG0 X-Offset
  18. #define BG0VOFS     *((volatile u16*)(0x4000012))   // BG0 Y-Offset
  19. #define BG1HOFS     *((volatile u16*)(0x4000014))   // BG1 X-Offset
  20. #define BG1VOFS     *((volatile u16*)(0x4000016))   // BG1 Y-Offset
  21. #define BG2HOFS     *((volatile u16*)(0x4000018))   // BG2 X-Offset
  22. #define BG2VOFS     *((volatile u16*)(0x400001A))   // BG2 Y-Offset
  23. #define BG3HOFS     *((volatile u16*)(0x400001C))   // BG3 X-Offset
  24. #define BG3VOFS     *((volatile u16*)(0x400001E))   // BG3 Y-Offset
  25. #define BG2PA       *((volatile u16*)(0x4000020))   // BG2 Rotation/Scaling Parameter A (dx)
  26. #define BG2PB       *((volatile u16*)(0x4000022))   // BG2 Rotation/Scaling Parameter B (dmx)
  27. #define BG2PC       *((volatile u16*)(0x4000024))   // BG2 Rotation/Scaling Parameter C (dy)
  28. #define BG2PD       *((volatile u16*)(0x4000026))   // BG2 Rotation/Scaling Parameter D (dmy)
  29. #define BG2X        *((volatile u32*)(0x4000028))   // BG2 Reference Point X-Coordinate
  30. #define BG2Y        *((volatile u32*)(0x400002C))   // BG2 Reference Point Y-Coordinate
  31. #define BG3PA       *((volatile u16*)(0x4000030))   // BG3 Rotation/Scaling Parameter A (dx)
  32. #define BG3PB       *((volatile u16*)(0x4000032))   // BG3 Rotation/Scaling Parameter B (dmx)
  33. #define BG3PC       *((volatile u16*)(0x4000034))   // BG3 Rotation/Scaling Parameter C (dy)
  34. #define BG3PD       *((volatile u16*)(0x4000036))   // BG3 Rotation/Scaling Parameter D (dmy)
  35. #define BG3X        *((volatile u32*)(0x4000038))   // BG3 Reference Point X-Coordinate
  36. #define BG3Y        *((volatile u32*)(0x400003C))   // BG3 Reference Point Y-Coordinate
  37. #define WIN0H       *((volatile u16*)(0x4000040))   // Window 0 Horizontal Dimensions
  38. #define WIN1H       *((volatile u16*)(0x4000042))   // Window 1 Horizontal Dimensions
  39. #define WIN0V       *((volatile u16*)(0x4000044))   // Window 0 Vertical Dimensions
  40. #define WIN1V       *((volatile u16*)(0x4000046))   // Window 1 Vertical Dimensions
  41. #define WININ       *((volatile u16*)(0x4000048))   // Inside of Window 0 and 1
  42. #define WINOUT      *((volatile u16*)(0x400004A))   // Inside of OBJ Window & Outside of Windows
  43. #define MOSAIC      *((volatile u16*)(0x400004C))   // Mosaic Size
  44. #define BLDCNT      *((volatile u16*)(0x4000050))   // Color Special Effects Selection
  45. #define BLDALPHA    *((volatile u16*)(0x4000052))   // Alpha Blending Coefficients
  46. #define BLDY        *((volatile u16*)(0x4000054))   // Brightness (Fade-In/Out) Coefficient
  47.  
  48. // Sound Registers
  49. #define SOUND1CNT_L     *((volatile u16*)(0x4000060))   // Channel 1 Sweep register
  50. #define SOUND1CNT_H     *((volatile u16*)(0x4000062))   // Channel 1 Duty/Length/Envelope
  51. #define SOUND1CNT_X     *((volatile u16*)(0x4000064))   // Channel 1 Frequency/Control
  52. #define SOUND2CNT_L     *((volatile u16*)(0x4000068))   // Channel 2 Duty/Length/Envelope
  53. #define SOUND2CNT_H     *((volatile u16*)(0x400006C))   // Channel 2 Frequency/Control
  54. #define SOUND3CNT_L     *((volatile u16*)(0x4000070))   // Channel 3 Stop/Wave RAM select
  55. #define SOUND3CNT_H     *((volatile u16*)(0x4000072))   // Channel 3 Length/Volume
  56. #define SOUND3CNT_X     *((volatile u16*)(0x4000074))   // Channel 3 Frequency/Control
  57. #define SOUND4CNT_L     *((volatile u16*)(0x4000078))   // Channel 4 Length/Envelope
  58. #define SOUND4CNT_H     *((volatile u16*)(0x400007C))   // Channel 4 Frequency/Control
  59. #define SOUNDCNT_L      *((volatile u16*)(0x4000080))   // Control Stereo/Volume/Enable
  60. #define SOUNDCNT_H      *((volatile u16*)(0x4000082))   // Control Mixing/DMA Control
  61. #define SOUNDCNT_X      *((volatile u16*)(0x4000084))   // Control Sound on/off
  62. #define SOUNDBIAS       *((volatile u16*)(0x4000088))   // Sound PWM Control
  63. // #define WAVE_RAM        *((volatile u16*)(0x4000090)) Channel 3 Wave Pattern RAM
  64. #define FIFO_A          *((volatile u32*)(0x40000A0))   // Channel A FIFO
  65. #define FIFO_B          *((volatile u32*)(0x40000A4))   // Channel B FIFO
  66.  
  67. // DMA Transfer Channels
  68. #define DMA0SAD     ((volatile u32*)(0x40000B0))    // DMA 0 Source Address
  69. #define DMA0DAD     ((volatile u32*)(0x40000B4))    // DMA 0 Destination Address
  70. #define DMA0CNT_L   ((volatile u16*)(0x40000B8))    // DMA 0 Word Count
  71. #define DMA0CNT_H   ((volatile u16*)(0x40000BA))    // DMA 0 Control
  72. #define DMA1SAD     ((volatile u32*)(0x40000BC))    // DMA 1 Source Address
  73. #define DMA1DAD     ((volatile u32*)(0x40000C0))    // DMA 1 Destination Address
  74. #define DMA1CNT_L   ((volatile u16*)(0x40000C4))    // DMA 1 Word Count
  75. #define DMA1CNT_H   ((volatile u16*)(0x40000C6))    // DMA 1 Control
  76. #define DMA2SAD     ((volatile u32*)(0x40000C8))    // DMA 2 Source Address
  77. #define DMA2DAD     ((volatile u32*)(0x40000CC))    // DMA 2 Destination Address
  78. #define DMA2CNT_L   ((volatile u16*)(0x40000D0))    // DMA 2 Word Count
  79. #define DMA2CNT_H   ((volatile u16*)(0x40000D2))    // DMA 2 Control
  80. #define DMA3SAD     ((volatile u32*)(0x40000D4))    // DMA 3 Source Address
  81. #define DMA3DAD     ((volatile u32*)(0x40000D8))    // DMA 3 Destination Address
  82. #define DMA3CNT_L   ((volatile u16*)(0x40000DC))    // DMA 3 Word Count
  83. #define DMA3CNT_H   ((volatile u16*)(0x40000DE))    // DMA 3 Control
  84.  
  85. // Timer Registers
  86. #define TM0CNT_L    ((volatile u16*)(0x4000100))   // Timer 0 Counter/Reload
  87. #define TM0CNT_H    ((volatile u16*)(0x4000102))   // Timer 0 Control
  88. #define TM1CNT_L    ((volatile u16*)(0x4000104))   // Timer 1 Counter/Reload
  89. #define TM1CNT_H    ((volatile u16*)(0x4000106))   // Timer 1 Control
  90. #define TM2CNT_L    ((volatile u16*)(0x4000108))   // Timer 2 Counter/Reload
  91. #define TM2CNT_H    ((volatile u16*)(0x400010A))   // Timer 2 Control
  92. #define TM3CNT_L    ((volatile u16*)(0x400010C))   // Timer 3 Counter/Reload
  93. #define TM3CNT_H    ((volatile u16*)(0x400010E))   // Timer 3 Control
  94.  
  95. // Serial Communication
  96. #define SIODATA32   ((volatile u32*)(0x4000120))    // SIO Data (Normal-32bit Mode) (shared with below!)
  97. #define SIOMULTI0   ((volatile u16*)(0x4000120))    // SIO Data 0 (Parent)    (Multi-Player Mode)
  98. #define SIOMULTI1   ((volatile u16*)(0x4000122))    // SIO Data 1 (1st Child) (Multi-Player Mode)
  99. #define SIOMULTI2   ((volatile u16*)(0x4000124))    // SIO Data 2 (2nd Child) (Multi-Player Mode)
  100. #define SIOMULTI3   ((volatile u16*)(0x4000126))    // SIO Data 3 (3rd Child) (Multi-Player Mode)
  101. #define SIOCNT      ((volatile u16*)(0x4000128))    // SIO Control Register
  102. #define SIOMLT_SEND ((volatile u16*)(0x400012A))    // SIO Data (Local of Multi-Player) (shared below)
  103. #define SIODATA8    ((volatile u16*)(0x400012A))    // SIO Data (Normal-8bit and UART Mode)
  104.  
  105. #define RCNT      ((volatile u16*)(0x4000134))  // SIO Mode Select/General Purpose Data
  106. #define JOYCNT    ((volatile u16*)(0x4000140))  // SIO JOY Bus Control
  107. #define JOY_RECV  ((volatile u32*)(0x4000150))  // SIO JOY Bus Receive Data
  108. #define JOY_TRANS ((volatile u32*)(0x4000154))  // SIO JOY Bus Transmit Data
  109. #define JOYSTAT   ((volatile u16*)(0x4000158))  // SIO JOY Bus Receive Status
  110.  
  111. // Keypad Input
  112. #define KEYINPUT ((volatile u16*)(0x4000130))   // Key Status
  113. #define KEYCNT   ((volatile u16*)(0x4000132))   // Key Interrupt Control
  114.  
  115. // Interrupt, Waitstate, Power-Down Control
  116. #define IE      ((volatile u16*)(0x4000200))    // Interrupt Enable Register
  117. #define IF      ((volatile u16*)(0x4000202))    // Interrupt Request Flags / IRQ Acknowledge
  118. #define WAITCNT ((volatile u16*)(0x4000204))    // Game Pak Waitstate Control
  119. #define IME     ((volatile u16*)(0x4000208))    // Interrupt Master Enable Register
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement