%{H_TEMPLATE} // gba.h by eloist #ifndef GBA_HEADER #define GBA_HEADER typedef unsigned char u8; typedef unsigned short u16; typedef unsigned long u32; typedef signed char s8; typedef signed short s16; typedef signed long s32; typedef unsigned char byte; typedef unsigned short hword; typedef unsigned long word; #define OAMmem (u32*)0x7000000 #define VideoBuffer (u16*)0x6000000 #define OAMdata (u16*)0x6100000 #define BGPaletteMem (u16*)0x5000000 #define OBJPaletteMem (u16*)0x5000200 #define REG_INTERUPT *(u32*)0x3007FFC #define REG_DISPCNT *(u32*)0x4000000 #define REG_DISPCNT_L *(u16*)0x4000000 #define REG_DISPCNT_H *(u16*)0x4000002 #define REG_DISPSTAT *(u16*)0x4000004 #define REG_VCOUNT *(u16*)0x4000006 #define REG_BG0CNT *(u16*)0x4000008 #define REG_BG1CNT *(u16*)0x400000A #define REG_BG2CNT *(u16*)0x400000C #define REG_BG3CNT *(u16*)0x400000E #define REG_BG0HOFS *(u16*)0x4000010 #define REG_BG0VOFS *(u16*)0x4000012 #define REG_BG1HOFS *(u16*)0x4000014 #define REG_BG1VOFS *(u16*)0x4000016 #define REG_BG2HOFS *(u16*)0x4000018 #define REG_BG2VOFS *(u16*)0x400001A #define REG_BG3HOFS *(u16*)0x400001C #define REG_BG3VOFS *(u16*)0x400001E #define REG_BG2PA *(u16*)0x4000020 #define REG_BG2PB *(u16*)0x4000022 #define REG_BG2PC *(u16*)0x4000024 #define REG_BG2PD *(u16*)0x4000026 #define REG_BG2X *(u32*)0x4000028 #define REG_BG2X_L *(u16*)0x4000028 #define REG_BG2X_H *(u16*)0x400002A #define REG_BG2Y *(u32*)0x400002C #define REG_BG2Y_L *(u16*)0x400002C #define REG_BG2Y_H *(u16*)0x400002E #define REG_BG3PA *(u16*)0x4000030 #define REG_BG3PB *(u16*)0x4000032 #define REG_BG3PC *(u16*)0x4000034 #define REG_BG3PD *(u16*)0x4000036 #define REG_BG3X *(u32*)0x4000038 #define REG_BG3X_L *(u16*)0x4000038 #define REG_BG3X_H *(u16*)0x400003A #define REG_BG3Y *(u32*)0x400003C #define REG_BG3Y_L *(u16*)0x400003C #define REG_BG3Y_H *(u16*)0x400003E #define REG_WIN0H *(u16*)0x4000040 #define REG_WIN1H *(u16*)0x4000042 #define REG_WIN0V *(u16*)0x4000044 #define REG_WIN1V *(u16*)0x4000046 #define REG_WININ *(u16*)0x4000048 #define REG_WINOUT *(u16*)0x400004A #define REG_MOSAIC *(u32*)0x400004C #define REG_MOSAIC_L *(u32*)0x400004C #define REG_MOSAIC_H *(u32*)0x400004E #define REG_BLDMOD *(u16*)0x4000050 #define REG_COLEV *(u16*)0x4000052 #define REG_COLEY *(u16*)0x4000054 #define REG_SG10 *(u32*)0x4000060 #define REG_SG10_L *(u16*)0x4000060 #define REG_SG10_H *(u16*)0x4000062 #define REG_SG11 *(u16*)0x4000064 #define REG_SG20 *(u16*)0x4000068 #define REG_SG21 *(u16*)0x400006C #define REG_SG30 *(u32*)0x4000070 #define REG_SG30_L *(u16*)0x4000070 #define REG_SG30_H *(u16*)0x4000072 #define REG_SG31 *(u16*)0x4000074 #define REG_SG40 *(u16*)0x4000078 #define REG_SG41 *(u16*)0x400007C #define REG_SGCNT0 *(u32*)0x4000080 #define REG_SGCNT0_L *(u16*)0x4000080 #define REG_SGCNT0_H *(u16*)0x4000082 #define REG_SGCNT1 *(u16*)0x4000084 #define REG_SGBIAS *(u16*)0x4000088 #define REG_SGWR0 *(u32*)0x4000090 #define REG_SGWR0_L *(u16*)0x4000090 #define REG_SGWR0_H *(u16*)0x4000092 #define REG_SGWR1 *(u32*)0x4000094 #define REG_SGWR1_L *(u16*)0x4000094 #define REG_SGWR1_H *(u16*)0x4000096 #define REG_SGWR2 *(u32*)0x4000098 #define REG_SGWR2_L *(u16*)0x4000098 #define REG_SGWR2_H *(u16*)0x400009A #define REG_SGWR3 *(u32*)0x400009C #define REG_SGWR3_L *(u16*)0x400009C #define REG_SGWR3_H *(u16*)0x400009E #define REG_SGFIF0A *(u32*)0x40000A0 #define REG_SGFIFOA_L *(u16*)0x40000A0 #define REG_SGFIFOA_H *(u16*)0x40000A2 #define REG_SGFIFOB *(u32*)0x40000A4 #define REG_SGFIFOB_L *(u16*)0x40000A4 #define REG_SGFIFOB_H *(u16*)0x40000A6 #define REG_DM0SAD *(u32*)0x40000B0 #define REG_DM0SAD_L *(u16*)0x40000B0 #define REG_DM0SAD_H *(u16*)0x40000B2 #define REG_DM0DAD *(u32*)0x40000B4 #define REG_DM0DAD_L *(u16*)0x40000B4 #define REG_DM0DAD_H *(u16*)0x40000B6 #define REG_DM0CNT *(u32*)0x40000B8 #define REG_DM0CNT_L *(u16*)0x40000B8 #define REG_DM0CNT_H *(u16*)0x40000BA #define REG_DM1SAD *(u32*)0x40000BC #define REG_DM1SAD_L *(u16*)0x40000BC #define REG_DM1SAD_H *(u16*)0x40000BE #define REG_DM1DAD *(u32*)0x40000C0 #define REG_DM1DAD_L *(u16*)0x40000C0 #define REG_DM1DAD_H *(u16*)0x40000C2 #define REG_DM1CNT *(u32*)0x40000C4 #define REG_DM1CNT_L *(u16*)0x40000C4 #define REG_DM1CNT_H *(u16*)0x40000C6 #define REG_DM2SAD *(u32*)0x40000C8 #define REG_DM2SAD_L *(u16*)0x40000C8 #define REG_DM2SAD_H *(u16*)0x40000CA #define REG_DM2DAD *(u32*)0x40000CC #define REG_DM2DAD_L *(u16*)0x40000CC #define REG_DM2DAD_H *(u16*)0x40000CE #define REG_DM2CNT *(u32*)0x40000D0 #define REG_DM2CNT_L *(u16*)0x40000D0 #define REG_DM2CNT_H *(u16*)0x40000D2 #define REG_DM3SAD *(u32*)0x40000D4 #define REG_DM3SAD_L *(u16*)0x40000D4 #define REG_DM3SAD_H *(u16*)0x40000D6 #define REG_DM3DAD *(u32*)0x40000D8 #define REG_DM3DAD_L *(u16*)0x40000D8 #define REG_DM3DAD_H *(u16*)0x40000DA #define REG_DM3CNT *(u32*)0x40000DC #define REG_DM3CNT_L *(u16*)0x40000DC #define REG_DM3CNT_H *(u16*)0x40000DE #define REG_TM0D *(u16*)0x4000100 #define REG_TM0CNT *(u16*)0x4000102 #define REG_TM1D *(u16*)0x4000104 #define REG_TM1CNT *(u16*)0x4000106 #define REG_TM2D *(u16*)0x4000108 #define REG_TM2CNT *(u16*)0x400010A #define REG_TM3D *(u16*)0x400010C #define REG_TM3CNT *(u16*)0x400010E #define REG_SCD0 *(u16*)0x4000120 #define REG_SCD1 *(u16*)0x4000122 #define REG_SCD2 *(u16*)0x4000124 #define REG_SCD3 *(u16*)0x4000126 #define REG_SCCNT *(u32*)0x4000128 #define REG_SCCNT_L *(u16*)0x4000128 #define REG_SCCNT_H *(u16*)0x400012A #define REG_P1 *(u16*)0x4000130 #define REG_P1CNT *(u16*)0x4000132 #define REG_R *(u16*)0x4000134 #define REG_HS_CTRL *(u16*)0x4000140 #define REG_JOYRE *(u32*)0x4000150 #define REG_JOYRE_L *(u16*)0x4000150 #define REG_JOYRE_H *(u16*)0x4000152 #define REG_JOYTR *(u32*)0x4000154 #define REG_JOYTR_L *(u16*)0x4000154 #define REG_JOYTR_H *(u16*)0x4000156 #define REG_JSTAT *(u32*)0x4000158 #define REG_JSTAT_L *(u16*)0x4000158 #define REG_JSTAT_H *(u16*)0x400015A #define REG_IE *(u16*)0x4000200 #define REG_IF *(u16*)0x4000202 #define REG_WSCNT *(u16*)0x4000204 #define REG_IME *(u16*)0x4000208 #define REG_PAUSE *(u16*)0x4000300 ///REG_DISPCNT Defines//// #define BG0_ENABLE 0x100 //these are just the flags for enabling backgrounds and sprites #define BG1_ENABLE 0x200 #define BG2_ENABLE 0x400 #define BG3_ENABLE 0x800 #define OBJ_ENABLE 0x1000 #define WIN0_ENABLE 0x2000 #define WIN1_ENABLE 0x4000 #define WINOBJ_ENABLE 0x8000 #define OBJ_MAP_LINEAR 0x40 //I'll talk about this when i talk about hardware sprites #define OBJ_MAP_2D 0x0 #define BACK_BUFFER 0x10 //this is the flag that controlls wich buffer is being rendered #define MODE0 0x0 //these are the modes #define MODE1 0x1 #define MODE2 0x2 #define MODE3 0x3 #define MODE4 0x4 #define MODE5 0x5 #endif