summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/battle.h18
-rw-r--r--include/battle_anim.h6
-rw-r--r--include/battle_party_menu.h3
-rw-r--r--include/decoration.h3
-rw-r--r--include/dewford_trend.h3
-rwxr-xr-xinclude/ewram.h124
-rw-r--r--include/party_menu.h6
-rw-r--r--include/player_pc.h1
-rw-r--r--include/script_pokemon_80F9.h2
-rw-r--r--src/battle/battle_2.c43
-rw-r--r--src/battle/battle_3.c9
-rw-r--r--src/battle/battle_4.c15
-rw-r--r--src/battle/battle_7.c3
-rw-r--r--src/battle/battle_anim.c1
-rw-r--r--src/battle/battle_interface.c7
-rw-r--r--src/battle/battle_party_menu.c4
-rw-r--r--src/battle/battle_transition.c3
-rw-r--r--src/battle/reshow_battle_screen.c4
-rw-r--r--src/debug/matsuda_debug_menu.c2
-rw-r--r--src/engine/link.c3
-rw-r--r--src/engine/naming_screen.c5
-rw-r--r--src/engine/record_mixing.c5
-rw-r--r--src/engine/trade.c3
-rw-r--r--src/engine/trainer_card.c230
-rw-r--r--src/field/battle_tower.c4
-rw-r--r--src/field/dewford_trend.c2
-rw-r--r--src/field/field_region_map.c4
-rw-r--r--src/field/field_tasks.c4
-rw-r--r--src/field/fldeff_softboiled.c7
-rw-r--r--src/field/item_menu.c8
-rw-r--r--src/field/party_menu.c6
-rw-r--r--src/field/pokeblock.c4
-rw-r--r--src/field/region_map.c51
-rw-r--r--src/field/shop.c7
-rw-r--r--src/field/tv.c4
-rw-r--r--src/pokemon/mail.c112
-rw-r--r--src/pokemon/pokeblock_feed.c15
-rw-r--r--src/pokemon/pokemon_storage_system.c8
-rw-r--r--src/rom3.c50
-rw-r--r--src/scene/credits.c9
-rw-r--r--src/scene/evolution_scene.c3
-rw-r--r--src/script_pokemon_util_80F99CC.c2
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;
}