diff options
Diffstat (limited to 'include/ewram.h')
-rw-r--r-- | include/ewram.h | 139 |
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 |