summaryrefslogtreecommitdiff
path: root/include/ewram.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ewram.h')
-rw-r--r--include/ewram.h139
1 files changed, 70 insertions, 69 deletions
diff --git a/include/ewram.h b/include/ewram.h
index ab4a1cb1e..79d813a5d 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -21,20 +21,78 @@ extern u8 gSharedMem[];
// battle etc.
// This overlaps with so many things it's not even funny
-// The actual data starts at 0x02016000
+// The actual data starts at 0x02014000
#define eMultiTxBuffer (*(union MultiBuffers *)gSharedMem)
#define gBattleStruct ((struct BattleStruct *) (gSharedMem + 0x0))
+// This macro ensures that any changes to the battle struct
+// definition will not horribly break things in battle.
+#define BSTRUCT_OFF(member) (offsetof(struct BattleStruct, member) + ((u8 *)gBattleStruct - gSharedMem))
+#define BCOMM(buff, member, blockOff, i) (gSharedMem[BSTRUCT_OFF(buff) + offsetof(struct LinkBattleCommunicationHeader, member) + blockOff + i])
+
+// battle_transition.c
+#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
+#define eTransitionMugshotDecompBuff (&gSharedMem[0xC03C])
+
+#define ewram16400 (gSharedMem + 0x16400)
+
+// gBattleResources
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
+#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
+#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
+#define eBattleFlagsArr (*(struct ResourceFlags *)(gSharedMem + 0x17100))
+#define B_BATTLESCRIPTS_STACK ((struct BattleScriptsStack *) (gSharedMem + 0x17110))
+#define B_FUNCTION_STACK ((struct BattleCallbacksStack *) (gSharedMem + 0x17140))
+#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
+#define gBattleSpriteInfo ((struct BattleSpriteInfo *) (gSharedMem + 0x17800))
+#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810))
+#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
+#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
+
+#define eBattleAnimPalBackup_Battle ((u16 *)(gSharedMem + 0x18000)) // also: shop.c, battle_anim.c
+
+// Contest
+#define eBattleAnimPalBackup_Contest ((u16 *)(gSharedMem + 0x14800))
+#define eUnzippedContestAudience_Gfx (&gSharedMem[0x15800]) // overlaps other contest vars
+#define eCurContestWinnerSaveIdx (gSharedMem[0x15DDE])
+#define eCurContestWinnerIsForArtist (gSharedMem[0x15DDF])
+#define eCurContestWinner ((*(struct ContestWinner*)(gSharedMem + 0x15DE0)))
+#define eContestPaintingBuffers ((*(struct ContestPaintingBuffers*)(gSharedMem + 0x15E00)))
+#define eEnableContestDebugging (gSharedMem[0x18000])
+#define eContestTempSave (*(struct ContestTempSave *)(gSharedMem + 0x18004))
+#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
+#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
+#define eContestAppealResults (*(struct ContestAppealMoveResults *)(gSharedMem + 0x192D0))
+#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
+#define eContestExcitement (*(struct ContestExcitement *)(gSharedMem + 0x19328))
+#define eContestGfxState ((struct ContestGfxState *)(gSharedMem + 0x19338))
+#define gContestResources__moveAnim (*(struct ContestMoveAnim *)(gSharedMem + 0x19348))
+
+// Non-battle allocations
#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
-#define ewramBerryPic (gSharedMem + 0x0)
-#define eMatsudaDebugVar (gSharedMem[0x0])
#define eSaveSection (struct SaveSector *)(gSharedMem + 0x0)
#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0))
#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0))
+
+#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
+
+// party_menu.c
#define ePartyMenu (*(struct Unk2001000 *)(gSharedMem + 0x1000))
+#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
+#define ePartyMenu2 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
+#define gPartyMenu (*(struct PartyMenu *)(gSharedMem + 0x1C000))
+
+// player_pc.c, party_menu.c
+#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00))
+
+// item_menu.c
+#define ewramBerryPic (gSharedMem + 0x0)
#define ewramBerryPicTemp (gSharedMem + 0x1000)
-#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000))
// record_mixing.c
+#define eRecordMixTvShows ((union TVShow (*)[TV_SHOWS_COUNT])(gSharedMem + 0x7000))
+#define eRecordMixPokeNews ((struct PokeNews (*)[POKE_NEWS_COUNT])(gSharedMem + 0x7000)) // same addr as above
#define eLinkedDewfordTrendsBuffer ((struct EasyChatPair *)(gSharedMem + 0x7800))
#define eSavedDewfordTrendsBuffer ((struct EasyChatPair *)(gSharedMem + 0x7900))
#define eReceivedRecords (*(struct PlayerRecords *)(gSharedMem + 0x08000))
@@ -52,82 +110,31 @@ extern u8 gSharedMem[];
#define ePokedexCryScreen (*(struct PokedexCryScreen *)(gSharedMem + 0x1C000))
#define ePokedexCryScreen2 (*(struct PokedexCryMeterNeedle *)(gSharedMem + 0x1C800))
-#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this.
-#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
-#define ewramC03C (&gSharedMem[0xC03C])
#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
-#define ewram10000 (&gSharedMem[0x10000])
-#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine
-#define ewram11000 (&gSharedMem[0x11000])
-#define ewram13000 (&gSharedMem[0x13000])
-#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200])
-#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
-#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data])
-#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data])
-#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i])
-#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800))
+#define eBerryBlenderGfxBuffer (&gSharedMem[0x10000])
+#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine
+#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200])
#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800)))
-#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000))
-#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
-
-// Contest
-#define eUnzippedContestAudience_Gfx (&gSharedMem[0x15800]) // overlaps other contest vars
-#define eCurContestWinnerSaveIdx (gSharedMem[0x15DDE])
-#define eCurContestWinnerIsForArtist (gSharedMem[0x15DDF])
-#define eCurContestWinner ((*(struct ContestWinner*)(gSharedMem + 0x15DE0)))
-#define eContestPaintingBuffers ((*(struct ContestPaintingBuffers*)(gSharedMem + 0x15E00)))
-#define eEnableContestDebugging (gSharedMem[0x18000])
-#define eContestTempSave (*(struct ContestTempSave *)(gSharedMem + 0x18004))
-#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
-#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
-#define eContestAppealResults (*(struct ContestAppealMoveResults *)(gSharedMem + 0x192D0))
-#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
-#define eContestExcitement (*(struct ContestExcitement *)(gSharedMem + 0x19328))
-#define eContestGfxState ((struct ContestGfxState *)(gSharedMem + 0x19338))
-#define gContestResources__moveAnim (*(struct ContestMoveAnim *)(gSharedMem + 0x19348))
-
-// Battle Struct
-// For matching purposes, the struct is placed at 0x02000000 and
-// there's a ton of filler.
-// This macro ensures that any changes to the battle struct
-// definition will not horribly break things in battle.
-#define BSTRUCT_OFF(member) (offsetof(struct BattleStruct, member) + ((u8 *)gBattleStruct - gSharedMem))
-
-#define ewram16400 (gSharedMem + 0x16400)
-
-// gBattleResources
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
-#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00))
-#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
-#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
-#define eBattleFlagsArr (*(struct ResourceFlags *)(gSharedMem + 0x17100))
-#define B_BATTLESCRIPTS_STACK ((struct BattleScriptsStack *) (gSharedMem + 0x17110))
-#define B_FUNCTION_STACK ((struct BattleCallbacksStack *) (gSharedMem + 0x17140))
-#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
// roulette_gfx.c
#define ewram17000 (&gSharedMem[0x17000])
#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00))
#define ewram18000 ((u16 *)(gSharedMem + 0x18000)) // also: shop.c, battle_anim.c
-#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
-#define gBattleSpriteInfo ((struct BattleSpriteInfo *) (gSharedMem + 0x17800))
-#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810))
-#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
-#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
+#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
+
#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000])
#define eEggHatchData (struct EggHatchData*)(&gSharedMem[0x18000])
+
+// pokemon_summary_screen.c
#define pssData (*(struct PokemonSummaryScreenStruct *)(gSharedMem + 0x18000))
+#define ewram1A000 (&gSharedMem[0x1A000])
// roulette.c
#define ewram18800 ((u16 *)(gSharedMem + 0x18800))
#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
-#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
-#define ewram1A000 (&gSharedMem[0x1A000])
-#define ePartyMenu2 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
-#define gPartyMenu (*(struct PartyMenu *)(gSharedMem + 0x1C000))
#define sCreditsData (*(struct CreditsData *)(gSharedMem + 0x1C000))
// hall_of_fame.c
@@ -145,12 +152,6 @@ extern u8 gSharedMem[];
// decoration.c
#define sDecorationContext (*(struct DecoPCPointers *)(gSharedMem + 0x1f000))
-#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
-#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
-
-// player_pc.c, party_menu.c
-#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00))
-
#define eCutGrassSpriteArray (gSharedMem + 0x1FFF0) // 8 sprite IDs
// reshow_battle_screen.c