diff options
42 files changed, 387 insertions, 416 deletions
diff --git a/include/battle.h b/include/battle.h index dc9ac93cc..692e1a981 100644 --- a/include/battle.h +++ b/include/battle.h @@ -189,9 +189,6 @@ enum BATTLE_TERRAIN_PLAIN, }; -// needed to match the hack that is get_item, thanks cam, someone else clean this up later. -extern u8 unk_2000000[]; - struct Trainer { /*0x00*/ u8 partyFlags; @@ -671,20 +668,7 @@ extern struct WishFutureKnock gWishFutureKnock; extern struct AI_ThinkingStruct gAIThinkingSpace; extern struct Struct20238C8 gUnknown_020238C8; -// TODO: move ewram to global.h -extern u8 ewram[]; - -#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000)) -#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 ((struct SmallItemStruct *) (ewram + 0x160CC)) -#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110)) -#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140)) -#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800)) -#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) -#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) -#define ewram17000 ((u32 *) (ewram + 0x17100)) +#include "ewram.h" // used in many battle files, it seems as though Hisashi Sogabe wrote // some sort of macro to replace the use of actually calling memset. diff --git a/include/battle_anim.h b/include/battle_anim.h index 3db5ae967..27683e866 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -7,11 +7,7 @@ #define REG_BG1CNT_BITFIELD REG_BGnCNT_BITFIELD(1) #define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2) -#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800)) -#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800)) -#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810)) -#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000)) -#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348)) +#include "ewram.h" struct BGCntrlBitfield { diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index 200b0c653..d08c1e9ae 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -1,8 +1,7 @@ #ifndef GUARD_BATTLE_PARTY_MENU_H #define GUARD_BATTLE_PARTY_MENU_H -extern u8 unk_2000000[]; -#define EWRAM_1609D unk_2000000[0x1609D] +#include "ewram.h" void HandleBattlePartyMenu(u8); bool8 SetUpBattlePartyMenu(void); diff --git a/include/decoration.h b/include/decoration.h index 70abc29bf..414c02dad 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -204,8 +204,7 @@ struct UnkStruct_803EC860 extern const struct UnkStruct_803EC860 gUnknown_083EC860[]; -extern u8 ewram[]; -#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000)) +#include "ewram.h" struct UnkStruct_02038900 { diff --git a/include/dewford_trend.h b/include/dewford_trend.h index 26075d633..c4a1a142d 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -1,8 +1,7 @@ #ifndef GUARD_DEWFORDTREND_H #define GUARD_DEWFORDTREND_H -#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800)) -#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900)) +#include "ewram.h" void InitDewfordTrend(void); void sub_80FA4E4(void *, u32, u8); diff --git a/include/ewram.h b/include/ewram.h new file mode 100755 index 000000000..1b54a1ebc --- /dev/null +++ b/include/ewram.h @@ -0,0 +1,124 @@ +#ifndef GUARD_EWRAM_H +#define GUARD_EWRAM_H + +extern u8 ewram[]; + +#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x0)) +#define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0)) +#define ewram0_2 (*(struct Struct2000000 *)(ewram + 0x0)) +#define namingScreenData (*(struct NamingScreenData *)(ewram + 0x0)) +#define unk_2000000 (*(struct UnkStruct *)(ewram + 0x0)) +#define ewramBerryPic (ewram + 0x0) +#define ewram0_3 (*(struct UnknownStruct3 *)(ewram + 0x0)) +#define ewram0_4 (*(struct Unk2000000 *)(ewram + 0x0)) +#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4)) +#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520)) +#define ewram888 (ewram + 0x888) +#define ewramBlankMapName (ewram + 0xA48) +#define ewramA6E (ewram[0xA6E]) +#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x1000)) +#define ewramBerryPicTemp (ewram + 0x1000) +#define EWRAM_1000 (*(struct Struct2001000 *)(ewram + 0x1000)) +#define gUnk20011fa (u8 *)(&ewram[0x11FA]) +#define gUnk2002694 (u8 *)(&ewram[0x2694]) +#define gUnk20026A6 (u8 *)(&ewram[0x26A6]) +#define gUnk20026e4 (u8 *)(&ewram[0x26E4]) +#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000)) +#define ARRAY_2007800 ((struct EasyChatPair *)(ewram + 0x7800)) +#define ARRAY_2007900 ((struct EasyChatPair *)(ewram + 0x7900)) +#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000)) +#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000)) +#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000)) +#define EWRAM_14000 ((u8 *)(ewram + 0x14000)) +#define EWRAM_14800 ((u16 *)(ewram + 0x14800)) +#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800))) +#define EWRAM_15000 ((u8 *)(ewram + 0x15000)) +#define ewram16000 (ewram[0x16000]) +#define ewram16001 (ewram[0x16001]) +#define ewram16002 (ewram[0x16002]) +#define ewram16003 (ewram[0x16003]) +#define ewram1600C (ewram[0x1600C]) +#define ewram1600E (ewram[0x1600E]) +#define ewram1601B (ewram[0x1601B]) +#define ewram16020 ((u8 *)(ewram + 0x16020)) +#define ewram16056 (ewram[0x16056]) +#define ewram16058 (ewram[0x16058]) +#define ewram16059 (ewram[0x16059]) +#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever. +#define ewram16078 (ewram[0x16078]) +#define ewram16084 (ewram[0x16084]) +#define ewram16086 (ewram[0x16086]) +#define ewram16087 (ewram[0x16087]) +#define ewram16088 (ewram[0x16088]) +#define ewram16088_2 (*(u8 *)(ewram + 0x16088)) +#define ewram16089 (ewram[0x16089]) +#define ewram16089_2 (*(u8 *)(ewram + 0x16089)) +#define EWRAM_1609D (ewram[0x1609D]) +#define ewram160A1 (ewram[0x160A1]) +#define ewram160A6 (ewram[0x160A6]) +#define ewram160AC ((u8 *)(ewram + 0x160AC)) +#define ewram160BC ((u16 *)(ewram + 0x160BC)) // hp +#define ewram160C8 (ewram[0x160C8]) +#define ewram160C9 (ewram[0x160C9]) +#define ewram160CB (ewram[0x160CB]) +#define ewram160CC ((u8 *)(ewram + 0x160CC)) +#define USED_HELD_ITEM(bank) ((((u16*)(&ewram[0x160CC + bank * 2])))) +#define USED_HELD_ITEMS(bank) (*(u16 *)&ewram[0x160CC + 2 * (bank)]) +#define ewram160E6 (ewram[0x160E6]) +#define CHOICED_MOVE(bank) (((u16*)(&ewram[0x160E8 + bank * 2]))) +#define ewram160E8 ((u8 *)(ewram + 0x160E8)) +#define ewram160F0 ((u8 *)(ewram + 0x160F0)) +#define ewram160F9 (ewram[0x160F9]) +#define ewram160FB (ewram[0x160FB]) +#define ewram16100 ((u8 *)(ewram + 0x16100)) +#define ewram16108 ((u8 *)(ewram + 0x16108)) +#define ewram16110 (ewram[0x16110]) +#define ewram16111 (ewram[0x16111]) +#define ewram16113 (ewram[0x16113]) +#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 ((struct SmallItemStruct *) (ewram + 0x160CC)) +#define ewram17100_2 (*(struct Struct2017100 *)(ewram + 0x17100)) +#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110)) +#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140)) +#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800)) +#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) +#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) +#define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850)) +#define ewram17000 ((u32 *) (ewram + 0x17100)) // this label is incorrect. +#define ewram17100 ((u32 *)(ewram + 0x17100)) +#define ewram17130 (ewram[0x17130]) +#define ewram17160 (ewram[0x17160]) +#define EWRAM_17800 ((struct UnknownStruct1 *)(ewram + 0x17800)) +#define EWRAM_17810 ((struct UnknownStruct3 *)(ewram + 0x17810)) +#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000)) +#define EWRAM_18000 ((u16 *)(ewram + 0x18000)) +#define ewram18000 ((u16 *)(ewram + 0x18000)) +#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(ewram + 0x18000)) +#define ewram18300 ((u16 *)(ewram + 0x18300)) +#define EWRAM_19348 (*(u16 *)(ewram + 0x19348)) +#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348)) +#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) +#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000)) +#define EWRAM_1B000 ewram1B000_alt // FIXME +#define EWRAM_1B000_2 (*(struct Struct201B000 *)(ewram + 0x1B000)) +#define EWRAM_1C000 (*(struct Struct201C000 *)(ewram + 0x1C000)) +#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000)) +#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000)) // FIXME, names too similar +#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 HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000)) +#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800)) +#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000)) +#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle) +#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000)) +#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800)) +#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00)) +#define gHelperState (ewram[0x1FFFE]) +#define gReshowState (ewram[0x1FFFF]) +#define ewramBagSetupStep (ewram[0x1FFFF]) + +#endif diff --git a/include/party_menu.h b/include/party_menu.h index f13c2c2df..a60b90469 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -101,11 +101,7 @@ struct UnknownPokemonStruct2 /*0x1D*/ u8 language; }; -extern u8 ewram[]; -#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000)) -#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) -#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000)) -#define EWRAM_1B000 ewram1B000_alt +#include "ewram.h" void CB2_PartyMenuMain(void); void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed); diff --git a/include/player_pc.h b/include/player_pc.h index 8debeda88..3302ec634 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -13,6 +13,7 @@ #define SWAP_ITEM_INDEX data[8] #define SWITCH_MODE_ACTIVE data[9] +// this is potentially an ewram access occuring in high ewram. TODO: investigate this further. #define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) // defined and used in the above macro diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h index fa5d57f0e..5e2b11f3c 100644 --- a/include/script_pokemon_80F9.h +++ b/include/script_pokemon_80F9.h @@ -7,7 +7,7 @@ struct UnknownStruct2018000 u8 unk8; }; -extern struct UnknownStruct2018000 unk_2018000; +#include "ewram.h" // UNK_2018000_STRUCT requires this include. TODO: fix? void OpenPartyMenuFromScriptContext(u8 taskId); void sub_80F9C00(void); diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 1aec075db..5a37a6169 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -29,6 +29,7 @@ #include "items.h" #include "hold_effects.h" #include "battle_move_effects.h" +#include "ewram.h" struct UnknownStruct6 { @@ -62,48 +63,6 @@ struct UnknownStruct12 extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; -extern u8 ewram[]; -#define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0)) -#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4)) -#define ewram16000 (ewram[0x16000]) -#define ewram16001 (ewram[0x16001]) -#define ewram16002 (ewram[0x16002]) -#define ewram16003 (ewram[0x16003]) -#define ewram1600C (ewram[0x1600C]) -#define ewram1600E (ewram[0x1600E]) -#define ewram1601B (ewram[0x1601B]) -#define ewram16020 ((u8 *)(ewram + 0x16020)) -#define ewram16056 (ewram[0x16056]) -#define ewram16058 (ewram[0x16058]) -#define ewram16059 (ewram[0x16059]) -#define ewram16078 (ewram[0x16078]) -#define ewram16084 (ewram[0x16084]) -#define ewram16086 (ewram[0x16086]) -#define ewram16087 (ewram[0x16087]) -#define ewram16088 (ewram[0x16088]) -#define ewram16089 (ewram[0x16089]) -#define ewram160A1 (ewram[0x160A1]) -#define ewram160A6 (ewram[0x160A6]) -#define ewram160AC ((u8 *)(ewram + 0x160AC)) -#define ewram160BC ((u16 *)(ewram + 0x160BC)) // hp -#define ewram160C8 (ewram[0x160C8]) -#define ewram160C9 (ewram[0x160C9]) -#define ewram160CB (ewram[0x160CB]) -#define ewram160CC ((u8 *)(ewram + 0x160CC)) -#define ewram160E6 (ewram[0x160E6]) -#define ewram160E8 ((u8 *)(ewram + 0x160E8)) -#define ewram160F0 ((u8 *)(ewram + 0x160F0)) -#define ewram160F9 (ewram[0x160F9]) -#define ewram16100 ((u8 *)(ewram + 0x16100)) -#define ewram16108 ((u8 *)(ewram + 0x16108)) -#define ewram16110 (ewram[0x16110]) -#define ewram16111 (ewram[0x16111]) -#define ewram16113 (ewram[0x16113]) -#define ewram17100 ((u32 *)(ewram + 0x17100)) -#define ewram17130 (ewram[0x17130]) -#define ewram17160 (ewram[0x17160]) -#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000)) - extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBank; diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c index 346ca6d79..e8819781d 100644 --- a/src/battle/battle_3.c +++ b/src/battle/battle_3.c @@ -13,6 +13,7 @@ #include "battle_move_effects.h" #include "string_util.h" #include "flags.h" +#include "ewram.h" extern u8* gBattlescriptCurrInstr; extern u8 gActiveBank; @@ -198,8 +199,6 @@ extern u8 gUnknown_081D996F[]; //disobedient, uses a random move extern u8 gUnknown_081D9989[]; //disobedient, went to sleep extern u8 gUnknown_081D99A0[]; //disobedient, hits itself -#define CHOICED_MOVE(bank)(((u16*)(&ewram[bank * 2 + 0x160e8]))) - //array entries for battle communication #define MOVE_EFFECT_BYTE 0x3 #define MULTISTRING_CHOOSER 0x5 @@ -1439,8 +1438,6 @@ struct Struct2017100 u32 arr[4]; }; -#define ewram17100 (*(struct Struct2017100 *)(ewram + 0x17100)) - u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; @@ -1726,14 +1723,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_FLASH_FIRE: if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) { - if (!(ewram17100.arr[bank] & 1)) + if (!(ewram17100_2.arr[bank] & 1)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; if (gProtectStructs[gBankAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - ewram17100.arr[bank] |= 1; + ewram17100_2.arr[bank] |= 1; effect = 2; } else diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 65e0458a2..3fee71a5f 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -259,8 +259,6 @@ extern u8 gUnknown_081D9468[]; #define sBYTE2_32(value)(( (u8) (((s32)(value) & (0x00FF0000)) >> 0x10))) #define sBYTE3_32(value)(( (u8) (((s32)(value) & (0xFF000000)) >> 0x18))) -#define USED_HELD_ITEM(bank)((((u16*)(&unk_2000000[bank * 2 + 0x160cc])))) - #define RecordAbilitySetField6(ability, fieldValue) \ (gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBankTarget, ability)) @@ -2640,7 +2638,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) {gBattlescriptCurrInstr++; return;} gLastUsedItem = gBattleMons[gBankTarget].item; - unk_2000000[gBankAttacker * 2 + 0x160cc] = gLastUsedItem; + ewram[gBankAttacker * 2 + 0x160cc] = gLastUsedItem; gBattleMons[gBankTarget].item = 0; gActiveBank = gBankAttacker; @@ -5123,7 +5121,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jump_loc; RecordAbilityBattle(bank -1, gLastUsedAbility); - unk_2000000[0x160f8] = bank - 1; + ewram[0x160f8] = bank - 1; } else gBattlescriptCurrInstr += 7; @@ -5136,7 +5134,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jump_loc; RecordAbilityBattle(bank - 1, gLastUsedAbility); - unk_2000000[0x160f8] = bank - 1; + ewram[0x160f8] = bank - 1; } else gBattlescriptCurrInstr += 7; @@ -5149,7 +5147,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jump_loc; RecordAbilityBattle(bank, gLastUsedAbility); - unk_2000000[0x160f8] = bank; + ewram[0x160f8] = bank; } else gBattlescriptCurrInstr += 7; @@ -7327,7 +7325,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44(void) { - unk_2000000[gBankAttacker + 0x16060] = 1; + ewram[gBankAttacker + 0x16060] = 1; } #ifdef NONMATCHING @@ -9522,7 +9520,7 @@ static void atk4C_copy_poke_data(void) gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - gBattlePartyID[gActiveBank] = unk_2000000[0x16068 + gActiveBank]; + gBattlePartyID[gActiveBank] = ewram[0x16068 + gActiveBank]; EmitGetAttributes(0, 0, gBitTable[gBattlePartyID[gActiveBank]]); MarkBufferBankForExecution(gActiveBank); @@ -11640,7 +11638,6 @@ static void atk69_dmg_adjustment2(void) //literally a copy of atk07 except there void atk6A_removeitem(void) { gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); - #define USED_HELD_ITEMS(bank) (*(u16 *)&ewram[0x160CC + 2 * (bank)]) USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item; gBattleMons[gActiveBank].item = 0; diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c index 1d68386aa..6c0a4489c 100644 --- a/src/battle/battle_7.c +++ b/src/battle/battle_7.c @@ -18,6 +18,7 @@ #include "task.h" #include "text.h" #include "gba/m4a_internal.h" +#include "ewram.h" struct Struct2019348 { @@ -71,8 +72,6 @@ extern const struct CompressedSpriteSheet gUnknown_0820A4B4[]; extern const struct SpritePalette gUnknown_0820A4D4[]; extern const u8 gUnknown_08D09C48[]; -#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348)) - extern void c3_0802FDF4(u8); extern void sub_80440EC(); extern void sub_804777C(); diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index eac16ee18..0c04ff9b8 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -16,7 +16,6 @@ // sprites start at 10000 and thus must be subtracted of 10000 to account for the true index. #define GET_TRUE_SPRITE_INDEX(i) (i - 10000) -extern u8 unk_2000000[]; extern u16 gBattlePartyID[4]; extern u8 gObjectBankIDs[]; extern u8 gBankAttacker; diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c index 10962c025..831839d9b 100644 --- a/src/battle/battle_interface.c +++ b/src/battle/battle_interface.c @@ -13,6 +13,7 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "ewram.h" struct UnknownStruct5 { @@ -28,12 +29,6 @@ struct UnknownStruct7 u8 filler0[0x180]; }; -extern u8 ewram[]; -#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520)) -#define ewram16088 (*(u8 *) (ewram + 0x16088)) -#define ewram16089 (*(u8 *) (ewram + 0x16089)) -#define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850)) - extern u8 gDisplayedStringBattle[]; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c index 2f6dc6816..ab8b7a694 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle/battle_party_menu.c @@ -18,9 +18,7 @@ #include "strings.h" #include "task.h" #include "text.h" - -extern u8 ewram[]; -#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever. +#include "ewram.h" extern u8 sub_806BD58(u8, u8); extern void PartyMenuPrintMonsLevelOrStatus(void); diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c index 53d32d03a..5562da462 100644 --- a/src/battle/battle_transition.c +++ b/src/battle/battle_transition.c @@ -12,11 +12,11 @@ #include "songs.h" #include "trainer.h" #include "field_camera.h" +#include "ewram.h" void sub_807DE10(void); void dp12_8087EA4(void); -extern u8 ewram[]; extern u16 gUnknown_03005560[]; extern u16 gUnknown_03004DE0[][0x3C0]; @@ -45,7 +45,6 @@ struct TransitionData s16 data[11]; }; -#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000)) typedef bool8 (*TransitionState)(struct Task* task); typedef bool8 (*TransitionSpriteCallback)(struct Sprite* sprite); diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c index 343c8f183..396c4435e 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/battle/reshow_battle_screen.c @@ -7,6 +7,7 @@ #include "text.h" #include "rom_8077ABC.h" #include "data2.h" +#include "ewram.h" extern struct SpriteTemplate gUnknown_02024E8C; extern struct Window gUnknown_03004210; @@ -55,9 +56,6 @@ static void sub_807B184(u8 bank); static void sub_807B508(u8 bank); static void sub_807B06C(void); -#define gReshowState ewram[0x1FFFF] -#define gHelperState ewram[0x1FFFE] - void nullsub_14(void) { diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index d0c0f95f7..0a495c37a 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -45,7 +45,7 @@ extern u8 gUnknown_083C9282[]; extern const u8 gUnknown_083C928E[][2]; extern u8 gUnknown_083C9296[]; extern u8 gUnknown_083C92A8[]; -extern u8 unk_2000000[]; +extern u8 unk_2000000[]; // TODO: use ewram extern u8 gMatsudaDebugMenu_GoBackText[]; extern u8 gMatsudaDebugMenu_BattlePointsText[]; extern u8 gMatsudaDebugMenu_StartText[]; diff --git a/src/engine/link.c b/src/engine/link.c index 7f7e48083..86413cfbf 100644 --- a/src/engine/link.c +++ b/src/engine/link.c @@ -35,7 +35,6 @@ struct LinkTestBGInfo u32 dummy_C; }; -extern u8 unk_2000000[]; extern u8 unk_2004000[]; extern u16 gBattleTypeFlags; @@ -507,7 +506,7 @@ static void ProcessRecvCmds(u8 unusedParam) case 0x8888: if (sBlockRecv[i].size > BLOCK_BUFFER_SIZE) { - u16 *buffer = (u16 *)unk_2000000; + u16 *buffer = (u16 *)ewram; u16 j; for (j = 0; j < CMD_LENGTH - 1; j++) buffer[(sBlockRecv[i].pos / 2) + j] = gRecvCmds[j + 1][i]; diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c index a20a15569..92a61eb8f 100644 --- a/src/engine/naming_screen.c +++ b/src/engine/naming_screen.c @@ -17,6 +17,7 @@ #include "text.h" #include "trig.h" #include "util.h" +#include "ewram.h" #ifdef ENGLISH #define COLUMN_COUNT 9 @@ -26,10 +27,6 @@ extern u16 gKeyRepeatStartDelay; -extern u8 unk_2000000[]; - -#define namingScreenData (*(struct NamingScreenData *)(unk_2000000)) - extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); const u32 gSpriteImage_83CE094[] = INCBIN_U32("graphics/naming_screen/pc_icon/0.4bpp"); diff --git a/src/engine/record_mixing.c b/src/engine/record_mixing.c index 87fc6a81d..27992bf1f 100644 --- a/src/engine/record_mixing.c +++ b/src/engine/record_mixing.c @@ -24,10 +24,7 @@ #include "strings2.h" #include "task.h" #include "tv.h" - -extern u8 ewram[]; -#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000)) -#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000)) +#include "ewram.h" extern struct RecordMixingDayCareMail gUnknown_02038738; extern u16 gSpecialVar_0x8005; diff --git a/src/engine/trade.c b/src/engine/trade.c index 8fad94be8..b11b7e448 100644 --- a/src/engine/trade.c +++ b/src/engine/trade.c @@ -217,9 +217,6 @@ extern u8 *gUnknown_020296CC[13]; extern struct TradeEwramSubstruct *gUnknown_03004824; extern struct MailStruct gUnknown_02029700[16]; -#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000)) - - const u32 unref_data_820ABD4[] = { 0x00000890, 0x00003AC0, diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c index 3e9dadbda..ef960c162 100644 --- a/src/engine/trainer_card.c +++ b/src/engine/trainer_card.c @@ -20,6 +20,7 @@ #include "task.h" #include "unknown_task.h" #include "util.h" +#include "ewram.h" typedef void (*Callback)(void); @@ -47,9 +48,6 @@ struct Struct2000000 /*0x9C*/ u8 language; // 0x9C }; -extern u8 ewram[]; -#define ewram0 (*(struct Struct2000000 *)(ewram)) - extern struct LinkPlayerMapObject gLinkPlayerMapObjects[]; EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0}; @@ -189,14 +187,14 @@ void sub_8093110(Callback arg1) { sub_80932AC(arg1); SetMainCallback2(sub_8093174); - ewram0.language = GAME_LANGUAGE; + ewram0_2.language = GAME_LANGUAGE; } void sub_8093130(u8 playerIndex, Callback arg2) { sub_80932E4(playerIndex, arg2); SetMainCallback2(sub_8093174); - ewram0.language = gLinkPlayers[gLinkPlayerMapObjects[playerIndex].linkPlayerId].language; + ewram0_2.language = gLinkPlayers[gLinkPlayerMapObjects[playerIndex].linkPlayerId].language; } static void sub_8093174(void) @@ -258,13 +256,13 @@ static void sub_8093254(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - ewram0.var_6++; - if (ewram0.var_6 >= 60) + ewram0_2.var_6++; + if (ewram0_2.var_6 >= 60) { - ewram0.var_6 = 0; - ewram0.var_5 ^= 1; + ewram0_2.var_6 = 0; + ewram0_2.var_5 ^= 1; } - if (ewram0.var_4) + if (ewram0_2.var_4) DmaCopy16(3, gUnknown_03004DE0.filler0, gUnknown_03004DE0.unk780, sizeof(gUnknown_03004DE0.unk780)); } @@ -290,20 +288,20 @@ void sub_8093324(void) { u8 taskId = FindTaskIdByFunc(nullsub_60); struct Task *task = &gTasks[taskId]; - ewram0.var_1 = task->data[TD_0]; + ewram0_2.var_1 = task->data[TD_0]; - LoadWordFromTwoHalfwords((u16 *)&task->data[TD_CALLBACK], (u32 *)&ewram0.var_60); + LoadWordFromTwoHalfwords((u16 *)&task->data[TD_CALLBACK], (u32 *)&ewram0_2.var_60); - if (ewram0.var_1) + if (ewram0_2.var_1) { struct TrainerCard(*trainerCards)[4] = &gTrainerCards; s16 var = task->data[TD_1]; struct TrainerCard *dest = &(*trainerCards)[var]; - memcpy(&ewram0.var_64, dest, sizeof(struct TrainerCard)); + memcpy(&ewram0_2.var_64, dest, sizeof(struct TrainerCard)); } else { - sub_8093390(&ewram0.var_64); + sub_8093390(&ewram0_2.var_64); } } @@ -502,52 +500,52 @@ static void sub_8093688(void) u8 i; sub_8093324(); - ewram0.var_0 = 0; - ewram0.var_3 = 0; - ewram0.var_4 = FALSE; - ewram0.var_2 = ewram0.var_64.stars; - ewram0.var_5 = 0; - ewram0.var_6 = 0; + ewram0_2.var_0 = 0; + ewram0_2.var_3 = 0; + ewram0_2.var_4 = FALSE; + ewram0_2.var_2 = ewram0_2.var_64.stars; + ewram0_2.var_5 = 0; + ewram0_2.var_6 = 0; for (i = 0; i < 4; i++) - EasyChat_GetWordText(ewram0.var_20[i], ewram0.var_64.var_28[i]); + EasyChat_GetWordText(ewram0_2.var_20[i], ewram0_2.var_64.var_28[i]); sub_80936D4(); } void sub_80936D4(void) { - ewram0.var_7 = 0; - ewram0.var_8 = 0; - ewram0.var_9 = 0; - ewram0.var_a = 0; - ewram0.var_b = 0; - ewram0.var_c = 0; - ewram0.var_d = 0; - memset(ewram0.var_e, 0, sizeof(ewram0.var_e)); + ewram0_2.var_7 = 0; + ewram0_2.var_8 = 0; + ewram0_2.var_9 = 0; + ewram0_2.var_a = 0; + ewram0_2.var_b = 0; + ewram0_2.var_c = 0; + ewram0_2.var_d = 0; + memset(ewram0_2.var_e, 0, sizeof(ewram0_2.var_e)); - if (ewram0.var_64.hasPokedex) - ewram0.var_7++; + if (ewram0_2.var_64.hasPokedex) + ewram0_2.var_7++; - if (ewram0.var_64.firstHallOfFameA != 0 - || ewram0.var_64.firstHallOfFameB != 0 - || ewram0.var_64.firstHallOfFameC != 0) - ewram0.var_8++; + if (ewram0_2.var_64.firstHallOfFameA != 0 + || ewram0_2.var_64.firstHallOfFameB != 0 + || ewram0_2.var_64.firstHallOfFameC != 0) + ewram0_2.var_8++; - if (ewram0.var_64.linkBattleWins != 0 || ewram0.var_64.linkBattleLosses != 0) - ewram0.var_9++; + if (ewram0_2.var_64.linkBattleWins != 0 || ewram0_2.var_64.linkBattleLosses != 0) + ewram0_2.var_9++; - if (ewram0.var_64.battleTowerWins != 0 || ewram0.var_64.battleTowerLosses != 0) - ewram0.var_a++; + if (ewram0_2.var_64.battleTowerWins != 0 || ewram0_2.var_64.battleTowerLosses != 0) + ewram0_2.var_a++; - if (ewram0.var_64.contestsWithFriends != 0) - ewram0.var_b++; + if (ewram0_2.var_64.contestsWithFriends != 0) + ewram0_2.var_b++; - if (ewram0.var_64.pokeblocksWithFriends != 0) - ewram0.var_c++; + if (ewram0_2.var_64.pokeblocksWithFriends != 0) + ewram0_2.var_c++; - if (ewram0.var_64.pokemonTrades != 0) - ewram0.var_d++; + if (ewram0_2.var_64.pokemonTrades != 0) + ewram0_2.var_d++; - if (!ewram0.var_1) + if (!ewram0_2.var_1) { u32 badgeFlag; int i = 0; @@ -556,7 +554,7 @@ void sub_80936D4(void) while (1) { if (FlagGet(badgeFlag)) - ewram0.var_e[i]++; + ewram0_2.var_e[i]++; badgeFlag++; i++; if (badgeFlag > BADGE08_GET) @@ -613,24 +611,24 @@ static void sub_809380C() static void sub_809382C(u8 taskId) { - while (gUnknown_083B5EBC[ewram0.var_0](&gTasks[taskId]) != 0) + while (gUnknown_083B5EBC[ewram0_2.var_0](&gTasks[taskId]) != 0) ; } bool8 sub_8093864(struct Task *task) { - ewram0.var_5 = gSaveBlock2.playTimeSeconds & 1; - ewram0.var_6 = gSaveBlock2.playTimeVBlanks; + ewram0_2.var_5 = gSaveBlock2.playTimeSeconds & 1; + ewram0_2.var_6 = gSaveBlock2.playTimeVBlanks; sub_80939A4(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - ewram0.var_0++; + ewram0_2.var_0++; return FALSE; } bool8 sub_80938A8(struct Task *task) { if (!gPaletteFade.active) - ewram0.var_0++; + ewram0_2.var_0++; return FALSE; } @@ -638,19 +636,19 @@ bool8 sub_80938CC(struct Task *task) { if (gMain.newKeys & B_BUTTON) { - ewram0.var_0 = 5; + ewram0_2.var_0 = 5; return TRUE; } else if (gMain.newKeys & A_BUTTON) { - if (ewram0.var_3 != 0) + if (ewram0_2.var_3 != 0) { - ewram0.var_0 = 5; + ewram0_2.var_0 = 5; } else { - ewram0.var_3 ^= 1; - ewram0.var_0 = 3; + ewram0_2.var_3 ^= 1; + ewram0_2.var_0 = 3; } return TRUE; } @@ -661,14 +659,14 @@ bool8 sub_8093918(struct Task *task) { sub_8093A28(); PlaySE(SE_CARD); - ewram0.var_0++; + ewram0_2.var_0++; return FALSE; } bool8 sub_8093938(struct Task *task) { if (sub_8093A48()) - ewram0.var_0 = 2; + ewram0_2.var_0 = 2; return FALSE; } @@ -676,14 +674,14 @@ bool8 sub_8093954(struct Task *task) { sub_80939C0(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - ewram0.var_0++; + ewram0_2.var_0++; return FALSE; } bool8 sub_8093980(struct Task *task) { if (!gPaletteFade.active) - SetMainCallback2((MainCallback)ewram0.var_60); + SetMainCallback2((MainCallback)ewram0_2.var_60); return FALSE; } @@ -706,9 +704,9 @@ static void sub_80939DC(u8 taskId) u8 buffer[32]; struct Task *task = &gTasks[taskId]; - if (ewram0.var_5 != task->data[TD_1]) + if (ewram0_2.var_5 != task->data[TD_1]) { - task->data[TD_1] = ewram0.var_5; + task->data[TD_1] = ewram0_2.var_5; task->data[TD_0] ^= TRUE; } TrainerCard_Front_PrintPlayTime(buffer, task->data[TD_0]); @@ -741,12 +739,12 @@ bool8 sub_8093AA0(struct Task *task) { s32 i; - ewram0.var_4 = FALSE; + ewram0_2.var_4 = FALSE; dp12_8087EA4(); for (i = 0; i < ARRAY_COUNT(gUnknown_03004DE0.unk780); i++) gUnknown_03004DE0.unk780[i] = -4; SetHBlankCallback(sub_8093D7C); - ewram0.var_4 = TRUE; + ewram0_2.var_4 = TRUE; task->data[0]++; return FALSE; } @@ -763,7 +761,7 @@ bool8 sub_8093AF0(struct Task *task) u32 sp0; s16 i; - ewram0.var_4 = 0; + ewram0_2.var_4 = 0; task->data[1] += 3; if (task->data[1] > 79) task->data[1] = 79; @@ -792,7 +790,7 @@ bool8 sub_8093AF0(struct Task *task) } for (; i < 160; i++) gUnknown_03004DE0.filler0[i] = -4 + (u16)(r10 >> 16); - ewram0.var_4 = 1; + ewram0_2.var_4 = 1; if (task->data[1] > 0x4A) task->data[0]++; return FALSE; @@ -955,7 +953,7 @@ bool8 sub_8093C0C(struct Task *task) { sub_80939C0(); sub_8093DAC(); - if (!ewram0.var_3) + if (!ewram0_2.var_3) sub_80939A4(); task->data[0]++; return TRUE; @@ -1115,7 +1113,7 @@ bool8 sub_8093D50(struct Task *task) { u8 taskId; - ewram0.var_4 = FALSE; + ewram0_2.var_4 = FALSE; SetHBlankCallback(NULL); sub_8093E04(); taskId = FindTaskIdByFunc(sub_8093A68); @@ -1134,7 +1132,7 @@ void sub_8093D7C(void) static void sub_8093DAC(void) { - if (ewram0.var_3) + if (ewram0_2.var_3) sub_8093DEC(); else sub_8093DC8(); @@ -1203,23 +1201,23 @@ extern const u16 *const gUnknown_083B5EF8[]; void sub_8093EA0(void) { - LoadPalette(gUnknown_083B5EF8[ewram0.var_2], 0, 48 * 2); + LoadPalette(gUnknown_083B5EF8[ewram0_2.var_2], 0, 48 * 2); LoadPalette(gBadgesPalette, 48, 16 * 2); LoadPalette(gUnknown_083B5F4C, 64, 16 * 2); - if (ewram0.var_64.gender != MALE) + if (ewram0_2.var_64.gender != MALE) LoadPalette(gUnknown_083B5F0C, 16, 16 * 2); } static void sub_8093EF8(void) { - LoadTrainerGfx_TrainerCard(ewram0.var_64.gender, 80, (void *)(VRAM + 0x1880)); + LoadTrainerGfx_TrainerCard(ewram0_2.var_64.gender, 80, (void *)(VRAM + 0x1880)); } static void sub_8093F14(void) { const void *arr[] = {gUnknown_08E8CAC0, gUnknown_08E8D4C0}; - CpuFastSet(arr[ewram0.var_1], (void *)(VRAM + 0x4800), 0x140); + CpuFastSet(arr[ewram0_2.var_1], (void *)(VRAM + 0x4800), 0x140); } // I don't really know where to put the data. It's in such a weird order. @@ -1269,7 +1267,7 @@ static void sub_8093FD0(void) { u16 *ptr = (u16 *)(VRAM + 0x4000); s16 i = 15; - s16 var = 15 + ewram0.var_2; + s16 var = 15 + ewram0_2.var_2; while (i < var) { @@ -1285,7 +1283,7 @@ static void sub_8093FD0(void) static void sub_8094038(void) { - if (ewram0.var_1 == 0) + if (ewram0_2.var_1 == 0) { u16 *ptr = (u16 *)(VRAM + 0x4000); s16 i; @@ -1293,7 +1291,7 @@ static void sub_8094038(void) for (i = 0, r2 = 4; i < 8; i++, r2 += 3) { - if (ewram0.var_e[i] != 0) + if (ewram0_2.var_e[i] != 0) { ptr[15 * 32 + r2 + 0] = gUnknown_083B5F8C[i][0] | 0x3000; ptr[15 * 32 + r2 + 1] = gUnknown_083B5F8C[i][1] | 0x3000; @@ -1332,8 +1330,8 @@ static void sub_8094140(void) BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values); buffer = gStringVar1; - StringCopy(buffer, ewram0.var_64.playerName); - ConvertInternationalString(buffer, ewram0.language); + StringCopy(buffer, ewram0_2.var_64.playerName); + ConvertInternationalString(buffer, ewram0_2.language); MenuPrint(buffer, 7, 5); TrainerCard_Front_PrintTrainerID(); @@ -1366,26 +1364,26 @@ static void TrainerCard_Front_PrintTrainerID(void) { u8 buffer[8]; - ConvertIntToDecimalStringN(buffer, ewram0.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5); + ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5); MenuPrint(buffer, 20, 2); } static void TrainerCard_Front_PrintMoney(void) { - sub_80B7AEC(ewram0.var_64.money, 16, 8); + sub_80B7AEC(ewram0_2.var_64.money, 16, 8); } static void TrainerCard_Front_PrintPokedexCount(void) { u8 buffer[16]; - if (ewram0.var_7 == FALSE) + if (ewram0_2.var_7 == FALSE) { sub_8094110(); } else { - ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3); MenuPrint_RightAligned(buffer, 16, 10); } } @@ -1398,10 +1396,10 @@ static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon) playTimeHours = gSaveBlock2.playTimeHours; playTimeMinutes = gSaveBlock2.playTimeMinutes; - if (ewram0.var_1 != 0) + if (ewram0_2.var_1 != 0) { - playTimeHours = ewram0.var_64.playTimeHours; - playTimeMinutes = ewram0.var_64.playTimeMinutes; + playTimeHours = ewram0_2.var_64.playTimeHours; + playTimeMinutes = ewram0_2.var_64.playTimeMinutes; } FormatPlayTime(buffer, playTimeHours, playTimeMinutes, colon); sub_8072C74(arg1, buffer, 48, 1); @@ -1411,20 +1409,20 @@ static void sub_809429C(void) { u8 *str; - if (ewram0.var_1 != 0) + if (ewram0_2.var_1 != 0) { str = gStringVar1; - str = StringCopy(str, ewram0.var_20[0]); + str = StringCopy(str, ewram0_2.var_20[0]); str[0] = 00; str++; - str = StringCopy(str, ewram0.var_20[1]); + str = StringCopy(str, ewram0_2.var_20[1]); MenuPrint(gStringVar1, 2, 14); str = gStringVar1; - str = StringCopy(str, ewram0.var_20[2]); + str = StringCopy(str, ewram0_2.var_20[2]); str[0] = 00; str++; - str = StringCopy(str, ewram0.var_20[3]); + str = StringCopy(str, ewram0_2.var_20[3]); MenuPrint(gStringVar1, 2, 16); } } @@ -1434,8 +1432,8 @@ static void TrainerCard_Back_PrintName(void) u8 *str; str = gStringVar1; - StringCopy(str, ewram0.var_64.playerName); - ConvertInternationalString(str, ewram0.language); + StringCopy(str, ewram0_2.var_64.playerName); + ConvertInternationalString(str, ewram0_2.language); #if ENGLISH StringAppend(str, gOtherText_TrainersTrainerCard); @@ -1448,7 +1446,7 @@ static void TrainerCard_Back_PrintName(void) static void TrainerCard_Back_PrintHallOfFameTime_Label(void) { - if (ewram0.var_8 != 0) + if (ewram0_2.var_8 != 0) MenuPrint(gOtherText_FirstHOF, 3, 5); } @@ -1456,21 +1454,21 @@ static void TrainerCard_Back_PrintHallOfFameTime(void) { u8 *str; - if (ewram0.var_8 != 0) + if (ewram0_2.var_8 != 0) { str = gStringVar1; - str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3); + str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3); str = StringCopy(str, gUnknown_083B5EF4); - str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2); + str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2); str = StringCopy(str, gUnknown_083B5EF4); - str = ConvertIntToDecimalStringN(str, ewram0.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2); + str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2); MenuPrint_RightAligned(gStringVar1, 28, 5); } } static void TrainerCard_Back_PrintLinkBattlesLabel(void) { - if (ewram0.var_9 != 0) + if (ewram0_2.var_9 != 0) MenuPrint(gOtherText_LinkCableBattles, 3, 7); } @@ -1478,19 +1476,19 @@ static void TrainerCard_Back_PrintLinkBattles(void) { u8 buffer[16]; - if (ewram0.var_9 != 0) + if (ewram0_2.var_9 != 0) { - ConvertIntToDecimalString(buffer, ewram0.var_64.linkBattleWins); + ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleWins); MenuPrint_RightAligned(buffer, 22, 7); - ConvertIntToDecimalString(buffer, ewram0.var_64.linkBattleLosses); + ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleLosses); MenuPrint_RightAligned(buffer, 28, 7); } } static void TrainerCard_Back_PrintBattleTower_Label(void) { - if (ewram0.var_a != 0) + if (ewram0_2.var_a != 0) MenuPrint(gOtherText_BattleTowerWinRecord, 3, 15); } @@ -1498,19 +1496,19 @@ static void TrainerCard_Back_PrintBattleTower(void) { u8 buffer[16]; - if (ewram0.var_a != 0) + if (ewram0_2.var_a != 0) { - sub_8072C44(buffer, ewram0.var_64.battleTowerWins, 24, 1); + sub_8072C44(buffer, ewram0_2.var_64.battleTowerWins, 24, 1); MenuPrint_PixelCoords(buffer, 112, 120, 0); - sub_8072C44(buffer, ewram0.var_64.battleTowerLosses, 24, 1); + sub_8072C44(buffer, ewram0_2.var_64.battleTowerLosses, 24, 1); MenuPrint_PixelCoords(buffer, 149, 120, 0); } } static void TrainerCard_Back_PrintLinkContests_Label(void) { - if (ewram0.var_b != 0) + if (ewram0_2.var_b != 0) MenuPrint(gOtherText_ContestRecord, 3, 13); } @@ -1518,16 +1516,16 @@ static void TrainerCard_Back_PrintLinkContests(void) { u8 buffer[8]; - if (ewram0.var_b != 0) + if (ewram0_2.var_b != 0) { - ConvertIntToDecimalStringN(buffer, ewram0.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3); MenuPrint_RightAligned(buffer, 28, 13); } } static void TrainerCard_Back_PrintLinkPokeblocks_Label(void) { - if (ewram0.var_c != 0) + if (ewram0_2.var_c != 0) MenuPrint(gOtherText_MixingRecord, 3, 11); } @@ -1535,16 +1533,16 @@ static void TrainerCard_Back_PrintLinkPokeblocks(void) { u8 buffer[8]; - if (ewram0.var_c != 0) + if (ewram0_2.var_c != 0) { - ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5); + ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5); MenuPrint_RightAligned(buffer, 28, 11); } } static void TrainerCard_Back_PrintPokemonTrades_Label(void) { - if (ewram0.var_d != 0) + if (ewram0_2.var_d != 0) MenuPrint(gOtherText_TradeRecord, 3, 9); } @@ -1552,9 +1550,9 @@ static void TrainerCard_Back_PrintPokemonTrades(void) { u8 buffer[8]; - if (ewram0.var_d != 0) + if (ewram0_2.var_d != 0) { - ConvertIntToDecimalStringN(buffer, ewram0.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5); + ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5); MenuPrint_RightAligned(buffer, 28, 9); } } diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 1b5759f49..3e60d3a9a 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -24,6 +24,7 @@ #include "trainer.h" #include "tv.h" #include "vars.h" +#include "ewram.h" #if ENGLISH #include "../data/battle_tower/trainers.h" @@ -278,9 +279,6 @@ extern u8 gBattleOutcome; extern struct Pokemon gUnknown_030042FC[]; extern struct BattlePokemon gBattleMons[]; -#define ewram160FB (ewram[0x160FB]) - - void sub_8134548(void) { u8 var1 = 0; diff --git a/src/field/dewford_trend.c b/src/field/dewford_trend.c index aaf4dd66a..f47dbba08 100644 --- a/src/field/dewford_trend.c +++ b/src/field/dewford_trend.c @@ -6,7 +6,7 @@ #include "rng.h" #include "text.h" -extern u8 unk_2000000[]; +extern u8 ewram[]; extern u16 gScriptResult; extern u16 gSpecialVar_0x8004; diff --git a/src/field/field_region_map.c b/src/field/field_region_map.c index 7cb22e5df..e189fcf2c 100644 --- a/src/field/field_region_map.c +++ b/src/field/field_region_map.c @@ -7,6 +7,7 @@ #include "sprite.h" #include "strings2.h" #include "text.h" +#include "ewram.h" struct RegionMapStruct { @@ -24,9 +25,6 @@ struct UnkStruct u16 unk888; }; -extern u8 ewram[]; -#define unk_2000000 (*(struct UnkStruct *)(ewram)) - void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); diff --git a/src/field/field_tasks.c b/src/field/field_tasks.c index da6f162c2..767753da2 100644 --- a/src/field/field_tasks.c +++ b/src/field/field_tasks.c @@ -1,7 +1,3 @@ -// - -// - #include "global.h" #include "task.h" #include "main.h" diff --git a/src/field/fldeff_softboiled.c b/src/field/fldeff_softboiled.c index 22f9c13f5..b2c3d9bd1 100644 --- a/src/field/fldeff_softboiled.c +++ b/src/field/fldeff_softboiled.c @@ -9,6 +9,7 @@ #include "sprite.h" #include "strings.h" #include "task.h" +#include "ewram.h" struct Struct2001000 { u8 unk0; @@ -38,15 +39,9 @@ struct Struct201C000 { #define WINDOW_RIGHT 29 #endif -#define EWRAM_1000 (*(struct Struct2001000 *)(unk_2000000 + 0x1000)) -#define EWRAM_1B000_2 (*(struct Struct201B000 *)(unk_2000000 + 0x1B000)) -#define EWRAM_1C000 (*(struct Struct201C000 *)(unk_2000000 + 0x1C000)) - // extern extern u8 gUnknown_0202E8F6; extern u8 gLastFieldPokeMenuOpened; - -extern u8 unk_2000000[]; extern u8 gUnknown_0202E8F4; // Static diff --git a/src/field/item_menu.c b/src/field/item_menu.c index c508bcacf..09542cc6d 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -34,9 +34,9 @@ #include "task.h" #include "text.h" #include "unknown_task.h" +#include "ewram.h" // External stuff -extern u8 ewram[]; extern void gpu_pal_allocator_reset__manage_upper_four(void); extern void sub_80F9020(void); extern void sub_80F9988(); @@ -158,12 +158,6 @@ extern struct PocketScrollState gBagPocketScrollStates[]; extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots extern const u8 Event_NoRegisteredItem[]; -#define ewramBerryPic (ewram + 0) -#define ewramBerryPicTemp (ewram + 0x1000) -#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle) -#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle) -#define ewramBagSetupStep (ewram[0x1FFFF]) - extern const struct CompressedSpriteSheet sMaleBagSpriteSheet; extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet; extern const struct CompressedSpritePalette sBagSpritePalette; diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 7a519d737..25fd63463 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -25,7 +25,6 @@ #include "pokemon_summary_screen.h" #include "rom_8077ABC.h" #include "rom_8094928.h" -#include "script_pokemon_80F9.h" #include "songs.h" #include "sound.h" #include "species.h" @@ -35,6 +34,8 @@ #include "task.h" #include "unknown_task.h" #include "util.h" +#include "script_pokemon_80F9.h" +#include "ewram.h" struct Coords8 { @@ -483,9 +484,6 @@ struct Unk201FE00 u8 unkE02; }; -#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000)) -#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00)) - extern u16 gBattleTypeFlags; extern u8 gTileBuffer[]; extern u8 gUnknown_0202E8F4; diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c index 2ee1a23ae..e5084da18 100644 --- a/src/field/pokeblock.c +++ b/src/field/pokeblock.c @@ -27,6 +27,7 @@ #include "safari_zone.h" #include "event_data.h" #include "pokeblock.h" +#include "ewram.h" struct UnkPokeblockStruct { @@ -36,9 +37,6 @@ struct UnkPokeblockStruct u8 unk3; }; -extern u8 ewram[]; - - static EWRAM_DATA u8 gUnknown_02039244 = 0; static EWRAM_DATA struct UnkPokeblockStruct gUnknown_02039248 = {0}; static EWRAM_DATA u8 gUnknown_0203924C = 0; diff --git a/src/field/region_map.c b/src/field/region_map.c index bfd2729c2..b5a3de563 100644 --- a/src/field/region_map.c +++ b/src/field/region_map.c @@ -17,6 +17,7 @@ #include "string_util.h" #include "text.h" #include "trig.h" +#include "ewram.h" // Map Section IDs #define MAPSEC_LITTLEROOT_TOWN 0 @@ -1350,12 +1351,6 @@ struct UnknownStruct3 struct RegionMap regionMap; }; -extern u8 ewram[]; -#define ewram0 (*(struct UnknownStruct3 *)(ewram + 0)) -#define ewram888 (ewram + 0x888) -#define ewramA6E (ewram[0xA6E]) -#define ewramBlankMapName (ewram + 0xA48) - static const u16 sFlyRegionMapFrame_Pal[] = INCBIN_U16("graphics/pokenav/map_frame.gbapal"); static const u8 sFlyRegionMapFrame_ImageLZ[] = INCBIN_U8("graphics/pokenav/map_frame.4bpp.lz"); static const u8 sFlyRegionMapFrame_TilemapLZ[] = INCBIN_U8("graphics/pokenav/map_frame.bin.lz"); @@ -1552,10 +1547,10 @@ void CB2_InitFlyRegionMap(void) MenuZeroFillScreen(); break; case 3: - InitRegionMap(&ewram0.regionMap, 0); + InitRegionMap(&ewram0_3.regionMap, 0); CreateRegionMapCursor(0, 0); CreateRegionMapPlayerIcon(1, 1); - ewram0.unk6 = ewram0.regionMap.mapSecId; + ewram0_3.unk6 = ewram0_3.regionMap.mapSecId; StringFill(ewramBlankMapName, CHAR_SPACE, 12); PrintFlyTargetName(); break; @@ -1598,20 +1593,20 @@ static void VBlankCB_FlyRegionMap(void) static void CB2_FlyRegionMap(void) { - ewram0.unk0(); + ewram0_3.unk0(); AnimateSprites(); BuildOamBuffer(); } static void sub_80FC244(void (*func)(void)) { - ewram0.unk0 = func; - ewram0.unk4 = 0; + ewram0_3.unk0 = func; + ewram0_3.unk4 = 0; } static void PrintFlyTargetName(void) { - if (ewram0.regionMap.unk16 == 2 || ewram0.regionMap.unk16 == 4) + if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4) { u16 i = 0; int zero; @@ -1620,13 +1615,13 @@ static void PrintFlyTargetName(void) { const struct UnknownStruct4 *r4 = &sUnknown_083E79C0[i]; - if (ewram0.regionMap.mapSecId == r4->mapSecId) + if (ewram0_3.regionMap.mapSecId == r4->mapSecId) { if (FlagGet(r4->flag)) { MenuDrawTextWindow(16, 14, 29, 19); - MenuPrint(ewram0.regionMap.mapSecName, 17, 15); - MenuPrint_RightAligned(r4->unk0[ewram0.regionMap.everGrandeCityArea], 29, 17); + MenuPrint(ewram0_3.regionMap.mapSecName, 17, 15); + MenuPrint_RightAligned(r4->unk0[ewram0_3.regionMap.everGrandeCityArea], 29, 17); return; } break; @@ -1637,7 +1632,7 @@ static void PrintFlyTargetName(void) if (zero == 0) { MenuDrawTextWindow(16, 16, 29, 19); - MenuPrint(ewram0.regionMap.mapSecName, 17, 17); + MenuPrint(ewram0_3.regionMap.mapSecName, 17, 17); MenuZeroFillWindowRect(16, 14, 29, 15); } } @@ -1738,7 +1733,7 @@ static void CreateSpecialAreaFlyTargetIcons(void) static void SpriteCB_FlyTargetIcons(struct Sprite *sprite) { // Blink if our mapSecId is the one selected on the map - if (ewram0.regionMap.mapSecId == sprite->data0) + if (ewram0_3.regionMap.mapSecId == sprite->data0) { // Toggle visibility every 16 frames sprite->data1++; @@ -1757,11 +1752,11 @@ static void SpriteCB_FlyTargetIcons(struct Sprite *sprite) static void sub_80FC5B4(void) { - switch (ewram0.unk4) + switch (ewram0_3.unk4) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - ewram0.unk4++; + ewram0_3.unk4++; break; case 1: if (UpdatePaletteFade() != 0) @@ -1773,7 +1768,7 @@ static void sub_80FC5B4(void) static void sub_80FC600(void) { - if (ewram0.unk4 == 0) + if (ewram0_3.unk4 == 0) { switch (sub_80FAB60()) { @@ -1785,7 +1780,7 @@ static void sub_80FC600(void) PrintFlyTargetName(); break; case INPUT_EVENT_A_BUTTON: - if (ewram0.regionMap.unk16 == 2 || ewram0.regionMap.unk16 == 4) + if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4) { m4aSongNumStart(SE_SELECT); ewramA6E = 1; @@ -1803,11 +1798,11 @@ static void sub_80FC600(void) static void sub_80FC69C(void) { - switch (ewram0.unk4) + switch (ewram0_3.unk4) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - ewram0.unk4++; + ewram0_3.unk4++; break; case 1: if (UpdatePaletteFade() != 0) @@ -1815,7 +1810,7 @@ static void sub_80FC69C(void) FreeRegionMapIconResources(); if (ewramA6E != 0) { - switch (ewram0.regionMap.mapSecId) + switch (ewram0_3.regionMap.mapSecId) { case MAPSEC_SOUTHERN_ISLAND: sub_8053538(22); @@ -1827,13 +1822,13 @@ static void sub_80FC69C(void) sub_8053538((gSaveBlock2.playerGender == MALE) ? 12 : 13); break; case MAPSEC_EVER_GRANDE_CITY: - sub_8053538((FlagGet(0x854) && ewram0.regionMap.everGrandeCityArea == 0) ? 20 : 11); + sub_8053538((FlagGet(0x854) && ewram0_3.regionMap.everGrandeCityArea == 0) ? 20 : 11); break; default: - if (sUnknown_083E7920[ewram0.regionMap.mapSecId][2] != 0) - sub_8053538(sUnknown_083E7920[ewram0.regionMap.mapSecId][2]); + if (sUnknown_083E7920[ewram0_3.regionMap.mapSecId][2] != 0) + sub_8053538(sUnknown_083E7920[ewram0_3.regionMap.mapSecId][2]); else - warp1_set_2(sUnknown_083E7920[ewram0.regionMap.mapSecId][0], sUnknown_083E7920[ewram0.regionMap.mapSecId][1], -1); + warp1_set_2(sUnknown_083E7920[ewram0_3.regionMap.mapSecId][0], sUnknown_083E7920[ewram0_3.regionMap.mapSecId][1], -1); break; } sub_80865BC(); diff --git a/src/field/shop.c b/src/field/shop.c index 375205935..67e9b006e 100644 --- a/src/field/shop.c +++ b/src/field/shop.c @@ -26,13 +26,10 @@ #include "overworld.h" #include "decoration_inventory.h" #include "field_camera.h" - -#define ewram18000 ((u16 *)(ewram + 0x18000)) -#define ewram18300 ((u16 *)(ewram + 0x18300)) +#include "ewram.h" extern bool8 sub_80A52C4(u8, u8); -extern u8 ewram[]; extern u8 gBuyMenuFrame_Gfx[]; extern u16 gBuyMenuFrame_Tilemap[]; extern u16 gMenuMoneyPal[16]; @@ -54,7 +51,7 @@ static struct MartInfo gMartInfo; // ewram EWRAM_DATA u32 gMartTotalCost = 0; -EWRAM_DATA s16 gUnknown_020386A4[16][4] = {0}; // game freak barely uses 2d arrays wtf? +EWRAM_DATA s16 gUnknown_020386A4[16][4] = {0}; EWRAM_DATA struct ItemSlot gUnknown_02038724[3] = {0}; // tv.c uses this, so it cant be static EWRAM_DATA u8 gUnknown_02038730 = 0; EWRAM_DATA u8 gUnknown_02038731 = 0; diff --git a/src/field/tv.c b/src/field/tv.c index 87fc03065..a0287e7df 100644 --- a/src/field/tv.c +++ b/src/field/tv.c @@ -38,6 +38,7 @@ #include "string_util.h" #include "strings.h" #include "text.h" +#include "ewram.h" struct UnkTvStruct { @@ -95,9 +96,6 @@ extern u8 gBattleOutcome; extern u16 gLastUsedItem; -extern u8 ewram[]; -#define gUnknown_02007000 (*(ewramStruct_02007000 *)(ewram + 0x7000)) - static EWRAM_DATA u16 gUnknown_020387E0 = 0; static EWRAM_DATA u16 gUnknown_020387E2 = 0; static EWRAM_DATA u8 gUnknown_020387E4 = 0; diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c index c5dd119e3..13129bf7f 100644 --- a/src/pokemon/mail.c +++ b/src/pokemon/mail.c @@ -15,6 +15,7 @@ #include "task.h" #include "text.h" #include "unknown_task.h" +#include "ewram.h" struct UnkMailStruct { @@ -66,9 +67,6 @@ struct MailGraphics u16 color12; }; -extern u8 ewram[]; -#define ewram0 (*(struct Unk2000000 *)(ewram)) - extern struct MailGraphics gMailGraphicsTable[]; extern u16 gUnknown_083E562C[][2]; @@ -90,61 +88,61 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) u16 mailDesign; u16 buffer[2]; - ewram0.varFF = GAME_LANGUAGE; - ewram0.var100 = 1; - ewram0.var104 = (MainCallback)EasyChat_GetWordText; - ewram0.var108 = (MainCallback)ConvertEasyChatWordsToString; + ewram0_4.varFF = GAME_LANGUAGE; + ewram0_4.var100 = 1; + ewram0_4.var104 = (MainCallback)EasyChat_GetWordText; + ewram0_4.var108 = (MainCallback)ConvertEasyChatWordsToString; mailDesign = arg0->itemId - ITEM_ORANGE_MAIL; if (mailDesign <= 11) { - ewram0.varFA = arg0->itemId - ITEM_ORANGE_MAIL; + ewram0_4.varFA = arg0->itemId - ITEM_ORANGE_MAIL; } else { - ewram0.varFA = 0; + ewram0_4.varFA = 0; arg2 = FALSE; } - switch (ewram0.var100) + switch (ewram0_4.var100) { case 0: default: - ewram0.var10C = &gUnknown_083E5730[ewram0.varFA]; + ewram0_4.var10C = &gUnknown_083E5730[ewram0_4.varFA]; break; case 1: - ewram0.var10C = &gUnknown_083E57A4[ewram0.varFA]; + ewram0_4.var10C = &gUnknown_083E57A4[ewram0_4.varFA]; break; } if (((MailSpeciesToSpecies(arg0->species, buffer) << 16) + 0xFFFF0000) <= (410 << 16)) { - switch (ewram0.varFA) + switch (ewram0_4.varFA) { case 6: - ewram0.varFB = 1; + ewram0_4.varFB = 1; break; case 9: - ewram0.varFB = 2; + ewram0_4.varFB = 2; break; default: - ewram0.varFB = 0; + ewram0_4.varFB = 0; break; } } else { - ewram0.varFB = 0; + ewram0_4.varFB = 0; } - ewram0.varF4 = arg0; - ewram0.varEC = arg1; - ewram0.varF8 = arg2; + ewram0_4.varF4 = arg0; + ewram0_4.varEC = arg1; + ewram0_4.varF8 = arg2; SetMainCallback2(sub_80F8D50); } @@ -214,31 +212,31 @@ static u8 sub_80F8A28(void) RETURN_UP_STATE; case 11: - LoadPalette(gMailGraphicsTable[ewram0.varFA].palette, 0, 16 * 2); + LoadPalette(gMailGraphicsTable[ewram0_4.varFA].palette, 0, 16 * 2); RETURN_UP_STATE; case 12: - LZ77UnCompVram(gMailGraphicsTable[ewram0.varFA].tileMap, (void *)(VRAM + 0x4000)); + LZ77UnCompVram(gMailGraphicsTable[ewram0_4.varFA].tileMap, (void *)(VRAM + 0x4000)); RETURN_UP_STATE; case 13: - LZ77UnCompVram(gMailGraphicsTable[ewram0.varFA].tiles, (void *)(VRAM)); + LZ77UnCompVram(gMailGraphicsTable[ewram0_4.varFA].tiles, (void *)(VRAM)); - gPlttBufferUnfaded[241] = gMailGraphicsTable[ewram0.varFA].color10; - gPlttBufferUnfaded[248] = gMailGraphicsTable[ewram0.varFA].color12; + gPlttBufferUnfaded[241] = gMailGraphicsTable[ewram0_4.varFA].color10; + gPlttBufferUnfaded[248] = gMailGraphicsTable[ewram0_4.varFA].color12; gPlttBufferUnfaded[10] = gUnknown_083E562C[gSaveBlock2.playerGender][0]; gPlttBufferUnfaded[11] = gUnknown_083E562C[gSaveBlock2.playerGender][1]; RETURN_UP_STATE; case 14: - if (ewram0.varF8 != 0) + if (ewram0_4.varF8 != 0) { sub_80F8DA0(); } RETURN_UP_STATE; case 15: - if (ewram0.varF8 != 0) + if (ewram0_4.varF8 != 0) { sub_80F8E80(); } @@ -251,18 +249,18 @@ static u8 sub_80F8A28(void) { u16 local1; - local1 = sub_809D4A8(ewram0.varF4->species); + local1 = sub_809D4A8(ewram0_4.varF4->species); - switch (ewram0.varFB) + switch (ewram0_4.varFB) { case 1: sub_809D580(local1); - ewram0.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 96, 128, 0); + ewram0_4.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 96, 128, 0); break; case 2: sub_809D580(local1); - ewram0.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 40, 128, 0); + ewram0_4.varFC = sub_809D3A4(local1, SpriteCallbackDummy, 40, 128, 0); break; } RETURN_UP_STATE; @@ -283,7 +281,7 @@ static u8 sub_80F8A28(void) REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON; BeginNormalPaletteFade(-1, 0, 16, 0, 0); gPaletteFade.bufferTransferDisabled = 0; - ewram0.varF0 = sub_80F8F58; + ewram0_4.varF0 = sub_80F8F58; return TRUE; default: @@ -325,24 +323,24 @@ static void sub_80F8DA0(void) u8 *ptr; r6 = 0; - for (i = 0; i < ewram0.var10C->var0; i++) + for (i = 0; i < ewram0_4.var10C->var0; i++) { - ConvertEasyChatWordsToString(ewram0.words[i], &ewram0.varF4->words[r6], ewram0.var10C->var4[i].unk_0_2, 1); - r6 += ewram0.var10C->var4[i].unk_0_2; + ConvertEasyChatWordsToString(ewram0_4.words[i], &ewram0_4.varF4->words[r6], ewram0_4.var10C->var4[i].unk_0_2, 1); + r6 += ewram0_4.var10C->var4[i].unk_0_2; } - ptr = ewram0.varD8; - if (ewram0.var100 == 0) + ptr = ewram0_4.varD8; + if (ewram0_4.var100 == 0) { - ptr = sub_80F8D7C(ptr, ewram0.varF4->playerName); + ptr = sub_80F8D7C(ptr, ewram0_4.varF4->playerName); StringCopy(ptr, gOtherText_From); - ewram0.varF9 = ewram0.var10C->var2 - StringLength(ewram0.varD8); + ewram0_4.varF9 = ewram0_4.var10C->var2 - StringLength(ewram0_4.varD8); } else { ptr = StringCopy(ptr, gOtherText_From); - sub_80F8D7C(ptr, ewram0.varF4->playerName); - ewram0.varF9 = ewram0.var10C->var2; + sub_80F8D7C(ptr, ewram0_4.varF4->playerName); + ewram0_4.varF9 = ewram0_4.var10C->var2; } } @@ -352,25 +350,25 @@ static void sub_80F8E80(void) u8 x; u8 y = 0; - for (pos = 0; pos < ewram0.var10C->var0; pos++) + for (pos = 0; pos < ewram0_4.var10C->var0; pos++) { - if (ewram0.words[pos][0] == 0xFF) + if (ewram0_4.words[pos][0] == 0xFF) { continue; } - if (ewram0.words[pos][0] == 0x00) + if (ewram0_4.words[pos][0] == 0x00) { continue; } - x = ewram0.var10C->var4[pos].unk_0_4; - y += ewram0.var10C->var4[pos].unk_0_0; - MenuPrint(ewram0.words[pos], ewram0.var10C->var3_4 + x, ewram0.var10C->var3_0 + y); + x = ewram0_4.var10C->var4[pos].unk_0_4; + y += ewram0_4.var10C->var4[pos].unk_0_0; + MenuPrint(ewram0_4.words[pos], ewram0_4.var10C->var3_4 + x, ewram0_4.var10C->var3_0 + y); y += 2; } - MenuPrint(ewram0.varD8, ewram0.varF9, ewram0.var10C->var1); + MenuPrint(ewram0_4.varD8, ewram0_4.varF9, ewram0_4.var10C->var1); } static void sub_80F8F18(void) @@ -382,13 +380,13 @@ static void sub_80F8F18(void) static void sub_80F8F2C(void) { - if (ewram0.varFB != 0) + if (ewram0_4.varFB != 0) { AnimateSprites(); BuildOamBuffer(); } - ewram0.varF0(); + ewram0_4.varF0(); } static void sub_80F8F58(void) @@ -398,7 +396,7 @@ static void sub_80F8F58(void) local0 = UpdatePaletteFade(); if (local0 == 0) { - ewram0.varF0 = sub_80F8F78; + ewram0_4.varF0 = sub_80F8F78; } } @@ -407,7 +405,7 @@ static void sub_80F8F78(void) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); - ewram0.varF0 = sub_80F8FB4; + ewram0_4.varF0 = sub_80F8FB4; } } @@ -420,18 +418,18 @@ static void sub_80F8FB4(void) return; } - SetMainCallback2(ewram0.varEC); - switch (ewram0.varFB) + SetMainCallback2(ewram0_4.varEC); + switch (ewram0_4.varFB) { case 2: case 1: - local1 = sub_809D4A8(ewram0.varF4->species); + local1 = sub_809D4A8(ewram0_4.varF4->species); sub_809D608(local1); - sub_809D510(&gSprites[ewram0.varFC]); + sub_809D510(&gSprites[ewram0_4.varFC]); break; } - memset(&ewram0, 0, 0x110); + memset(&ewram0_4, 0, 0x110); ResetPaletteFade(); } diff --git a/src/pokemon/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c index 5d6b215cd..b0b710803 100644 --- a/src/pokemon/pokeblock_feed.c +++ b/src/pokemon/pokeblock_feed.c @@ -19,8 +19,8 @@ #include "field_effect.h" #include "sound.h" #include "trig.h" +#include "ewram.h" -extern u8 ewram[]; extern struct MusicPlayerInfo gMPlay_BGM; extern u8 gPokeblockMonID; extern s16 gPokeblockGain; @@ -928,14 +928,11 @@ static bool8 sub_8148540(void) } } -#define ewram1D000 ((u16 *)(ewram + 0x1D000)) -#define ewram1D400 ((u16 *)(ewram + 0x1D400)) - static bool8 sub_81485CC(void) { u16 var = gUnknown_03005FA0[12] - gUnknown_03005FA0[4]; - gPokeblockFeedPokeSprite->pos2.x = ewram1D000[var]; + gPokeblockFeedPokeSprite->pos2.x = ewram1D000_2[var]; gPokeblockFeedPokeSprite->pos2.y = ewram1D400[var]; if (--gUnknown_03005FA0[4] == 0) @@ -960,7 +957,7 @@ static void sub_814862C(void) for (i = 0; i < r7 - 1; i++) { - s16* r3 = &ewram1D000[r8 + i]; + s16* r3 = &ewram1D000_2[r8 + i]; s16 r1 = *r3 - (var3); s16* r5 = &ewram1D400[r8 + i]; @@ -970,7 +967,7 @@ static void sub_814862C(void) *r5 -= r4 * (i + 1) / r7; } - ewram1D000[(r8 + r7) - 1] = var3; + ewram1D000_2[(r8 + r7) - 1] = var3; ewram1D400[(r8 + r7) - 1] = r9; } @@ -999,12 +996,12 @@ void sub_8148710(void) if (!var_24) { - ewram1D000[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8; + ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] + r5 / 256) + r8; ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] + r5 / 256) + r7; } else { - ewram1D000[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8; + ewram1D000_2[r4] = Sin(gUnknown_03005FA0[0], gUnknown_03005FA0[2] - r5 / 256) + r8; ewram1D400[r4] = Cos(gUnknown_03005FA0[0], gUnknown_03005FA0[3] - r5 / 256) + r7; } diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c index 5e97523e2..4a68b846a 100644 --- a/src/pokemon/pokemon_storage_system.c +++ b/src/pokemon/pokemon_storage_system.c @@ -2,6 +2,7 @@ #include "pokemon_storage_system.h" #include "menu.h" #include "string_util.h" +#include "ewram.h" struct StorageAction { u8 *text; @@ -10,15 +11,8 @@ struct StorageAction { extern const struct StorageAction gUnknown_083B6DF4[]; -extern const u8 unk_2000000[]; - EWRAM_DATA struct PokemonStorage gPokemonStorage = {0}; -#define gUnk2002694 (u8 *)(&unk_2000000[0x2694]) -#define gUnk20026A6 (u8 *)(&unk_2000000[0x26a6]) -#define gUnk20011fa (u8 *)(&unk_2000000[0x11fa]) -#define gUnk20026e4 (u8 *)(&unk_2000000[0x26e4]) - void sub_8098898(u8 index) { u8 *ptr; diff --git a/src/rom3.c b/src/rom3.c index 75dfdf2a2..0cd73c44a 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -16,11 +16,7 @@ #include "util.h" #include "battle_message.h" #include "data2.h" - -extern u8 unk_2000000[]; - -#define EWRAM_14000 ((u8 *)(unk_2000000 + 0x14000)) -#define EWRAM_15000 ((u8 *)(unk_2000000 + 0x15000)) +#include "ewram.h" extern u16 gBattleTypeFlags; extern u16 gBattleWeather; @@ -403,16 +399,16 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data) gTasks[gUnknown_020238C4].data[12] = gTasks[gUnknown_020238C4].data[14]; gTasks[gUnknown_020238C4].data[14] = 0; } - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14000] = a; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gActiveBank; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gBankAttacker; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gBankTarget; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14004] = r9; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14005] = (r9 & 0x0000FF00) >> 8; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gAbsentBankFlags; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14007] = gEffectBank; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14000] = a; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gActiveBank; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gBankAttacker; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gBankTarget; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14004] = r9; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14005] = (r9 & 0x0000FF00) >> 8; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gAbsentBankFlags; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14007] = gEffectBank; for (i = 0; i < size; i++) - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14008 + i] = data[i]; + ewram[gTasks[gUnknown_020238C4].data[14] + 0x14008 + i] = data[i]; gTasks[gUnknown_020238C4].data[14] = gTasks[gUnknown_020238C4].data[14] + r9 + 8; } @@ -452,8 +448,8 @@ void sub_800C1A8(u8 taskId) gTasks[taskId].data[12] = 0; gTasks[taskId].data[15] = 0; } - var = (unk_2000000[gTasks[taskId].data[15] + 0x14004] | (unk_2000000[gTasks[taskId].data[15] + 0x14005] << 8)) + 8; - SendBlock(bitmask_all_link_players_but_self(), &unk_2000000[gTasks[taskId].data[15] + 0x14000], var); + var = (ewram[gTasks[taskId].data[15] + 0x14004] | (ewram[gTasks[taskId].data[15] + 0x14005] << 8)) + 8; + SendBlock(bitmask_all_link_players_but_self(), &ewram[gTasks[taskId].data[15] + 0x14000], var); gTasks[taskId].data[11]++; } else @@ -466,7 +462,7 @@ void sub_800C1A8(u8 taskId) case 4: if (sub_8007ECC()) { - var = unk_2000000[gTasks[taskId].data[15] + 0x14004] | (unk_2000000[gTasks[taskId].data[15] + 0x14005] << 8); + var = ewram[gTasks[taskId].data[15] + 0x14004] | (ewram[gTasks[taskId].data[15] + 0x14005] << 8); gTasks[taskId].data[13] = 1; gTasks[taskId].data[15] = gTasks[taskId].data[15] + var + 8; gTasks[taskId].data[11] = 3; @@ -537,28 +533,28 @@ void sub_800C47C(u8 taskId) gTasks[taskId].data[12] = 0; gTasks[taskId].data[15] = 0; } - r4 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 1]; - r7 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 4] | (unk_2000000[0x15000 + gTasks[taskId].data[15] + 5] << 8); - switch (unk_2000000[0x15000 + gTasks[taskId].data[15] + 0]) + r4 = ewram[0x15000 + gTasks[taskId].data[15] + 1]; + r7 = ewram[0x15000 + gTasks[taskId].data[15] + 4] | (ewram[0x15000 + gTasks[taskId].data[15] + 5] << 8); + switch (ewram[0x15000 + gTasks[taskId].data[15] + 0]) { case 0: if (gBattleExecBuffer & gBitTable[r4]) return; - memcpy(gBattleBufferA[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + memcpy(gBattleBufferA[r4], &ewram[0x15000 + gTasks[taskId].data[15] + 8], r7); sub_80155A4(r4); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gBankAttacker = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; - gBankTarget = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; - gAbsentBankFlags = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6]; - gEffectBank = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7]; + gBankAttacker = ewram[0x15000 + gTasks[taskId].data[15] + 2]; + gBankTarget = ewram[0x15000 + gTasks[taskId].data[15] + 3]; + gAbsentBankFlags = ewram[0x15000 + gTasks[taskId].data[15] + 6]; + gEffectBank = ewram[0x15000 + gTasks[taskId].data[15] + 7]; } break; case 1: - memcpy(gBattleBufferB[r4], &unk_2000000[0x15000 + gTasks[taskId].data[15] + 8], r7); + memcpy(gBattleBufferB[r4], &ewram[0x15000 + gTasks[taskId].data[15] + 8], r7); break; case 2: - r2 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 8]; + r2 = ewram[0x15000 + gTasks[taskId].data[15] + 8]; gBattleExecBuffer &= ~(gBitTable[r4] << (r2 * 4)); break; } diff --git a/src/scene/credits.c b/src/scene/credits.c index cf10137c1..882dc557f 100644 --- a/src/scene/credits.c +++ b/src/scene/credits.c @@ -16,6 +16,7 @@ #include "starter_choose.h" #include "task.h" #include "trig.h" +#include "ewram.h" asm(".set REG_BASE, 0x4000000"); asm(".set OFFSET_REG_BLDCNT, 0x50"); @@ -162,14 +163,6 @@ struct CreditsEntry u8 *text; }; -extern u8 ewram[]; - -#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800)) -#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000)) -#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800)) -#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000)) -#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000)) - extern struct HallOfFame gHallOfFame; extern u8 unk_201e800[0x800]; extern u8 unk_201f000[0x800]; diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c index 24168dc56..73cb7e5e7 100644 --- a/src/scene/evolution_scene.c +++ b/src/scene/evolution_scene.c @@ -24,6 +24,7 @@ #include "pokemon_summary_screen.h" #include "menu_cursor.h" #include "strings2.h" +#include "ewram.h" struct EvoInfo { @@ -55,8 +56,6 @@ struct EvoInfo u8 unkA0C4; // 0x201E8C4 }; -#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800))) - void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); void sub_8024CEC(void); void sub_8023A80(void); diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index e303d5173..b9c84b9e7 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -272,7 +272,7 @@ void HandleMoveTutorPartyMenu(u8 var) void sub_80F9EEC(void) { sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0); - unk_2018000.unk8 = 3; + UNK_2018000_STRUCT.unk8 = 3; gFieldCallback = sub_8080990; } |