summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-25 14:54:21 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-25 14:54:21 -0400
commitf8bdecb0e1ab13de90ea8f0190710982eb695186 (patch)
tree59932e27675829988248d0b36909ca1a26308c94
parentf029db52f59614e22a7a2d70eb3da46094bf47f1 (diff)
Simplify EWRAM for hall_of_fame.c
-rw-r--r--include/ewram.h33
-rw-r--r--src/credits.c4
-rw-r--r--src/hall_of_fame.c128
-rw-r--r--src/post_battle_event_funcs.c6
4 files changed, 76 insertions, 95 deletions
diff --git a/include/ewram.h b/include/ewram.h
index f19a882fe..e7fb25d71 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -8,6 +8,8 @@ extern u8 gSharedMem[];
// regions overlap others but have different definitions. Until some
// dupes can be determined to be the same, they will be deliberate
// seperated.
+#define gDecompressionBuffer (gSharedMem + 0x1E000)
+
#define eDroughtPaletteData (*(struct WeatherPaletteData *)gSharedMem)
#define gBattleStruct ((struct BattleStruct *) (gSharedMem + 0x0))
#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
@@ -17,7 +19,6 @@ extern u8 gSharedMem[];
#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0))
#define eMatsudaDebugVar (gSharedMem[0x0])
#define eBrendanSprite (gSharedMem + 0x0)
-#define ewram0_6 (u32)(&gSharedMem[0])
#define ewram0_7 (&gSharedMem[0])
#define eSaveSection (struct SaveSector *)(gSharedMem + 0x0)
#define ewram0arr ((u8 (*)[32])gSharedMem)
@@ -52,35 +53,16 @@ extern u8 gSharedMem[];
#define ePokedexCryScreen (*(struct PokedexCryScreen *)(gSharedMem + 0x1C000))
#define ePokedexCryScreen2 (*(struct PokedexCryMeterNeedle *)(gSharedMem + 0x1C800))
-#define ewram8000 (&gSharedMem[0x8000])
-#define ewram8800 (&gSharedMem[0x8800])
-#define ewram9000 (&gSharedMem[0x9000])
#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this.
-#define ewram9800 (&gSharedMem[0x9800])
-#define ewramA000 (&gSharedMem[0xA000])
-#define ewramA800 (&gSharedMem[0xA800])
-#define ewramB000 (&gSharedMem[0xB000])
-#define ewramB800 (&gSharedMem[0xB800])
#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000))
-#define ewramC000 (&gSharedMem[0xC000])
#define ewramC03C (&gSharedMem[0xC03C])
-#define ewramC800 (&gSharedMem[0xC800])
-#define ewramD000 (&gSharedMem[0xD000])
-#define ewramD800 (&gSharedMem[0xD800])
-#define ewramE000 (&gSharedMem[0xE000])
-#define ewramE800 (&gSharedMem[0xE800])
-#define ewramF000 (&gSharedMem[0xF000])
-#define ewramF800 (&gSharedMem[0xF800])
#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
#define ewram10000 (&gSharedMem[0x10000])
#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine
-#define ewram10800 (&gSharedMem[0x10800])
#define ewram11000 (&gSharedMem[0x11000])
-#define ewram11800 (&gSharedMem[0x11800])
#define ewram13000 (&gSharedMem[0x13000])
#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200])
#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
-#define ewram14000 (&gSharedMem[0x14000])
#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data])
#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data])
#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i])
@@ -88,7 +70,6 @@ extern u8 gSharedMem[];
#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800))
#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800)))
#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000))
-#define ewram15000 (&gSharedMem[0x15000])
#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
// Contest
@@ -203,12 +184,10 @@ extern u8 gSharedMem[];
#define ewram18a20 ((u16 *)(gSharedMem + 0x18A20))
#define ewram18a32 ((u16 *)(gSharedMem + 0x18A32))
#define ewram18a80 ((u16 *)(gSharedMem + 0x18a80))
-#define ewram19000 (&gSharedMem[0x19000])
#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
#define EWRAM_19348 ((u16 *)(gSharedMem + 0x19348))
#define eWRAM_19348Struct ((struct EWRAM_19348_Struct *)(gSharedMem + 0x19348))
-#define ewram19800 (&gSharedMem[0x19800])
#define ewram1A000 (&gSharedMem[0x1A000])
#define ewram1B000 (*(struct Unk201B000 *)(gSharedMem + 0x1B000))
#define ewram1B000_alt (*(struct Struct201B000 *)(gSharedMem + 0x1B000))
@@ -217,14 +196,16 @@ extern u8 gSharedMem[];
#define EWRAM_1C000 (*(struct Struct201C000 *)(gSharedMem + 0x1C000))
#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
-#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+
+// hall_of_fame.c
+#define eHofGfxPtr (gSharedMem + 0x8000)
+#define eHofMonPtr (struct HallofFameMons*)(&gSharedMem[0x1C000])
#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000))
+
#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
#define ewram1D400 ((u16 *)(gSharedMem + 0x1D400))
#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle)
-#define ewram1E000(i) (gSharedMem[0x1E000 + i])
-#define eHallOfFameMons2 (struct HallofFameMons*)(&gSharedMem[0x1E000])
#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
#define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000)
diff --git a/src/credits.c b/src/credits.c
index 24321dc61..3f1335cd8 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -174,7 +174,7 @@ extern s16 gUnknown_0203935C;
static EWRAM_DATA s16 gUnknown_02039320 = 0;
static EWRAM_DATA u16 gUnknown_02039322 = 0; // TASK A
-EWRAM_DATA u8 gUnknown_02039324 = 0;
+EWRAM_DATA u8 gHasHallOfFameRecords = 0;
static EWRAM_DATA u8 gUnknown_02039325 = 0;
extern u8 gReservedSpritePaletteCount;
@@ -433,7 +433,7 @@ static void sub_814395C(void)
UpdatePaletteFade();
if ((gMain.heldKeys & B_BUTTON)
- && gUnknown_02039324 != 0
+ && gHasHallOfFameRecords != 0
&& gTasks[gUnknown_02039322].func == task_a_8143B68)
{
vblank_8143948();
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 3b991c2ea..ca0022b39 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -23,9 +23,9 @@
#include "pc_screen_effect.h"
#include "ewram.h"
-static EWRAM_DATA u32 sUnknown_0203931C = 0;
+static EWRAM_DATA u32 sHofFadePalettes = 0;
-extern bool8 gUnknown_02039324; // has hall of fame records
+extern bool8 gHasHallOfFameRecords; // has hall of fame records
extern void (*gGameContinueCallback)(void);
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern u8 gReservedSpritePaletteCount;
@@ -54,7 +54,7 @@ struct HallofFameMons
static void sub_8141FF8(u8 taskID);
static void sub_81422E8(u8 taskID);
-static void sub_814217C(u8 taskID);
+static void Task_Hof_InitTeamSaveData(u8 taskID);
static void sub_8142274(u8 taskID);
static void sub_81422B8(u8 taskID);
static void sub_8142320(u8 taskID);
@@ -150,69 +150,69 @@ static const struct OamData sOamData_840B598 =
void* const gUnknown_0840B5A0[] =
{
- ewram8000,
- ewramA000,
- ewramC000,
- ewramE000,
- ewram10000,
- ewram14000,
- ewram18000_2
+ eHofGfxPtr + 0x0000,
+ eHofGfxPtr + 0x2000,
+ eHofGfxPtr + 0x4000,
+ eHofGfxPtr + 0x6000,
+ eHofGfxPtr + 0x8000,
+ eHofGfxPtr + 0xC000,
+ eHofGfxPtr + 0x10000
};
static const struct SpriteFrameImage sSpriteImageTable_840B5BC[] =
{
- {ewram8000, 0x800},
- {ewram8800, 0x800},
- {ewram9000, 0x800},
- {ewram9800, 0x800}
+ {eHofGfxPtr + 0x0000, 0x800},
+ {eHofGfxPtr + 0x800, 0x800},
+ {eHofGfxPtr + 0x1000, 0x800},
+ {eHofGfxPtr + 0x1800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5DC[] =
{
- {ewramA000, 0x800},
- {ewramA800, 0x800},
- {ewramB000, 0x800},
- {ewramB800, 0x800}
+ {eHofGfxPtr + 0x2000, 0x800},
+ {eHofGfxPtr + 0x2800, 0x800},
+ {eHofGfxPtr + 0x3000, 0x800},
+ {eHofGfxPtr + 0x3800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5FC[] =
{
- {ewramC000, 0x800},
- {ewramC800, 0x800},
- {ewramD000, 0x800},
- {ewramD800, 0x800}
+ {eHofGfxPtr + 0x4000, 0x800},
+ {eHofGfxPtr + 0x4800, 0x800},
+ {eHofGfxPtr + 0x5000, 0x800},
+ {eHofGfxPtr + 0x5800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B61C[] =
{
- {ewramE000, 0x800},
- {ewramE800, 0x800},
- {ewramF000, 0x800},
- {ewramF800, 0x800}
+ {eHofGfxPtr + 0x6000, 0x800},
+ {eHofGfxPtr + 0x6800, 0x800},
+ {eHofGfxPtr + 0x7000, 0x800},
+ {eHofGfxPtr + 0x7800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B63C[] =
{
- {ewram10000, 0x800},
- {ewram10800, 0x800},
- {ewram11000, 0x800},
- {ewram11800, 0x800}
+ {eHofGfxPtr + 0x8000, 0x800},
+ {eHofGfxPtr + 0x8800, 0x800},
+ {eHofGfxPtr + 0x9000, 0x800},
+ {eHofGfxPtr + 0x9800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B65C[] =
{
- {ewram14000, 0x800},
- {ewram14800, 0x800},
- {ewram15000, 0x800},
- { eUnzippedContestAudience_Gfx, 0x800}
+ {eHofGfxPtr + 0xC000, 0x800},
+ {eHofGfxPtr + 0xC800, 0x800},
+ {eHofGfxPtr + 0xD000, 0x800},
+ {eHofGfxPtr + 0xD800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B67C[] =
{
- {ewram18000_2, 0x800},
- {ewram18800, 0x800},
- {ewram19000, 0x800},
- {ewram19800, 0x800}
+ {eHofGfxPtr + 0x10000, 0x800},
+ {eHofGfxPtr + 0x10800, 0x800},
+ {eHofGfxPtr + 0x11000, 0x800},
+ {eHofGfxPtr + 0x11800, 0x800}
};
static const struct SpriteFrameImage* const sUnknown_0840B69C[7] =
@@ -480,7 +480,7 @@ static void sub_8141FC4(void)
static void sub_8141FF8(u8 taskID)
{
u16 i, j;
- struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* fameMons = eHofMonPtr;
gTasks[taskID].tPokesNumber = 0; // valid pokes
for (i = 0; i < 6; i++)
@@ -508,7 +508,7 @@ static void sub_8141FF8(u8 taskID)
fameMons->mons[i].nick[0] = EOS;
}
}
- sUnknown_0203931C = 0;
+ sHofFadePalettes = 0;
gTasks[taskID].tDisplayedPoke = 0;
gTasks[taskID].data[4] = 0xFF;
for (i = 0; i < 6; i++)
@@ -518,19 +518,19 @@ static void sub_8141FF8(u8 taskID)
if (gTasks[taskID].data[0])
gTasks[taskID].func = sub_81422E8;
else
- gTasks[taskID].func = sub_814217C;
+ gTasks[taskID].func = Task_Hof_InitTeamSaveData;
}
-static void sub_814217C(u8 taskID)
+static void Task_Hof_InitTeamSaveData(u8 taskID)
{
u16 i;
- struct HallofFameMons* fameMons = eHallOfFameMons1;
- struct HallofFameMons* lastSavedTeam = eHallOfFameMons2;
+ struct HallofFameMons* fameMons = eHofMonPtr;
+ struct HallofFameMons* lastSavedTeam = (struct HallofFameMons *)gDecompressionBuffer;
- if (gUnknown_02039324 == FALSE)
+ if (gHasHallOfFameRecords == FALSE)
{
for (i = 0; i < 0x2000; i++)
- ewram1E000(i) = 0;
+ gSharedMem[0x1E000 + i] = 0; // gDecompressionBuffer[i] = 0;
}
else
Save_LoadGameData(SAVE_HALL_OF_FAME);
@@ -542,12 +542,12 @@ static void sub_814217C(u8 taskID)
}
if (i >= HALL_OF_FAME_MAX_TEAMS)
{
- struct HallofFameMons* r5 = eHallOfFameMons2;
- struct HallofFameMons* r6 = eHallOfFameMons2;
- r5++;
- for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, r6++, r5++)
+ struct HallofFameMons *afterTeam = (struct HallofFameMons *)gDecompressionBuffer;
+ struct HallofFameMons *beforeTeam = (struct HallofFameMons *)gDecompressionBuffer;
+ afterTeam++;
+ for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, beforeTeam++, afterTeam++)
{
- *r6 = *r5;
+ *beforeTeam = *afterTeam;
}
lastSavedTeam--;
}
@@ -586,7 +586,7 @@ static void sub_8142320(u8 taskID)
u8 spriteID;
s16 xPos, yPos, field4, field6;
- struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* fameMons = eHofMonPtr;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -617,7 +617,7 @@ static void sub_8142320(u8 taskID)
static void sub_8142404(u8 taskID)
{
- struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* fameMons = eHofMonPtr;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -633,7 +633,7 @@ static void sub_8142404(u8 taskID)
static void sub_8142484(u8 taskID)
{
- struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* fameMons = eHofMonPtr;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -641,11 +641,11 @@ static void sub_8142484(u8 taskID)
gTasks[taskID].tFrameCount--;
else
{
- sUnknown_0203931C |= (0x10000 << gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].oam.paletteNum);
+ sHofFadePalettes |= (0x10000 << gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].oam.paletteNum);
if (gTasks[taskID].tDisplayedPoke <= 4 && currMon[1].species != 0) // there is another pokemon to display
{
gTasks[taskID].tDisplayedPoke++;
- BeginNormalPaletteFade(sUnknown_0203931C, 0, 12, 12, RGB(31, 26, 28));
+ BeginNormalPaletteFade(sHofFadePalettes, 0, 12, 12, RGB(31, 26, 28));
gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].oam.priority = 1;
gTasks[taskID].func = sub_8142320;
}
@@ -687,7 +687,7 @@ static void sub_8142618(u8 taskID)
if (gTasks[taskID].tMonSpriteID(i) != 0xFF)
gSprites[gTasks[taskID].tMonSpriteID(i)].oam.priority = 1;
}
- BeginNormalPaletteFade(sUnknown_0203931C, 0, 12, 12, RGB(31, 26, 28));
+ BeginNormalPaletteFade(sHofFadePalettes, 0, 12, 12, RGB(31, 26, 28));
Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskID].tFrameCount = 7;
gTasks[taskID].func = sub_81426F8;
@@ -836,7 +836,7 @@ static void sub_8142A28(u8 taskID)
u16 *vram1, *vram2;
u16 i;
- struct HallofFameMons* savedTeams = eHallOfFameMons2;
+ struct HallofFameMons* savedTeams = (struct HallofFameMons *)gDecompressionBuffer;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
{
if (savedTeams->mons[0].species == 0)
@@ -861,7 +861,7 @@ static void sub_8142A28(u8 taskID)
static void sub_8142B04(u8 taskID)
{
- struct HallofFameMons* savedTeams = eHallOfFameMons2;
+ struct HallofFameMons* savedTeams = (struct HallofFameMons *)gDecompressionBuffer;
struct HallofFameMon* currMon;
u16 i;
u8* stringPtr;
@@ -870,7 +870,7 @@ static void sub_8142B04(u8 taskID)
savedTeams++;
currMon = &savedTeams->mons[0];
- sUnknown_0203931C = 0;
+ sHofFadePalettes = 0;
gTasks[taskID].tCurrPokeID = 0;
gTasks[taskID].tPokesNo = 0;
@@ -926,7 +926,7 @@ static void sub_8142B04(u8 taskID)
static void sub_8142CC8(u8 taskID)
{
- struct HallofFameMons* savedTeams = eHallOfFameMons2;
+ struct HallofFameMons* savedTeams = (struct HallofFameMons *)gDecompressionBuffer;
struct HallofFameMon* currMon;
u16 i;
u16 currMonID;
@@ -943,8 +943,8 @@ static void sub_8142CC8(u8 taskID)
currMonID = gTasks[taskID].tMonSpriteID(gTasks[taskID].tCurrPokeID);
gSprites[currMonID].oam.priority = 0;
- sUnknown_0203931C = (0x10000 << gSprites[currMonID].oam.paletteNum) ^ 0xFFFF0000;
- BlendPalettesUnfaded(sUnknown_0203931C, 12, RGB(31, 26, 28));
+ sHofFadePalettes = (0x10000 << gSprites[currMonID].oam.paletteNum) ^ 0xFFFF0000;
+ BlendPalettesUnfaded(sHofFadePalettes, 12, RGB(31, 26, 28));
currMon = &savedTeams->mons[gTasks[taskID].tCurrPokeID];
if (currMon->species != SPECIES_EGG)
@@ -1224,7 +1224,7 @@ static void sub_81433E0(void)
*((u16*)(VRAM + 0x3000) + i) = 2;
}
- DmaFill16Large(3, 0, ewram0_6, 0x4000, 0x1000);
+ DmaFill16Large(3, 0, gSharedMem, 0x4000, 0x1000);
ResetPaletteFade();
LoadPalette(gHallOfFame_Pal, 0, 0x20);
}
diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c
index a30856c3f..7c8c37c9e 100644
--- a/src/post_battle_event_funcs.c
+++ b/src/post_battle_event_funcs.c
@@ -8,7 +8,7 @@
#include "overworld.h"
#include "pokemon.h"
-extern u8 gUnknown_02039324;
+extern u8 gHasHallOfFameRecords;
int GameClear(void)
{
@@ -19,11 +19,11 @@ int GameClear(void)
if (FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE)
{
- gUnknown_02039324 = 1;
+ gHasHallOfFameRecords = 1;
}
else
{
- gUnknown_02039324 = 0;
+ gHasHallOfFameRecords = 0;
FlagSet(FLAG_SYS_GAME_CLEAR);
}