summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2017-11-06 03:46:09 -0500
committerProjectRevoTPP <projectrevotpp@hotmail.com>2017-11-06 03:46:09 -0500
commit5711615c6067e49c3254f9568be55dc6ed3d5c2f (patch)
treeac0e55b1797d8b2a913bb500cb31e2fff67c8211
parent618240c62639bc4da73d400965b6df67b2c3619e (diff)
finish refactoring ewram defines into ewram.h.
-rwxr-xr-xinclude/ewram.h58
-rw-r--r--src/battle/battle_2.c8
-rw-r--r--src/battle/battle_4.c12
-rw-r--r--src/battle/battle_7.c12
-rw-r--r--src/battle/battle_party_menu.c2
-rw-r--r--src/debug/matsuda_debug_menu.c6
-rw-r--r--src/engine/main_menu.c7
-rw-r--r--src/engine/mystery_event_menu.c3
-rw-r--r--src/engine/save_failed_screen.c3
-rw-r--r--src/field/dewford_trend.c2
-rw-r--r--src/field/pokeblock.c18
-rw-r--r--src/pokemon/learn_move.c6
-rw-r--r--src/pokemon/pokeblock_feed.c32
-rw-r--r--src/pokemon/pokemon_1.c8
-rw-r--r--src/pokemon/pokemon_menu.c1
-rw-r--r--src/rom3.c46
-rw-r--r--src/scene/berry_blender.c22
-rw-r--r--src/scene/contest_painting.c9
-rw-r--r--src/scene/egg_hatch.c10
-rw-r--r--src/scene/hall_of_fame.c102
-rw-r--r--src/scene/intro.c1
21 files changed, 210 insertions, 158 deletions
diff --git a/include/ewram.h b/include/ewram.h
index fa405e59c..341f23432 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -3,6 +3,10 @@
extern u8 ewram[];
+// Note: we have duplicate ewram labels because its clear some memory
+// regions overlap others but have different definitions. Until some
+// dupes can be determined to be the same, they will be deliberate
+// seperated.
#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x0))
#define ewram0_2 (*(struct Struct2000000 *)(ewram + 0x0))
#define namingScreenData (*(struct NamingScreenData *)(ewram + 0x0))
@@ -10,8 +14,13 @@ extern u8 ewram[];
#define ewram0_3 (*(struct UnknownStruct3 *)(ewram + 0x0))
#define ewram0_4 (*(struct Unk2000000 *)(ewram + 0x0))
#define ewram0_5 (*(struct UnkStruct *)(ewram + 0x0))
+#define eMatsudaDebugVar (ewram[0x0])
+#define eBrendanSprite (ewram + 0x0)
+#define ewram0_6 (u32)(&ewram[0])
+#define ewram0_7 (&ewram[0])
#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520))
+#define eMaySprite (ewram + 0x800)
#define ewram888 (ewram + 0x888)
#define ewramBlankMapName (ewram + 0xA48)
#define ewramA6E (ewram[0xA6E])
@@ -26,13 +35,44 @@ extern u8 ewram[];
#define ARRAY_2007800 ((struct EasyChatPair *)(ewram + 0x7800))
#define ARRAY_2007900 ((struct EasyChatPair *)(ewram + 0x7900))
#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000))
+#define ewram8000 (&ewram[0x8000])
+#define ewram8800 (&ewram[0x8800])
+#define ewram9000 (&ewram[0x9000])
+#define ewram9800 (&ewram[0x9800])
+#define ewramA000 (&ewram[0xA000])
+#define ewramA800 (&ewram[0xA800])
+#define ewramB000 (&ewram[0xB000])
+#define ewramB800 (&ewram[0xB800])
#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000))
+#define ewramC000 (&ewram[0xC000])
#define ewramC03C (&ewram[0xC03C])
+#define ewramC800 (&ewram[0xC800])
+#define ewramD000 (&ewram[0xD000])
+#define ewramD800 (&ewram[0xD800])
+#define ewramE000 (&ewram[0xE000])
+#define ewramE800 (&ewram[0xE800])
+#define ewramF000 (&ewram[0xF000])
+#define ewramF800 (&ewram[0xF800])
#define ewram_2010000 (*(struct TradeEwramStruct *)(ewram + 0x10000))
+#define ewram10000 (&ewram[0x10000])
+#define ewram10800 (&ewram[0x10800])
+#define ewram11000 (&ewram[0x11000])
+#define ewram11800 (&ewram[0x11800])
+#define ewram13000 (&ewram[0x13000])
#define EWRAM_14000 ((u8 *)(ewram + 0x14000))
+#define ewram14000 (&ewram[0x14000])
+#define ewram14000arr(i, data) (ewram[0x14000 + i + data])
+#define ewram14004arr(i, data) (ewram[0x14004 + i + data])
+#define ewram14008arr(i, data) (ewram[0x14008 + data + i])
+#define ewram14800 (&ewram[0x14800])
#define EWRAM_14800 ((u16 *)(ewram + 0x14800))
#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800)))
#define EWRAM_15000 ((u8 *)(ewram + 0x15000))
+#define ewram15000 (&ewram[0x15000])
+#define ewram15000arr(i, data) (ewram[0x15000 + data + i])
+#define ewram15800 (&ewram[0x15800])
+#define ewram15DDE (ewram[0x15DDE])
+#define ewram15DDF (ewram[0x15DDF])
#define ewram16000 (ewram[0x16000])
#define ewram16001 (ewram[0x16001])
#define ewram16002 (ewram[0x16002])
@@ -56,7 +96,7 @@ extern u8 ewram[];
#define ewram16064arr(bank) (ewram[0x16064 + bank])
#define ewram16068arr(i) (ewram[0x16068 + i])
#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
-#define ewram1606Carr(i, a, mul) (ewram[0x1606C + i + a * mul])
+#define ewram1606Carr(i, a) (ewram[0x1606C + i + a * 3])
#define ewram16078 (ewram[0x16078])
#define ewram16084 (ewram[0x16084])
#define ewram16086 (ewram[0x16086])
@@ -101,6 +141,7 @@ extern u8 ewram[];
#define ewram160F0arr(i) (ewram[0x160F0 + i])
#define ewram160F8 (ewram[0x160F8])
#define ewram160F9 (ewram[0x160F9])
+#define eStatHp (ewram[0x160FA])
#define ewram160FB (ewram[0x160FB])
#define ewram16100 ((u8 *)(ewram + 0x16100))
#define ewram16100arr(i) (ewram[0x16100 + i])
@@ -110,10 +151,12 @@ extern u8 ewram[];
#define ewram16110 (ewram[0x16110])
#define ewram16111 (ewram[0x16111])
#define ewram16113 (ewram[0x16113])
+#define ewram16400 (ewram + 0x16400)
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
#define AI_ARRAY_160CC(i) (ewram[0x160CC + i * 2])
+#define eLearnMoveStruct (struct LearnMoveStruct *)(ewram + 0x17000)
#define ewram17002 (&ewram[0x17002])
#define ewram17100 (*(struct Struct2017100 *)(ewram + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110))
@@ -129,10 +172,16 @@ extern u8 ewram[];
#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000))
#define EWRAM_18000 ((u16 *)(ewram + 0x18000))
#define ewram18000 ((u16 *)(ewram + 0x18000))
+#define ewram18000_2 (&ewram[0x18000])
+#define eBerryBlenderData (struct BerryBlenderData*)(&ewram[0x18000])
+#define eEggHatchData (struct EggHatchData*)(&ewram[0x18000])
#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(ewram + 0x18000))
#define ewram18300 ((u16 *)(ewram + 0x18300))
+#define ewram18800 (&ewram[0x18800])
+#define ewram19000 (&ewram[0x19000])
#define EWRAM_19348 (*(u16 *)(ewram + 0x19348))
#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348))
+#define ewram19800 (&ewram[0x19800])
#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
#define EWRAM_1B000 ewram1B000_alt // FIXME
@@ -140,10 +189,13 @@ extern u8 ewram[];
#define EWRAM_1C000 (*(struct Struct201C000 *)(ewram + 0x1C000))
#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000)) // FIXME, names too similar
+#define eHallOfFameMons1 (struct HallofFameMons*)(&ewram[0x1C000])
#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000))
#define ewram1D000_2 ((u16 *)(ewram + 0x1D000))
#define ewram1D400 ((u16 *)(ewram + 0x1D400))
#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewram1E000(i) (ewram[0x1E000 + i])
+#define eHallOfFameMons2 (struct HallofFameMons*)(&ewram[0x1E000])
#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000))
#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800))
#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
@@ -151,8 +203,12 @@ extern u8 ewram[];
#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000))
#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800))
#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00))
+#define ewram1FFFC (ewram[0x1FFFC])
+#define ewram1FFFD (ewram[0x1FFFD])
#define gHelperState (ewram[0x1FFFE])
+#define ewram1FFFE (ewram[0x1FFFE])
#define gReshowState (ewram[0x1FFFF])
#define ewramBagSetupStep (ewram[0x1FFFF])
+#define ewram1FFFF (ewram[0x1FFFF])
#endif
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index 38c60dee1..8d27750bd 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -2290,7 +2290,7 @@ void sub_8012258(u8 a)
u8 r1;
for (i = 0; i < 3; i++)
- gUnknown_02038470[i] = ewram1606Carr(i, a, 3);
+ gUnknown_02038470[i] = ewram1606Carr(i, a);
r4 = pokemon_order_func(gBattlePartyID[a]);
r1 = pokemon_order_func(ewram16068arr(a));
sub_8094C98(r4, r1);
@@ -2298,15 +2298,15 @@ void sub_8012258(u8 a)
{
for (i = 0; i < 3; i++)
{
- ewram1606Carr(i, a, 3) = gUnknown_02038470[i];
- ewram1606Carr(i, (a ^ 2), 3) = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
+ ewram1606Carr(i, (a ^ 2)) = gUnknown_02038470[i];
}
}
else
{
for (i = 0; i < 3; i++)
{
- ewram1606Carr(i, a, 3) = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
}
}
}
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 5c028d86b..d7ca298c3 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -10768,12 +10768,12 @@ static void atk51_switch_handle_order(void)
ewram16068arr(gActiveBank) = gBattleBufferB[gActiveBank][1];
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- ewram1606Carr(0, gActiveBank, 3) &= 0xF;
- ewram1606Carr(0, gActiveBank, 3) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
- ewram1606Carr(1, gActiveBank, 3) = gBattleBufferB[gActiveBank][3];
- ewram1606Carr(0, (gActiveBank ^ 2), 3) &= (0xF0);
- ewram1606Carr(0, (gActiveBank ^ 2), 3) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
- ewram1606Carr(2, (gActiveBank ^ 2), 3) = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, gActiveBank) &= 0xF;
+ ewram1606Carr(0, gActiveBank) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
+ ewram1606Carr(1, gActiveBank) = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, (gActiveBank ^ 2)) &= (0xF0);
+ ewram1606Carr(0, (gActiveBank ^ 2)) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
+ ewram1606Carr(2, (gActiveBank ^ 2)) = gBattleBufferB[gActiveBank][3];
}
else
sub_8012258(gActiveBank);
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index 6c0a4489c..4ca1baa53 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -309,8 +309,8 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -361,8 +361,8 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -622,7 +622,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
{
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], ewram17840.unk0);
paletteOffset = 0x100 + a * 16;
- LoadPalette(ewram + 0x16400 + ewram17840.unk0 * 32, paletteOffset, 32);
+ LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32);
gBattleMonForms[a] = ewram17840.unk0;
if (ewram17800[a].transformedSpecies != 0)
{
@@ -694,7 +694,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
LoadPalette(ewram, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
- u16 *paletteSrc = (u16 *)(ewram + 0x16400);
+ u16 *paletteSrc = (u16 *)ewram16400; // TODO: avoid casting?
LZDecompressWram(lzPaletteData, paletteSrc);
LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32);
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index ab8b7a694..97e9dc0fc 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -204,7 +204,7 @@ void sub_8094B6C(u8 a, u8 b, u8 c)
if (IsLinkDoubleBattle())
{
- u8 *arr = ewram + 0x1606C + a * 3;
+ u8 *arr = &ewram1606Carr(0, a);
for (i = 0, j = 0; i < 3; i++)
{
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index 765ec1f26..ab96ada23 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -15,6 +15,7 @@
#include "task.h"
#include "text.h"
#include "unknown_task.h"
+#include "ewram.h"
extern u8 gUnknown_0203856C;
extern u8 gUnknown_0203857D[][64];
@@ -45,7 +46,6 @@ extern u8 gUnknown_083C9282[];
extern const u8 gUnknown_083C928E[][2];
extern u8 gUnknown_083C9296[];
extern u8 gUnknown_083C92A8[];
-extern u8 ewram[];
extern u8 gMatsudaDebugMenu_GoBackText[];
extern u8 gMatsudaDebugMenu_BattlePointsText[];
extern u8 gMatsudaDebugMenu_StartText[];
@@ -739,7 +739,7 @@ void sub_80AACC4(void)
{
SetDebugMonForContest();
if (!(gIsLinkContest & 1))
- sub_80AE82C(ewram[0]);
+ sub_80AE82C(eMatsudaDebugVar);
SetMainCallback2(sub_80AB47C);
}
}
@@ -748,7 +748,7 @@ void sub_80AAD08(struct Sprite *sprite, s8 var2)
{
if (var2 == 1)
{
- ewram[0] = sprite->data3;
+ eMatsudaDebugVar = sprite->data3;
SetMainCallback2(sub_80AACC4);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
}
diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c
index 3a343a0de..bfbf0dcd6 100644
--- a/src/engine/main_menu.c
+++ b/src/engine/main_menu.c
@@ -22,6 +22,7 @@
#include "text.h"
#include "title_screen.h"
#include "unknown_task.h"
+#include "ewram.h"
#define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24))
@@ -54,8 +55,6 @@ extern const u8 gUnknown_081E796C[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[];
-extern u8 ewram[];
-
//Menu layouts
enum
{
@@ -1419,14 +1418,14 @@ void AddBirchSpeechObjects(u8 taskId)
gTasks[taskId].tAzurillSpriteId = spriteId;
//Create Brendan sprite
- spriteId = CreateTrainerSprite(0, 120, 60, 0, ewram);
+ spriteId = CreateTrainerSprite(0, 120, 60, 0, eBrendanSprite);
gSprites[spriteId].callback = nullsub_34;
gSprites[spriteId].invisible = 1;
gSprites[spriteId].oam.priority = 0;
gTasks[taskId].tBrendanSpriteId = spriteId;
//Create May sprite
- spriteId = CreateTrainerSprite(1, 120, 60, 0, ewram + 0x800);
+ spriteId = CreateTrainerSprite(1, 120, 60, 0, eMaySprite);
gSprites[spriteId].callback = nullsub_34;
gSprites[spriteId].invisible = 1;
gSprites[spriteId].oam.priority = 0;
diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index d70414da4..38912be86 100644
--- a/src/engine/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
@@ -13,8 +13,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
-
-extern u8 ewram[];
+#include "ewram.h"
static EWRAM_DATA u8 gUnknown_02039338 = 0;
diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c
index d194c1625..06505c0c2 100644
--- a/src/engine/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
@@ -11,6 +11,7 @@
#include "strings.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
// In English 1.0, the text window is too small, causing text to overflow.
@@ -22,8 +23,6 @@
#define CLOCK_WIN_TOP (MSG_WIN_TOP - 4)
-extern u8 ewram[];
-
static EWRAM_DATA u16 gSaveFailedType = 0;
static EWRAM_DATA u16 gSaveFailedClockInfo[9] = {0};
diff --git a/src/field/dewford_trend.c b/src/field/dewford_trend.c
index 5f4d5abfe..102784066 100644
--- a/src/field/dewford_trend.c
+++ b/src/field/dewford_trend.c
@@ -7,8 +7,6 @@
#include "text.h"
#include "ewram.h"
-extern u8 ewram[];
-
extern u16 gScriptResult;
extern u16 gSpecialVar_0x8004;
diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c
index e5084da18..a4497295f 100644
--- a/src/field/pokeblock.c
+++ b/src/field/pokeblock.c
@@ -299,7 +299,7 @@ static bool8 sub_810B6C0(void)
case 10:
if (MultistepInitMenuWindowContinue())
{
- ewram[0x1ffff] = 0;
+ ewram1FFFF = 0;
gMain.state++;
}
break;
@@ -317,7 +317,7 @@ static bool8 sub_810B6C0(void)
gMain.state++;
break;
case 13:
- ewram[0x1fffe] = sub_810BA50(0x38, 0x40, 0);
+ ewram1FFFE = sub_810BA50(0x38, 0x40, 0);
gMain.state++;
break;
case 14:
@@ -369,27 +369,27 @@ void sub_810B96C(void)
static bool8 sub_810B998(void)
{
- switch (ewram[0x1ffff])
+ switch (ewram1FFFF)
{
case 0:
LZDecompressVram(gMenuPokeblock_Gfx, BG_CHAR_ADDR(2));
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 1:
LZDecompressWram(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 2:
LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xc0);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 3:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram[0x1ffff]++;
+ ewram1FFFF++;
break;
case 4:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram[0x1ffff] = 0;
+ ewram1FFFF = 0;
return TRUE;
}
return FALSE;
@@ -611,7 +611,7 @@ static void sub_810BDAC(bool8 flag)
static void sub_810BF38(bool8 flag)
{
PlaySE(SE_SELECT);
- gSprites[ewram[0x1fffe]].callback = sub_810C8D4;
+ gSprites[ewram1FFFE].callback = sub_810C8D4;
sub_810BDAC(flag);
}
diff --git a/src/pokemon/learn_move.c b/src/pokemon/learn_move.c
index 33252c66b..a47896ea5 100644
--- a/src/pokemon/learn_move.c
+++ b/src/pokemon/learn_move.c
@@ -16,8 +16,8 @@
#include "strings2.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
-extern u8 ewram[];
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u8 gTileBuffer[];
@@ -277,7 +277,7 @@ void CB2_InitLearnMove(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sLearnMoveStruct = (struct LearnMoveStruct *)(ewram + 0x17000);
+ sLearnMoveStruct = eLearnMoveStruct;
ClearLearnMoveVars();
sLearnMoveStruct->partyMon = gSpecialVar_0x8004;
sub_8133558();
@@ -312,7 +312,7 @@ void sub_81327A4(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sLearnMoveStruct = (struct LearnMoveStruct *)(ewram + 0x17000);
+ sLearnMoveStruct = eLearnMoveStruct;
sub_8133558();
sLearnMoveStruct->unk2C6 = gSpecialVar_0x8005;
SetVBlankCallback(VBlankCB_LearnMove);
diff --git a/src/pokemon/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c
index b0b710803..5f218a6f6 100644
--- a/src/pokemon/pokeblock_feed.c
+++ b/src/pokemon/pokeblock_feed.c
@@ -540,7 +540,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
case 6:
if (MultistepInitMenuWindowContinue())
{
- ewram[0x1FFFF] = 0;
+ ewram1FFFF = 0;
gMain.state++;
}
break;
@@ -551,11 +551,11 @@ static bool8 TransitionToPokeblockFeedScene(void)
}
break;
case 8:
- ewram[0x1FFFD] = sub_81480B4();
+ ewram1FFFD = sub_81480B4();
gMain.state++;
break;
case 9:
- ewram[0x1FFFE] = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
+ ewram1FFFE = PokeblockFeed_CreatePokeSprite(&gPlayerParty[gPokeblockMonID]);
gMain.state++;
break;
case 10:
@@ -611,13 +611,13 @@ static bool8 sub_8147B20(struct Pokemon* mon)
{
u16 species;
u32 PiD, TiD;
- switch (ewram[0x1FFFF])
+ switch (ewram1FFFF)
{
case 0:
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_081FAF4C[1], species, PiD);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 1:
{
@@ -629,37 +629,37 @@ static bool8 sub_8147B20(struct Pokemon* mon)
palette = GetMonSpritePalStructFromOtIdPersonality(species, TiD, PiD);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(palette->tag, 1);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
}
break;
case 2:
LoadCompressedObjectPic(&gUnknown_083F7F74);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 3:
LoadCompressedObjectPalette(&gUnknown_083F7F7C);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 4:
LoadCompressedObjectPic(&sUnknown_084121DC);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 5:
SetPokeblockFeedSpritePal(gScriptItemId);
LoadCompressedObjectPalette(&sPokeblockFeedSpritePal);
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 6:
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM));
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 7:
LZDecompressVram(gUnknown_08E782FC, (void*)(VRAM + 0xE800));
- ewram[0x1FFFF]++;
+ ewram1FFFF++;
break;
case 8:
LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- ewram[0x1FFFF] = 0;
+ ewram1FFFF = 0;
return TRUE;
}
return FALSE;
@@ -684,13 +684,13 @@ static void sub_8147CC8(u8 taskID)
sub_81481DC();
break;
case 255:
- sub_8148108(ewram[0x1FFFD], gTasks[taskID].data[1]);
+ sub_8148108(ewram1FFFD, gTasks[taskID].data[1]);
break;
case 269:
- ewram[0x1FFFC] = CreatePokeblockSprite();
+ ewram1FFFC = CreatePokeblockSprite();
break;
case 281:
- sub_8148044(ewram[0x1FFFE]);
+ sub_8148044(ewram1FFFE);
break;
case 297:
gTasks[taskID].func = Task_PrintAtePokeblockText;
diff --git a/src/pokemon/pokemon_1.c b/src/pokemon/pokemon_1.c
index 9a92f379d..750a9892a 100644
--- a/src/pokemon/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
@@ -9,6 +9,7 @@
#include "sprite.h"
#include "string_util.h"
#include "text.h"
+#include "ewram.h"
//Extracts the upper 16 bits of a 32-bit number
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
@@ -16,7 +17,6 @@
//Extracts the lower 16 bits of a 32-bit number
#define LOHALF(n) ((n) & 0xFFFF)
-extern u8 ewram[];
extern u16 gMoveToLearn;
static EWRAM_DATA u8 sLearningMoveTableID = 0;
@@ -436,9 +436,9 @@ void CalculateMonStats(struct Pokemon *mon)
newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10;
}
- ewram[0x160FA] = newMaxHP - oldMaxHP;
- if (ewram[0x160FA] == 0)
- ewram[0x160FA] = 1;
+ eStatHp = newMaxHP - oldMaxHP;
+ if (eStatHp == 0)
+ eStatHp = 1;
SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP);
diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index 93a3dd797..3a2c12db5 100644
--- a/src/pokemon/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
@@ -50,7 +50,6 @@ extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_0202E8F6;
extern u8 gUnknown_02038561;
extern u16 gUnknown_0202E8F8;
-extern u8 ewram[];
extern void (*gUnknown_03004AE4)(u8 taskID, u16 itemID, TaskFunc func);
extern TaskFunc gUnknown_03005CF0;
diff --git a/src/rom3.c b/src/rom3.c
index 0cd73c44a..ceb7785ac 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -399,16 +399,18 @@ void PrepareBufferDataTransferLink(u8 a, u16 size, u8 *data)
gTasks[gUnknown_020238C4].data[12] = gTasks[gUnknown_020238C4].data[14];
gTasks[gUnknown_020238C4].data[14] = 0;
}
- 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;
+
+ ewram14000arr(0, gTasks[gUnknown_020238C4].data[14]) = a;
+ ewram14000arr(1, gTasks[gUnknown_020238C4].data[14]) = gActiveBank;
+ ewram14000arr(2, gTasks[gUnknown_020238C4].data[14]) = gBankAttacker;
+ ewram14000arr(3, gTasks[gUnknown_020238C4].data[14]) = gBankTarget;
+ ewram14000arr(4, gTasks[gUnknown_020238C4].data[14]) = r9;
+ ewram14000arr(5, gTasks[gUnknown_020238C4].data[14]) = (r9 & 0x0000FF00) >> 8;
+ ewram14000arr(6, gTasks[gUnknown_020238C4].data[14]) = gAbsentBankFlags;
+ ewram14000arr(7, gTasks[gUnknown_020238C4].data[14]) = gEffectBank;
+
for (i = 0; i < size; i++)
- ewram[gTasks[gUnknown_020238C4].data[14] + 0x14008 + i] = data[i];
+ ewram14008arr(i, gTasks[gUnknown_020238C4].data[14]) = data[i];
gTasks[gUnknown_020238C4].data[14] = gTasks[gUnknown_020238C4].data[14] + r9 + 8;
}
@@ -448,8 +450,8 @@ void sub_800C1A8(u8 taskId)
gTasks[taskId].data[12] = 0;
gTasks[taskId].data[15] = 0;
}
- 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);
+ var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8)) + 8;
+ SendBlock(bitmask_all_link_players_but_self(), &ewram14000arr(0, gTasks[taskId].data[15]), var);
gTasks[taskId].data[11]++;
}
else
@@ -462,7 +464,7 @@ void sub_800C1A8(u8 taskId)
case 4:
if (sub_8007ECC())
{
- var = ewram[gTasks[taskId].data[15] + 0x14004] | (ewram[gTasks[taskId].data[15] + 0x14005] << 8);
+ var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8));
gTasks[taskId].data[13] = 1;
gTasks[taskId].data[15] = gTasks[taskId].data[15] + var + 8;
gTasks[taskId].data[11] = 3;
@@ -533,28 +535,28 @@ void sub_800C47C(u8 taskId)
gTasks[taskId].data[12] = 0;
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])
+ r4 = ewram15000arr(1, gTasks[taskId].data[15]);
+ r7 = ewram15000arr(4, gTasks[taskId].data[15]) | (ewram15000arr(5, gTasks[taskId].data[15]) << 8);
+ switch (ewram15000arr(0, gTasks[taskId].data[15]))
{
case 0:
if (gBattleExecBuffer & gBitTable[r4])
return;
- memcpy(gBattleBufferA[r4], &ewram[0x15000 + gTasks[taskId].data[15] + 8], r7);
+ memcpy(gBattleBufferA[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
sub_80155A4(r4);
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
{
- 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];
+ gBankAttacker = ewram15000arr(2, gTasks[taskId].data[15]);
+ gBankTarget = ewram15000arr(3, gTasks[taskId].data[15]);
+ gAbsentBankFlags = ewram15000arr(6, gTasks[taskId].data[15]);
+ gEffectBank = ewram15000arr(7, gTasks[taskId].data[15]);
}
break;
case 1:
- memcpy(gBattleBufferB[r4], &ewram[0x15000 + gTasks[taskId].data[15] + 8], r7);
+ memcpy(gBattleBufferB[r4], &ewram15000arr(8, gTasks[taskId].data[15]), r7);
break;
case 2:
- r2 = ewram[0x15000 + gTasks[taskId].data[15] + 8];
+ r2 = ewram15000arr(8, gTasks[taskId].data[15]);
gBattleExecBuffer &= ~(gBitTable[r4] << (r2 * 4));
break;
}
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 7ffcc5185..b5d36ad1e 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -20,6 +20,7 @@
#include "menu_cursor.h"
#include "trig.h"
#include "pokeblock.h"
+#include "ewram.h"
//needed to match Blender_ControlHitPitch
struct MusicPlayerInfo
@@ -207,7 +208,6 @@ extern void de_sub_8073110();
extern struct MusicPlayerInfo gMPlay_SE2;
extern struct MusicPlayerInfo gMPlay_BGM;
-extern u8 ewram[];
extern u16 gScriptItemId;
extern u8 gUnknown_020297ED;
extern u8 byte_3002A68;
@@ -828,7 +828,7 @@ static bool8 sub_804E2EC(void)
switch (gBerryBlenderData->field_1)
{
case 0:
- LZDecompressWram(gUnknown_08E6C100, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C100, ewram10000);
gBerryBlenderData->field_1++;
break;
case 1:
@@ -843,7 +843,7 @@ static bool8 sub_804E2EC(void)
break;
case 2:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM);
u32 size = 0x2000;
while (TRUE)
@@ -862,16 +862,16 @@ static bool8 sub_804E2EC(void)
}
break;
case 3:
- LZDecompressWram(gUnknown_08E6C920, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C920, ewram10000);
gBerryBlenderData->field_1++;
break;
case 4:
- LZDecompressWram(gUnknown_08E6D354, &ewram[0x13000]);
+ LZDecompressWram(gUnknown_08E6D354, ewram13000);
gBerryBlenderData->field_1++;
break;
case 5:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM + 0xE000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -880,7 +880,7 @@ static bool8 sub_804E2EC(void)
break;
case 6:
{
- void* offsetRead = &ewram[0x11000];
+ void* offsetRead = ewram11000;
void* offsetWrite = (void*)(VRAM + 0xF000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -890,7 +890,7 @@ static bool8 sub_804E2EC(void)
case 7:
{
u16 i;
- u16* palStore = (u16*)(&ewram[0x13000]);
+ u16* palStore = (u16*)(ewram13000);
void* offsetRead;
void* offsetWrite;
@@ -898,7 +898,7 @@ static bool8 sub_804E2EC(void)
{
*(palStore + i) |= 0x100;
}
- offsetRead = &ewram[0x13000];
+ offsetRead = ewram13000;
offsetWrite = (void*)(VRAM + 0x6000);
DmaCopy16(3, offsetRead, offsetWrite, 0x500);
LoadPalette(sBlenderOuterPal, 0x80, 0x20);
@@ -937,7 +937,7 @@ void sub_804E538(void)
{
u8* field6F; //this temp value is needed to match
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
field6F = &gBerryBlenderData->field_6F;
gBerryBlenderData->field_0 = 0;
@@ -1111,7 +1111,7 @@ void sub_804E990(void)
s32 i;
REG_DISPCNT = 0;
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
gBerryBlenderData->field_0 = 0;
gBerryBlenderData->field_134 = 0;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
diff --git a/src/scene/contest_painting.c b/src/scene/contest_painting.c
index 928b59760..9df2d56da 100644
--- a/src/scene/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -12,8 +12,7 @@
#include "strings.h"
#include "text.h"
#include "unknown_task.h"
-
-extern u8 ewram[];
+#include "ewram.h"
static u8 gUnknown_03000750;
static u16 gUnknown_03000752;
@@ -184,15 +183,15 @@ static void ShowContestPainting(void)
case 2:
SeedRng(gMain.vblankCounter1);
InitKeys();
- ContestPaintingInitWindow(ewram[0x15DDF]);
+ ContestPaintingInitWindow(ewram15DDF);
gMain.state++;
break;
case 3:
- sub_8107090(ewram[0x15DDE], ewram[0x15DDF]);
+ sub_8107090(ewram15DDE, ewram15DDF);
gMain.state++;
break;
case 4:
- ContestPaintingPrintCaption(ewram[0x15DDE], ewram[0x15DDF]);
+ ContestPaintingPrintCaption(ewram15DDE, ewram15DDF);
LoadPalette(gUnknown_083F6140, 0, 1 * 2);
DmaClear32(3, PLTT, 0x400);
BeginFastPaletteFade(2);
diff --git a/src/scene/egg_hatch.c b/src/scene/egg_hatch.c
index 032dcd284..d363e4bcd 100644
--- a/src/scene/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -20,8 +20,8 @@
#include "trig.h"
#include "rng.h"
#include "trade.h"
+#include "ewram.h"
-extern u8 ewram[];
extern struct SpriteTemplate gUnknown_02024E8C;
struct EggHatchData
@@ -416,7 +416,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,(u32)(&ewram[0]), gUnknown_081FAF4C[2 * a0 + 1], species, pid);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, ewram0_6, gUnknown_081FAF4C[2 * a0 + 1], species, pid);
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
@@ -460,7 +460,7 @@ static void CB2_EggHatch_0(void)
{
case 0:
REG_DISPCNT = 0;
- gEggHatchData = (struct EggHatchData*)(&ewram[0x18000]);
+ gEggHatchData = eEggHatchData;
gEggHatchData->eggPartyID = gSpecialVar_0x8004;
gEggHatchData->eggShardVelocityID = 0;
ResetTasks();
@@ -479,8 +479,8 @@ static void CB2_EggHatch_0(void)
break;
case 2:
LZDecompressVram(&gUnknown_08D00000, (void*)(VRAM));
- CpuSet(&gUnknown_08D00524, &ewram[0], 0x800);
- DmaCopy16(3, &ewram[0], (void*)(VRAM + 0x2800), 0x500);
+ CpuSet(&gUnknown_08D00524, ewram0_7, 0x800);
+ DmaCopy16(3, ewram0_7, (void*)(VRAM + 0x2800), 0x500);
LoadCompressedPalette(&gUnknown_08D004E0, 0, 0x20);
gMain.state++;
break;
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 6f7df576b..72bd051da 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -17,10 +17,10 @@
#include "decompress.h"
#include "rng.h"
#include "trig.h"
+#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
-extern u8 ewram[];
extern bool8 gUnknown_02039324; // has hall of fame records
extern void (*gGameContinueCallback)(void);
extern struct MusicPlayerInfo gMPlay_BGM;
@@ -156,69 +156,69 @@ static const struct OamData sOamData_840B598 =
void* const gUnknown_0840B5A0[] =
{
- &ewram[0x08000],
- &ewram[0x0A000],
- &ewram[0x0C000],
- &ewram[0x0E000],
- &ewram[0x10000],
- &ewram[0x14000],
- &ewram[0x18000]
+ ewram8000,
+ ewramA000,
+ ewramC000,
+ ewramE000,
+ ewram10000,
+ ewram14000,
+ ewram18000_2
};
static const struct SpriteFrameImage sSpriteImageTable_840B5BC[] =
{
- {&ewram[0x8000], 0x800},
- {&ewram[0x8800], 0x800},
- {&ewram[0x9000], 0x800},
- {&ewram[0x9800], 0x800}
+ {ewram8000, 0x800},
+ {ewram8800, 0x800},
+ {ewram9000, 0x800},
+ {ewram9800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5DC[] =
{
- {&ewram[0xA000], 0x800},
- {&ewram[0xA800], 0x800},
- {&ewram[0xB000], 0x800},
- {&ewram[0xB800], 0x800}
+ {ewramA000, 0x800},
+ {ewramA800, 0x800},
+ {ewramB000, 0x800},
+ {ewramB800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5FC[] =
{
- {&ewram[0xC000], 0x800},
- {&ewram[0xC800], 0x800},
- {&ewram[0xD000], 0x800},
- {&ewram[0xD800], 0x800}
+ {ewramC000, 0x800},
+ {ewramC800, 0x800},
+ {ewramD000, 0x800},
+ {ewramD800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B61C[] =
{
- {&ewram[0xE000], 0x800},
- {&ewram[0xE800], 0x800},
- {&ewram[0xF000], 0x800},
- {&ewram[0xF800], 0x800}
+ {ewramE000, 0x800},
+ {ewramE800, 0x800},
+ {ewramF000, 0x800},
+ {ewramF800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B63C[] =
{
- {&ewram[0x10000], 0x800},
- {&ewram[0x10800], 0x800},
- {&ewram[0x11000], 0x800},
- {&ewram[0x11800], 0x800}
+ {ewram10000, 0x800},
+ {ewram10800, 0x800},
+ {ewram11000, 0x800},
+ {ewram11800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B65C[] =
{
- {&ewram[0x14000], 0x800},
- {&ewram[0x14800], 0x800},
- {&ewram[0x15000], 0x800},
- {&ewram[0x15800], 0x800}
+ {ewram14000, 0x800},
+ {ewram14800, 0x800},
+ {ewram15000, 0x800},
+ {ewram15800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B67C[] =
{
- {&ewram[0x18000], 0x800},
- {&ewram[0x18800], 0x800},
- {&ewram[0x19000], 0x800},
- {&ewram[0x19800], 0x800}
+ {ewram18000_2, 0x800},
+ {ewram18800, 0x800},
+ {ewram19000, 0x800},
+ {ewram19800, 0x800}
};
static const struct SpriteFrameImage* const sUnknown_0840B69C[7] =
@@ -486,7 +486,7 @@ static void sub_8141FC4(void)
static void sub_8141FF8(u8 taskID)
{
u16 i, j;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
gTasks[taskID].tPokesNumber = 0; // valid pokes
for (i = 0; i < 6; i++)
@@ -530,13 +530,13 @@ static void sub_8141FF8(u8 taskID)
static void sub_814217C(u8 taskID)
{
u16 i;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
- struct HallofFameMons* lastSavedTeam = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* lastSavedTeam = eHallOfFameMons2;
if (gUnknown_02039324 == FALSE)
{
for (i = 0; i < 0x2000; i++)
- ewram[i + 0x1E000] = 0;
+ ewram1E000(i) = 0;
}
else
sub_8125EC8(3);
@@ -548,8 +548,8 @@ static void sub_814217C(u8 taskID)
}
if (i >= HALL_OF_FAME_MAX_TEAMS)
{
- struct HallofFameMons* r5 = (struct HallofFameMons*)(&ewram[0x1E000]);
- struct HallofFameMons* r6 = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* r5 = eHallOfFameMons2;
+ struct HallofFameMons* r6 = eHallOfFameMons2;
r5++;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, r6++, r5++)
{
@@ -592,7 +592,7 @@ static void sub_8142320(u8 taskID)
u8 spriteID;
s16 xPos, yPos, field4, field6;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -623,7 +623,7 @@ static void sub_8142320(u8 taskID)
static void sub_8142404(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -639,7 +639,7 @@ static void sub_8142404(u8 taskID)
static void sub_8142484(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -808,7 +808,7 @@ void sub_81428CC(void)
REG_BLDY = 0;
sub_81435B8();
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5CD4(fameMons);
@@ -847,7 +847,7 @@ static void sub_8142A28(u8 taskID)
u16 *vram1, *vram2;
u16 i;
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
{
if (savedTeams->mons[0].species == 0)
@@ -872,7 +872,7 @@ static void sub_8142A28(u8 taskID)
static void sub_8142B04(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u8* stringPtr;
@@ -937,7 +937,7 @@ static void sub_8142B04(u8 taskID)
static void sub_8142CC8(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u16 currMonID;
@@ -1025,7 +1025,7 @@ static void sub_8142F78(u8 taskID)
struct HallofFameMons* fameMons;
CpuSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x200);
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5E38(fameMons);
gTasks[taskID].func = sub_8142FCC;
@@ -1258,7 +1258,7 @@ static void sub_81433E0(void)
*((u16*)(VRAM + 0x3000) + i) = 2;
}
- offsetWrite4 = (u32)(&ewram[0]);
+ offsetWrite4 = ewram0_6;
size4 = 0x4000;
while (TRUE)
{
diff --git a/src/scene/intro.c b/src/scene/intro.c
index af9b565a3..04173b86a 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -1207,6 +1207,7 @@ static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
gTasks[taskId].func = Task_IntroLoadPart3Streaks;
}
+// TODO: use ewram define instead
extern u8 ewram[][32];
static void Task_IntroLoadPart3Streaks(u8 taskId)