summaryrefslogtreecommitdiff
path: root/include/ewram.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ewram.h')
-rwxr-xr-xinclude/ewram.h58
1 files changed, 57 insertions, 1 deletions
diff --git a/include/ewram.h b/include/ewram.h
index fa405e59c..341f23432 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -3,6 +3,10 @@
extern u8 ewram[];
+// Note: we have duplicate ewram labels because its clear some memory
+// regions overlap others but have different definitions. Until some
+// dupes can be determined to be the same, they will be deliberate
+// seperated.
#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x0))
#define ewram0_2 (*(struct Struct2000000 *)(ewram + 0x0))
#define namingScreenData (*(struct NamingScreenData *)(ewram + 0x0))
@@ -10,8 +14,13 @@ extern u8 ewram[];
#define ewram0_3 (*(struct UnknownStruct3 *)(ewram + 0x0))
#define ewram0_4 (*(struct Unk2000000 *)(ewram + 0x0))
#define ewram0_5 (*(struct UnkStruct *)(ewram + 0x0))
+#define eMatsudaDebugVar (ewram[0x0])
+#define eBrendanSprite (ewram + 0x0)
+#define ewram0_6 (u32)(&ewram[0])
+#define ewram0_7 (&ewram[0])
#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520))
+#define eMaySprite (ewram + 0x800)
#define ewram888 (ewram + 0x888)
#define ewramBlankMapName (ewram + 0xA48)
#define ewramA6E (ewram[0xA6E])
@@ -26,13 +35,44 @@ extern u8 ewram[];
#define ARRAY_2007800 ((struct EasyChatPair *)(ewram + 0x7800))
#define ARRAY_2007900 ((struct EasyChatPair *)(ewram + 0x7900))
#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000))
+#define ewram8000 (&ewram[0x8000])
+#define ewram8800 (&ewram[0x8800])
+#define ewram9000 (&ewram[0x9000])
+#define ewram9800 (&ewram[0x9800])
+#define ewramA000 (&ewram[0xA000])
+#define ewramA800 (&ewram[0xA800])
+#define ewramB000 (&ewram[0xB000])
+#define ewramB800 (&ewram[0xB800])
#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000))
+#define ewramC000 (&ewram[0xC000])
#define ewramC03C (&ewram[0xC03C])
+#define ewramC800 (&ewram[0xC800])
+#define ewramD000 (&ewram[0xD000])
+#define ewramD800 (&ewram[0xD800])
+#define ewramE000 (&ewram[0xE000])
+#define ewramE800 (&ewram[0xE800])
+#define ewramF000 (&ewram[0xF000])
+#define ewramF800 (&ewram[0xF800])
#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000))
+#define ewram10000 (&ewram[0x10000])
+#define ewram10800 (&ewram[0x10800])
+#define ewram11000 (&ewram[0x11000])
+#define ewram11800 (&ewram[0x11800])
+#define ewram13000 (&ewram[0x13000])
#define EWRAM_14000 ((u8 *)(ewram + 0x14000))
+#define ewram14000 (&ewram[0x14000])
+#define ewram14000arr(i, data) (ewram[0x14000 + i + data])
+#define ewram14004arr(i, data) (ewram[0x14004 + i + data])
+#define ewram14008arr(i, data) (ewram[0x14008 + data + i])
+#define ewram14800 (&ewram[0x14800])
#define EWRAM_14800 ((u16 *)(ewram + 0x14800))
#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800)))
#define EWRAM_15000 ((u8 *)(ewram + 0x15000))
+#define ewram15000 (&ewram[0x15000])
+#define ewram15000arr(i, data) (ewram[0x15000 + data + i])
+#define ewram15800 (&ewram[0x15800])
+#define ewram15DDE (ewram[0x15DDE])
+#define ewram15DDF (ewram[0x15DDF])
#define ewram16000 (ewram[0x16000])
#define ewram16001 (ewram[0x16001])
#define ewram16002 (ewram[0x16002])
@@ -56,7 +96,7 @@ extern u8 ewram[];
#define ewram16064arr(bank) (ewram[0x16064 + bank])
#define ewram16068arr(i) (ewram[0x16068 + i])
#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
-#define ewram1606Carr(i, a, mul) (ewram[0x1606C + i + a * mul])
+#define ewram1606Carr(i, a) (ewram[0x1606C + i + a * 3])
#define ewram16078 (ewram[0x16078])
#define ewram16084 (ewram[0x16084])
#define ewram16086 (ewram[0x16086])
@@ -101,6 +141,7 @@ extern u8 ewram[];
#define ewram160F0arr(i) (ewram[0x160F0 + i])
#define ewram160F8 (ewram[0x160F8])
#define ewram160F9 (ewram[0x160F9])
+#define eStatHp (ewram[0x160FA])
#define ewram160FB (ewram[0x160FB])
#define ewram16100 ((u8 *)(ewram + 0x16100))
#define ewram16100arr(i) (ewram[0x16100 + i])
@@ -110,10 +151,12 @@ extern u8 ewram[];
#define ewram16110 (ewram[0x16110])
#define ewram16111 (ewram[0x16111])
#define ewram16113 (ewram[0x16113])
+#define ewram16400 (ewram + 0x16400)
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
#define AI_ARRAY_160CC(i) (ewram[0x160CC + i * 2])
+#define eLearnMoveStruct (struct LearnMoveStruct *)(ewram + 0x17000)
#define ewram17002 (&ewram[0x17002])
#define ewram17100 (*(struct Struct2017100 *)(ewram + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110))
@@ -129,10 +172,16 @@ extern u8 ewram[];
#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000))
#define EWRAM_18000 ((u16 *)(ewram + 0x18000))
#define ewram18000 ((u16 *)(ewram + 0x18000))
+#define ewram18000_2 (&ewram[0x18000])
+#define eBerryBlenderData (struct BerryBlenderData*)(&ewram[0x18000])
+#define eEggHatchData (struct EggHatchData*)(&ewram[0x18000])
#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(ewram + 0x18000))
#define ewram18300 ((u16 *)(ewram + 0x18300))
+#define ewram18800 (&ewram[0x18800])
+#define ewram19000 (&ewram[0x19000])
#define EWRAM_19348 (*(u16 *)(ewram + 0x19348))
#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348))
+#define ewram19800 (&ewram[0x19800])
#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
#define EWRAM_1B000 ewram1B000_alt // FIXME
@@ -140,10 +189,13 @@ extern u8 ewram[];
#define EWRAM_1C000 (*(struct Struct201C000 *)(ewram + 0x1C000))
#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000)) // FIXME, names too similar
+#define eHallOfFameMons1 (struct HallofFameMons*)(&ewram[0x1C000])
#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000))
#define ewram1D000_2 ((u16 *)(ewram + 0x1D000))
#define ewram1D400 ((u16 *)(ewram + 0x1D400))
#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewram1E000(i) (ewram[0x1E000 + i])
+#define eHallOfFameMons2 (struct HallofFameMons*)(&ewram[0x1E000])
#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000))
#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800))
#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
@@ -151,8 +203,12 @@ extern u8 ewram[];
#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000))
#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800))
#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00))
+#define ewram1FFFC (ewram[0x1FFFC])
+#define ewram1FFFD (ewram[0x1FFFD])
#define gHelperState (ewram[0x1FFFE])
+#define ewram1FFFE (ewram[0x1FFFE])
#define gReshowState (ewram[0x1FFFF])
#define ewramBagSetupStep (ewram[0x1FFFF])
+#define ewram1FFFF (ewram[0x1FFFF])
#endif