summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/decompress.c3
-rw-r--r--src/engine/link.c9
-rw-r--r--src/engine/main.c1
-rw-r--r--src/engine/main_menu.c7
-rw-r--r--src/engine/mystery_event_menu.c7
-rw-r--r--src/engine/naming_screen.c5
-rw-r--r--src/engine/record_mixing.c41
-rw-r--r--src/engine/save.c28
-rw-r--r--src/engine/save_failed_screen.c7
-rw-r--r--src/engine/sprite.c11
-rw-r--r--src/engine/string_util.c34
-rw-r--r--src/engine/text.c230
-rw-r--r--src/engine/tileset_anim.c46
-rw-r--r--src/engine/trade.c104
-rw-r--r--src/engine/trainer_card.c244
15 files changed, 383 insertions, 394 deletions
diff --git a/src/engine/decompress.c b/src/engine/decompress.c
index 3e5993118..0893a8492 100644
--- a/src/engine/decompress.c
+++ b/src/engine/decompress.c
@@ -3,8 +3,9 @@
#include "data2.h"
#include "species.h"
#include "text.h"
+#include "ewram.h"
-#define WRAM 0x02000000
+#define WRAM ewram_addr // using gSharedMem doesn't match
void LZDecompressWram(const void *src, void *dest)
{
diff --git a/src/engine/link.c b/src/engine/link.c
index 850201ccb..002d397d2 100644
--- a/src/engine/link.c
+++ b/src/engine/link.c
@@ -15,6 +15,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
@@ -35,8 +36,6 @@ struct LinkTestBGInfo
u32 dummy_C;
};
-extern u8 unk_2000000[];
-extern u8 unk_2004000[];
extern u16 gBattleTypeFlags;
extern u16 word_3004858;
@@ -404,7 +403,7 @@ static void LinkTestProcessKeyInput(void)
if (gMain.newKeys & A_BUTTON)
gShouldAdvanceLinkState = 1;
if (gMain.heldKeys & B_BUTTON)
- InitBlockSend(unk_2004000, 0x2004);
+ InitBlockSend(ewram4000, 0x2004);
if (gMain.newKeys & L_BUTTON)
BeginNormalPaletteFade(-1, 0, 0x10, 0, 2);
if (gMain.newKeys & START_BUTTON)
@@ -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 *)gSharedMem;
u16 j;
for (j = 0; j < CMD_LENGTH - 1; j++)
buffer[(sBlockRecv[i].pos / 2) + j] = gRecvCmds[j + 1][i];
@@ -954,7 +953,7 @@ static u16 LinkTestCalcBlockChecksum(void *data, u16 size)
static void PrintHexDigit(u8 tileNum, u8 x, u8 y)
{
- u16 *tilemap = (u16 *)BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock);
+ u16 *tilemap = BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock);
tilemap[(32 * y) + x] = (gLinkTestBGInfo.paletteNum << 12) | (tileNum + 1);
}
diff --git a/src/engine/main.c b/src/engine/main.c
index d7c11b6c8..ea381cb31 100644
--- a/src/engine/main.c
+++ b/src/engine/main.c
@@ -70,6 +70,7 @@ bool8 gLinkVSyncDisabled;
u32 IntrMain_Buffer[0x200];
u8 gPcmDmaCounter;
+EWRAM_DATA u8 gSharedMem[0x20000] = {0};
EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL;
static void UpdateLinkAndCallCallbacks(void);
diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c
index e0af86f3d..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 unk_2000000[];
-
//Menu layouts
enum
{
@@ -1419,14 +1418,14 @@ void AddBirchSpeechObjects(u8 taskId)
gTasks[taskId].tAzurillSpriteId = spriteId;
//Create Brendan sprite
- spriteId = CreateTrainerSprite(0, 120, 60, 0, unk_2000000);
+ 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, unk_2000000 + 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 0e48dc177..a472eea3b 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 unk_2000000[];
+#include "ewram.h"
static EWRAM_DATA u8 gUnknown_02039338 = 0;
@@ -287,8 +286,8 @@ static void CB2_MysteryEventMenu(void)
case 11:
if (gReceivedRemoteLinkPlayers)
break;
- unkVal = RunMysteryEventScript(unk_2000000);
- CpuFill32(0, unk_2000000, 0x7D4);
+ unkVal = RunMysteryEventScript(gSharedMem);
+ CpuFill32(0, gSharedMem, 0x7D4);
if (!GetEventLoadMessage(gStringVar4, unkVal))
TrySavingData(NORMAL_SAVE);
gMain.state++;
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..3ae0c4ea3 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;
@@ -69,31 +66,31 @@ void RecordMixing_PrepareExchangePacket(void)
sub_80BC300();
sub_80C045C();
- memcpy(unk_2018000.secretBases, recordMixingSecretBases, sizeof(unk_2018000.secretBases));
- memcpy(unk_2018000.tvShows, recordMixingTvShows, sizeof(unk_2018000.tvShows));
- memcpy(unk_2018000.filler1004, gUnknown_083D0274, sizeof(unk_2008000.filler1004));
- memcpy(unk_2018000.filler1044, gUnknown_083D0278, sizeof(unk_2008000.filler1044));
- memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(unk_2018000.easyChatPairs));
+ memcpy(ewram_2018000.secretBases, recordMixingSecretBases, sizeof(ewram_2018000.secretBases));
+ memcpy(ewram_2018000.tvShows, recordMixingTvShows, sizeof(ewram_2018000.tvShows));
+ memcpy(ewram_2018000.filler1004, gUnknown_083D0274, sizeof(ewram_2008000.filler1004));
+ memcpy(ewram_2018000.filler1044, gUnknown_083D0278, sizeof(ewram_2008000.filler1044));
+ memcpy(ewram_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(ewram_2018000.easyChatPairs));
gUnknown_02038738.mail[0] = gSaveBlock1.daycareData.misc.mail[0];
gUnknown_02038738.mail[1] = gSaveBlock1.daycareData.misc.mail[1];
sub_8041324(gSaveBlock1.daycareData.mons, &gUnknown_02038738);
- memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixingDayCareMail));
- memcpy(&unk_2018000.battleTowerRecord, gBattleTowerPlayerRecord, sizeof(struct BattleTowerRecord));
+ memcpy(&ewram_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixingDayCareMail));
+ memcpy(&ewram_2018000.battleTowerRecord, gBattleTowerPlayerRecord, sizeof(struct BattleTowerRecord));
if (GetMultiplayerId() == 0)
- unk_2018000.filler11C8[0] = GetRecordMixingGift();
+ ewram_2018000.filler11C8[0] = GetRecordMixingGift();
}
void RecordMixing_ReceiveExchangePacket(u32 a)
{
- sub_80BD674(unk_2008000.secretBases, sizeof(struct PlayerRecords), a);
- sub_80BFD44((u8 *)unk_2008000.tvShows, sizeof(struct PlayerRecords), a);
- sub_80C0514(unk_2008000.filler1004, sizeof(struct PlayerRecords), a);
- sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a);
- sub_80FA4E4(unk_2008000.easyChatPairs, sizeof(struct PlayerRecords), a);
- sub_80B9C6C((u8 *)&unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows);
- sub_80B9B70(&unk_2008000.battleTowerRecord, sizeof(struct PlayerRecords), a);
- sub_80B9F3C(unk_2008000.filler11C8, a);
+ sub_80BD674(ewram_2008000.secretBases, sizeof(struct PlayerRecords), a);
+ sub_80BFD44((u8 *)ewram_2008000.tvShows, sizeof(struct PlayerRecords), a);
+ sub_80C0514(ewram_2008000.filler1004, sizeof(struct PlayerRecords), a);
+ sub_80B9B1C(ewram_2008000.filler1044, sizeof(struct PlayerRecords), a);
+ sub_80FA4E4(ewram_2008000.easyChatPairs, sizeof(struct PlayerRecords), a);
+ sub_80B9C6C((u8 *)&ewram_2008000.filler10AC, sizeof(struct PlayerRecords), a, ewram_2008000.tvShows);
+ sub_80B9B70(&ewram_2008000.battleTowerRecord, sizeof(struct PlayerRecords), a);
+ sub_80B9F3C(ewram_2008000.filler11C8, a);
}
#define tCounter data[0]
@@ -250,11 +247,11 @@ void sub_80B95F0(u8 taskId)
task->tState = 0;
task->data[5] = GetMultiplayerId_();
task->func = Task_RecordMixing_SendPacket;
- StorePtrInTaskData(&unk_2018000, &task->data[2]);
+ StorePtrInTaskData(&ewram_2018000, &task->data[2]);
subTaskId = CreateTask(Task_RecordMixing_CopyReceiveBuffer, 0x50);
task->data[10] = subTaskId;
gTasks[subTaskId].data[0] = taskId;
- StorePtrInTaskData((u8 *)&unk_2008000, &gTasks[subTaskId].data[5]);
+ StorePtrInTaskData((u8 *)&ewram_2008000, &gTasks[subTaskId].data[5]);
}
break;
case 5: // wait 60 frames
diff --git a/src/engine/save.c b/src/engine/save.c
index eae3f4470..d5de2e408 100644
--- a/src/engine/save.c
+++ b/src/engine/save.c
@@ -5,14 +5,13 @@
#include "load_save.h"
#include "overworld.h"
#include "save_failed_screen.h"
+#include "ewram.h"
#define GETVALIDSTATUSBITFIELD ((1 << ARRAY_COUNT(gSaveSectionLocations)) - 1)
#define GETCHUNKSIZE(chunk, n) ((sizeof(chunk) - (0xF80 * (n - 1))) >= 0xF80 ? 0xF80 : (sizeof(chunk) - (0xF80 * (n - 1))))
#define GETBLOCKOFFSET(n) (0xF80 * (n - 1))
#define TOTALNUMSECTORS ((ARRAY_COUNT(gSaveSectionLocations) * 2) + (ARRAY_COUNT(gHallOfFameSaveSectionLocations) * 2)) // there are 2 slots, so double each array count and get the sum.
-extern struct SaveSection unk_2000000; // slow save RAM
-
u16 gLastWrittenSector;
u32 gLastSaveCounter;
u16 gLastKnownGoodSector;
@@ -24,7 +23,6 @@ u16 gSaveFileStatus;
u32 gGameContinueCallback;
extern struct PokemonStorage gPokemonStorage;
-extern struct HallOfFame gHallOfFame;
static EWRAM_DATA u32 gLastSaveSectorStatus = 0; // used but in an unferenced function, so unused
@@ -48,8 +46,8 @@ const struct SaveSectionLocation gSaveSectionLocations[] =
const struct SaveSectionLocation gHallOfFameSaveSectionLocations[] =
{
- {((u8 *) &gHallOfFame) + GETBLOCKOFFSET(1), GETCHUNKSIZE(struct HallOfFame, 1)}, // gHallOfFame is not a proper sym, so the struct must be used.
- {((u8 *) &gHallOfFame) + GETBLOCKOFFSET(2), GETCHUNKSIZE(struct HallOfFame, 2)}
+ {((u8 *) eHallOfFame) + GETBLOCKOFFSET(1), GETCHUNKSIZE(struct HallOfFame, 1)}, // eHallOfFame is not a proper sym, so the struct must be used.
+ {((u8 *) eHallOfFame) + GETBLOCKOFFSET(2), GETCHUNKSIZE(struct HallOfFame, 2)}
};
const u8 gFlashSectors[] = { 0x1E, 0x1F };
@@ -95,7 +93,7 @@ u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location)
u32 retVal;
u16 i;
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
if (a1 != 0xFFFF) // for link
{
@@ -156,7 +154,7 @@ u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location)
u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &unk_2000000;
+ struct SaveSection *section = eSaveSection;
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)section)[i] = 0;
@@ -186,7 +184,7 @@ u8 TryWriteSector(u8 sector, u8 *data)
u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location) // location is unused
{
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
gLastWrittenSector++;
@@ -199,7 +197,7 @@ u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location
u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // only ever called once, and gSaveBlock2 is passed to this function. location is unused
{
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
gUnknown_03005EB4 = 0;
@@ -282,7 +280,7 @@ u8 sub_81255B8(u16 a1, const struct SaveSectionLocation *location)
for (i = 0; i < sizeof(struct UnkSaveSection); i++)
{
- if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i]))
+ if (ProgramFlashByte(sector, i, gFastSaveSection->data[i]))
{
status = 0xFF;
break;
@@ -369,7 +367,7 @@ u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location)
u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location)
{
u8 retVal;
- gFastSaveSection = &unk_2000000;
+ gFastSaveSection = eSaveSection;
if (a1 != 0xFFFF)
{
retVal = 0xFF;
@@ -402,7 +400,7 @@ u8 sub_81258BC(u16 a1, const struct SaveSectionLocation *location)
{
u16 j;
for (j = 0; j < location[id].size; j++)
- ((u8 *)location[id].data)[j] = gFastSaveSection->data[j];
+ location[id].data[j] = gFastSaveSection->data[j];
}
}
@@ -537,7 +535,7 @@ u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
u8 sub_8125B88(u8 a1, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &unk_2000000;
+ struct SaveSection *section = eSaveSection;
DoReadFlashWholeSection(a1, section);
if (section->security == UNKNOWN_CHECK_VALUE)
{
@@ -764,7 +762,7 @@ u8 unref_sub_8125FA0(void)
u8 unref_sub_8125FF0(u8 *data, u16 size)
{
u16 i;
- struct UnkSaveSection *section = (struct UnkSaveSection *)&unk_2000000;
+ struct UnkSaveSection *section = (struct UnkSaveSection *)eSaveSection;
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)section)[i] = 0;
@@ -774,7 +772,7 @@ u8 unref_sub_8125FF0(u8 *data, u16 size)
for (i = 0; i < size; i++)
section->data[i] = data[i];
- gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(gFlashSectors[0], (u8 *)section, sizeof(struct SaveSection));
+ gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(gFlashSectors[0], section, sizeof(struct SaveSection));
if (gLastSaveSectorStatus)
return 0xFF;
diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c
index b91e8b5bf..ba2d46546 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 unk_2000000[];
-
static EWRAM_DATA u16 gSaveFailedType = 0;
static EWRAM_DATA u16 gSaveFailedClockInfo[9] = {0};
@@ -267,10 +266,10 @@ static void VBlankCB_UpdateClockGraphics(void)
static bool8 VerifySectorWipe(u16 sector)
{
- u32 *ptr = (u32 *)unk_2000000;
+ u32 *ptr = (u32 *)&gSharedMem;
u16 i;
- ReadFlash(sector, 0, (u8 *)ptr, 4096);
+ ReadFlash(sector, 0, ptr, 4096);
for (i = 0; i < 0x400; i++, ptr++)
if (*ptr)
diff --git a/src/engine/sprite.c b/src/engine/sprite.c
index 5d394502a..34ca3802d 100644
--- a/src/engine/sprite.c
+++ b/src/engine/sprite.c
@@ -833,13 +833,13 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr
if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
{
gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data;
- gSpriteCopyRequests[gSpriteCopyRequestCount].dest = (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
+ gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size;
gSpriteCopyRequestCount++;
}
}
-void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size)
+void RequestSpriteCopy(const void *src, u8 *dest, u16 size)
{
if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
{
@@ -850,6 +850,7 @@ void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size)
}
}
+// these two functions are unused.
void CopyFromSprites(u8 *dest)
{
u32 i;
@@ -1479,7 +1480,7 @@ u16 LoadSpriteSheet(const struct SpriteSheet *sheet)
else
{
AllocSpriteTileRange(sheet->tag, (u16)tileStart, sheet->size / TILE_SIZE_4BPP);
- CpuCopy16(sheet->data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(sheet->data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
return (u16)tileStart;
}
}
@@ -1517,7 +1518,7 @@ void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- CpuCopy16(data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
}
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets)
@@ -1603,7 +1604,7 @@ void RequestSpriteSheetCopy(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- RequestSpriteCopy(data, (u8 *)OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
+ RequestSpriteCopy(data, OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
}
u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet)
diff --git a/src/engine/string_util.c b/src/engine/string_util.c
index 9686256a1..7316f533a 100644
--- a/src/engine/string_util.c
+++ b/src/engine/string_util.c
@@ -376,7 +376,7 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
{
u8 c = *src++;
u8 placeholderId;
- u8 *expandedString;
+ const u8 *expandedString;
u8 length;
switch (c)
@@ -432,45 +432,45 @@ u8 *StringBraille(u8 *dest, const u8 *src)
}
}
-static u8 *ExpandPlaceholder_UnknownStringVar(void)
+static const u8 *ExpandPlaceholder_UnknownStringVar(void)
{
return gUnknownStringVar;
}
-static u8 *ExpandPlaceholder_PlayerName(void)
+static const u8 *ExpandPlaceholder_PlayerName(void)
{
return gSaveBlock2.playerName;
}
-static u8 *ExpandPlaceholder_StringVar1(void)
+static const u8 *ExpandPlaceholder_StringVar1(void)
{
return gStringVar1;
}
-static u8 *ExpandPlaceholder_StringVar2(void)
+static const u8 *ExpandPlaceholder_StringVar2(void)
{
return gStringVar2;
}
-static u8 *ExpandPlaceholder_StringVar3(void)
+static const u8 *ExpandPlaceholder_StringVar3(void)
{
return gStringVar3;
}
-static u8 *ExpandPlaceholder_KunChan(void)
+static const u8 *ExpandPlaceholder_KunChan(void)
{
if (gSaveBlock2.playerGender == MALE)
- return (u8 *) gExpandedPlaceholder_Kun;
+ return gExpandedPlaceholder_Kun;
else
- return (u8 *) gExpandedPlaceholder_Chan;
+ return gExpandedPlaceholder_Chan;
}
-static u8 *ExpandPlaceholder_RivalName(void)
+static const u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2.playerGender == MALE)
- return (u8 *) gExpandedPlaceholder_May;
+ return gExpandedPlaceholder_May;
else
- return (u8 *) gExpandedPlaceholder_Brendan;
+ return gExpandedPlaceholder_Brendan;
}
#define VERSION_DEPENDENT_PLACEHOLDER_LIST \
@@ -484,19 +484,19 @@ static u8 *ExpandPlaceholder_RivalName(void)
#ifdef SAPPHIRE
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##s; }
+static const u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##s; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#else
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##r; }
+static const u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##r; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#endif
#undef X
-u8 *GetExpandedPlaceholder(u32 id)
+const u8 *GetExpandedPlaceholder(u32 id)
{
- typedef u8 *(*ExpandPlaceholderFunc)(void);
+ typedef const u8 *(*ExpandPlaceholderFunc)(void);
static const ExpandPlaceholderFunc funcs[] =
{
@@ -517,7 +517,7 @@ u8 *GetExpandedPlaceholder(u32 id)
};
if (id >= ARRAY_COUNT(funcs))
- return (u8 *) gExpandedPlaceholder_Empty;
+ return gExpandedPlaceholder_Empty;
else
return funcs[id]();
}
diff --git a/src/engine/text.c b/src/engine/text.c
index 87903608f..1d1d31383 100644
--- a/src/engine/text.c
+++ b/src/engine/text.c
@@ -396,6 +396,8 @@ extern const u32 gFont4LatinGlyphs[];
extern const u32 gFont3JapaneseGlyphs[];
extern const u32 gFont4JapaneseGlyphs[];
+// Getting rid of the u8 recasting will make the ROM no longer match due to
+// a const being required to pass the elements directly to the rodata structs.
static const struct Font sFonts[] =
{
// Japanese fonts
@@ -405,15 +407,15 @@ static const struct Font sFonts[] =
{ 4, (u8 *)gFont3JapaneseGlyphs, 64, 512 },
{ 1, (u8 *)gFont4JapaneseGlyphs, 32, 0 },
{ 2, (u8 *)gFont4JapaneseGlyphs, 32, 0 },
- { 3, (u8 *)sBrailleGlyphs, 8, 0 },
+ { 3, (u8 *)sBrailleGlyphs, 8, 0 },
// Latin
- { 0, (u8 *)sFont0LatinGlyphs, 16, 8 },
- { 1, (u8 *)sFont1LatinGlyphs, 8, 0 },
- { 2, (u8 *)sFont1LatinGlyphs, 8, 0 },
- { 0, (u8 *)gFont3LatinGlyphs, 64, 32 },
- { 1, (u8 *)gFont4LatinGlyphs, 32, 0 },
- { 2, (u8 *)gFont4LatinGlyphs, 32, 0 },
- { 3, (u8 *)sBrailleGlyphs, 8, 0 },
+ { 0, (u8 *)sFont0LatinGlyphs, 16, 8 },
+ { 1, (u8 *)sFont1LatinGlyphs, 8, 0 },
+ { 2, (u8 *)sFont1LatinGlyphs, 8, 0 },
+ { 0, (u8 *)gFont3LatinGlyphs, 64, 32 },
+ { 1, (u8 *)gFont4LatinGlyphs, 32, 0 },
+ { 2, (u8 *)gFont4LatinGlyphs, 32, 0 },
+ { 3, (u8 *)sBrailleGlyphs, 8, 0 },
};
static const u8 sTextSpeedDelays[] = { 6, 3, 1 }; // slow, mid, fast
@@ -492,8 +494,8 @@ const struct WindowConfig gWindowConfig_81E6C3C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6C58 =
@@ -513,8 +515,8 @@ const struct WindowConfig gWindowConfig_81E6C58 =
0, // tilemap top coordinate
26, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6C74 =
@@ -534,7 +536,7 @@ const struct WindowConfig gWindowConfig_81E6C74 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)OBJ_VRAM0, // tile data
+ OBJ_VRAM0, // tile data
NULL, // tilemap
};
@@ -555,8 +557,8 @@ const struct WindowConfig gWindowConfig_81E6C90 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6CAC =
@@ -597,8 +599,8 @@ const struct WindowConfig gWindowConfig_81E6CC8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6CE4 =
@@ -618,8 +620,8 @@ const struct WindowConfig gWindowConfig_81E6CE4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D00 =
@@ -639,8 +641,8 @@ const struct WindowConfig gWindowConfig_81E6D00 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D1C =
@@ -660,8 +662,8 @@ const struct WindowConfig gWindowConfig_81E6D1C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D38 =
@@ -702,8 +704,8 @@ const struct WindowConfig gWindowConfig_81E6D54 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D70 =
@@ -723,8 +725,8 @@ const struct WindowConfig gWindowConfig_81E6D70 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E6D8C =
@@ -744,8 +746,8 @@ const struct WindowConfig gWindowConfig_81E6D8C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E6DA8 =
@@ -765,8 +767,8 @@ const struct WindowConfig gWindowConfig_81E6DA8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(11), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(11), // tilemap
};
const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
@@ -786,8 +788,8 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
@@ -807,8 +809,8 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6DFC =
@@ -828,8 +830,8 @@ const struct WindowConfig gWindowConfig_81E6DFC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E18 =
@@ -849,8 +851,8 @@ const struct WindowConfig gWindowConfig_81E6E18 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E34 =
@@ -870,8 +872,8 @@ const struct WindowConfig gWindowConfig_81E6E34 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E50 =
@@ -891,8 +893,8 @@ const struct WindowConfig gWindowConfig_81E6E50 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E6C =
@@ -912,8 +914,8 @@ const struct WindowConfig gWindowConfig_81E6E6C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6E88 =
@@ -933,8 +935,8 @@ const struct WindowConfig gWindowConfig_81E6E88 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EA4 =
@@ -954,8 +956,8 @@ const struct WindowConfig gWindowConfig_81E6EA4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EC0 =
@@ -975,8 +977,8 @@ const struct WindowConfig gWindowConfig_81E6EC0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EDC =
@@ -996,8 +998,8 @@ const struct WindowConfig gWindowConfig_81E6EDC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6EF8 =
@@ -1017,8 +1019,8 @@ const struct WindowConfig gWindowConfig_81E6EF8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F14 =
@@ -1038,8 +1040,8 @@ const struct WindowConfig gWindowConfig_81E6F14 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F30 =
@@ -1059,8 +1061,8 @@ const struct WindowConfig gWindowConfig_81E6F30 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(29), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(29), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F4C =
@@ -1080,8 +1082,8 @@ const struct WindowConfig gWindowConfig_81E6F4C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F68 =
@@ -1101,8 +1103,8 @@ const struct WindowConfig gWindowConfig_81E6F68 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(13), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(13), // tilemap
};
const struct WindowConfig gWindowConfig_81E6F84 =
@@ -1122,8 +1124,8 @@ const struct WindowConfig gWindowConfig_81E6F84 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FA0 =
@@ -1143,8 +1145,8 @@ const struct WindowConfig gWindowConfig_81E6FA0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FBC =
@@ -1164,8 +1166,8 @@ const struct WindowConfig gWindowConfig_81E6FBC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FD8 =
@@ -1185,8 +1187,8 @@ const struct WindowConfig gWindowConfig_81E6FD8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E6FF4 =
@@ -1206,8 +1208,8 @@ const struct WindowConfig gWindowConfig_81E6FF4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(24), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(24), // tilemap
};
const struct WindowConfig gWindowConfig_81E7010 =
@@ -1227,8 +1229,8 @@ const struct WindowConfig gWindowConfig_81E7010 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E702C =
@@ -1248,8 +1250,8 @@ const struct WindowConfig gWindowConfig_81E702C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E7048 =
@@ -1269,8 +1271,8 @@ const struct WindowConfig gWindowConfig_81E7048 =
0, // tilemap top coordinate
16, // width
32, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E7064 =
@@ -1290,8 +1292,8 @@ const struct WindowConfig gWindowConfig_81E7064 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(14), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(14), // tilemap
};
const struct WindowConfig gWindowConfig_81E7080 =
@@ -1311,8 +1313,8 @@ const struct WindowConfig gWindowConfig_81E7080 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E709C =
@@ -1332,8 +1334,8 @@ const struct WindowConfig gWindowConfig_81E709C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E70B8 =
@@ -1353,8 +1355,8 @@ const struct WindowConfig gWindowConfig_81E70B8 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E70D4 =
@@ -1374,8 +1376,8 @@ const struct WindowConfig gWindowConfig_81E70D4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E70F0 =
@@ -1416,8 +1418,8 @@ const struct WindowConfig gWindowConfig_81E710C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7128 =
@@ -1437,8 +1439,8 @@ const struct WindowConfig gWindowConfig_81E7128 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7144 =
@@ -1458,8 +1460,8 @@ const struct WindowConfig gWindowConfig_81E7144 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7160 =
@@ -1479,8 +1481,8 @@ const struct WindowConfig gWindowConfig_81E7160 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(10), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(10), // tilemap
};
const struct WindowConfig gWindowConfig_81E717C =
@@ -1500,8 +1502,8 @@ const struct WindowConfig gWindowConfig_81E717C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(3), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(3), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7198 =
@@ -1521,8 +1523,8 @@ const struct WindowConfig gWindowConfig_81E7198 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E71B4 =
@@ -1542,8 +1544,8 @@ const struct WindowConfig gWindowConfig_81E71B4 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(15), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(15), // tilemap
};
const struct WindowConfig gWindowConfig_81E71D0 =
@@ -1563,8 +1565,8 @@ const struct WindowConfig gWindowConfig_81E71D0 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E71EC =
@@ -1584,8 +1586,8 @@ const struct WindowConfig gWindowConfig_81E71EC =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(1), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(1), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E7208 =
@@ -1605,8 +1607,8 @@ const struct WindowConfig gWindowConfig_81E7208 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(28), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(28), // tilemap
};
const struct WindowConfig gWindowConfig_81E7224 =
@@ -1626,8 +1628,8 @@ const struct WindowConfig gWindowConfig_81E7224 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(0), // tile data
- (u16 *)BG_SCREEN_ADDR(31), // tilemap
+ BG_CHAR_ADDR(0), // tile data
+ BG_SCREEN_ADDR(31), // tilemap
};
const struct WindowConfig gWindowConfig_81E7240 =
@@ -1647,8 +1649,8 @@ const struct WindowConfig gWindowConfig_81E7240 =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)BG_CHAR_ADDR(2), // tile data
- (u16 *)BG_SCREEN_ADDR(30), // tilemap
+ BG_CHAR_ADDR(2), // tile data
+ BG_SCREEN_ADDR(30), // tilemap
};
const struct WindowConfig gWindowConfig_81E725C =
@@ -1668,7 +1670,7 @@ const struct WindowConfig gWindowConfig_81E725C =
0, // tilemap top coordinate
30, // width
20, // height
- (u8 *)OBJ_VRAM0, // tile data
+ OBJ_VRAM0, // tile data
NULL, // tilemap
};
diff --git a/src/engine/tileset_anim.c b/src/engine/tileset_anim.c
index 34685381d..f892e5e9a 100644
--- a/src/engine/tileset_anim.c
+++ b/src/engine/tileset_anim.c
@@ -32,8 +32,8 @@ extern u8 *gTilesetAnimTable_BikeShop[];
struct Dma
{
- u8 *src;
- u8 *dest;
+ void *src;
+ void *dest;
u16 size;
};
@@ -95,7 +95,7 @@ static void ClearTilesetAnimDmas(void)
CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas));
}
-static void QueueTilesetAnimDma(u8 *src, u8 *dest, u16 size)
+static void QueueTilesetAnimDma(void *src, void *dest, u16 size)
{
if (gNumTilesetAnimDmas < 20)
{
@@ -217,28 +217,28 @@ static void sub_8073070(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1], (u8 *)(BG_VRAM + 0x3f80), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1], BG_TILE_ADDR(127), 0x80);
}
static void sub_8073098(u16 a1)
{
u8 v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1], (u8 *)(BG_VRAM + 0x3600), 0x3c0);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1], BG_TILE_ADDR(108), 0x3c0);
}
static void sub_80730C0(u16 a1)
{
int v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1], (u8 *)(BG_VRAM + 0x3a00), 0x140);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1], BG_TILE_ADDR(116), 0x140);
}
static void sub_80730E8(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1], (u8 *)(BG_VRAM + 0x3e00), 0xc0);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1], BG_TILE_ADDR(124), 0xc0);
}
void TilesetCB_Petalburg(void)
@@ -454,37 +454,37 @@ static void sub_807361C(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1], (u8 *)(BG_VRAM + 0x3c00), 0x140);
+ QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1], BG_TILE_ADDR(120), 0x140);
}
static void sub_8073644(u8 a1)
{
u8 v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], (u8 *)(BG_VRAM + 0x6400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(200), 0x80);
v1 = (a1 + 2) % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], (u8 *)(BG_VRAM + 0x6480), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(201), 0x80);
}
static void sub_807368C(u8 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1], (u8 *)(BG_VRAM + 0x7a00), 0x3c0);
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1], BG_TILE_ADDR(244), 0x3c0);
}
static void sub_80736B4(u8 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1], (u8 *)(BG_VRAM + 0x7e00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1], BG_TILE_ADDR(252), 0x80);
}
static void sub_80736DC(u8 a1)
{
int v1;
v1 = a1 % 8;
- QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1], (u8 *)(BG_VRAM + 0x7e00), 0x100);
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1], BG_TILE_ADDR(252), 0x100);
}
static void sub_8073704(u16 a1, u8 a2)
@@ -521,14 +521,14 @@ static void sub_80737E0(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1], (u8 *)(BG_VRAM + 0x7800), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1], BG_TILE_ADDR(240), 0x80);
}
static void sub_8073808(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], (u8 *)(BG_VRAM + 0x5400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(168), 0x80);
}
static void sub_8073830(u16 a1, u8 a2)
@@ -543,7 +543,7 @@ static void sub_8073868(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], (u8 *)(BG_VRAM + 0x7400), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(232), 0x80);
}
static void sub_8073890(u16 a1)
@@ -590,41 +590,41 @@ static void sub_8073904(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_Building[v1], (u8 *)(BG_VRAM + 0x3e00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Building[v1], BG_TILE_ADDR(124), 0x80);
}
static void sub_807392C(u16 a1)
{
int v1;
v1 = a1 % 3;
- QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1], (u8 *)(BG_VRAM + 0x7e00), 0x180);
- QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1], (u8 *)(BG_VRAM + 0x7a00), 0x280);
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1], BG_TILE_ADDR(252), 0x180);
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1], BG_TILE_ADDR(244), 0x280);
}
static void sub_8073974(u16 a1)
{
int v1;
v1 = a1 % 4;
- QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1], (u8 *)(BG_VRAM + 0x7f00), 0x20);
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1], BG_TILE_ADDR(254), 0x20);
}
static void sub_807399C(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1], (u8 *)(BG_VRAM + 0x7c00), 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1], BG_TILE_ADDR(248), 0x80);
}
static void sub_80739C4(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1], (u8 *)(BG_VRAM + 0x5200), 0x200);
+ QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1], BG_TILE_ADDR(164), 0x200);
}
static void sub_80739EC(u16 a1)
{
int v1;
v1 = a1 % 2;
- QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1], (u8 *)(BG_VRAM + 0x7e00), 0x120);
+ QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1], BG_TILE_ADDR(252), 0x120);
}
diff --git a/src/engine/trade.c b/src/engine/trade.c
index 905e9ff0c..41146a22c 100644
--- a/src/engine/trade.c
+++ b/src/engine/trade.c
@@ -39,6 +39,7 @@
#include "util.h"
#include "battle_interface.h"
#include "trade.h"
+#include "ewram.h"
#ifdef ENGLISH
#define sub_804A96C_alt sub_804A96C
@@ -112,7 +113,6 @@ struct TradeEwramSubstruct {
/*0x0087*/ u8 unk_0087;
/*0x0088*/ u8 filler_0088[2];
/*0x008a*/ u8 unk_008a;
- /*0x008b*/ u8 unk_008b;
/*0x008c*/ u16 linkData[20];
/*0x00b4*/ u8 unk_00b4;
/*0x00b5*/ u8 unk_00b5[11];
@@ -218,9 +218,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,
@@ -1088,7 +1085,7 @@ static void sub_8047EC0(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sub_804A964(&gUnknown_03004824->unk_00c8, (void *)BG_SCREEN_ADDR(5));
+ sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
InitMenuWindow(&gWindowConfig_81E6CE4);
SetUpWindowConfig(&gWindowConfig_81E6F84);
@@ -1268,7 +1265,7 @@ static void sub_80484F4(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
- sub_804A964(&gUnknown_03004824->unk_00c8, (void *)BG_SCREEN_ADDR(5));
+ sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
InitMenuWindow(&gWindowConfig_81E6CE4);
SetUpWindowConfig(&gWindowConfig_81E6F84);
@@ -1484,12 +1481,12 @@ static void sub_8048B0C(u8 a0)
}
for (i = 0; i < 0x400; i ++)
gUnknown_03004824->unk_00c8.unk_12[i] = gUnknown_08EA15C8[i];
- dest = (u16 *)BG_SCREEN_ADDR(6);
+ dest = BG_SCREEN_ADDR(6);
DmaCopy16(3, gTradeStripesBG2Tilemap, dest, 0x800);
break;
case 1:
src = gTradeStripesBG3Tilemap;
- dest = (u16 *)BG_SCREEN_ADDR(7);
+ dest = BG_SCREEN_ADDR(7);
DmaCopy16(3, src, dest, 0x800);
sub_804A6DC(0);
sub_804A6DC(1);
@@ -1706,8 +1703,11 @@ static void sub_8048C70(void)
static void nullsub_5(u8 a0, u8 a1) {}
-static void sub_8048D24(u8 *dest, const u8 *src, u32 size)
+// why not just use memcpy?
+static void Trade_Memcpy(void *dataDest, void *dataSrc, u32 size)
{
+ u8 *dest = dataDest;
+ u8 *src = dataSrc;
int i;
for (i = 0; i < size; i ++) dest[i] = src[i];
}
@@ -1724,7 +1724,7 @@ static bool8 sub_8048D44(void)
switch (gUnknown_03004824->unk_0075)
{
case 0:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[0], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 1:
@@ -1751,13 +1751,13 @@ static bool8 sub_8048D44(void)
case 3:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[0], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 4:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[2], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 5:
@@ -1770,13 +1770,13 @@ static bool8 sub_8048D44(void)
case 6:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[2], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 7:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gPlayerParty[4], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 2 * sizeof(struct Pokemon));
gUnknown_03004824->unk_0075 ++;
break;
case 8:
@@ -1789,13 +1789,13 @@ static bool8 sub_8048D44(void)
case 9:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gEnemyParty[4], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
+ Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[mpId ^ 1], 2 * sizeof(struct Pokemon));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 10:
- sub_8048D24(gBlockSendBuffer, (const u8 *)&gSaveBlock1.mail[0], 6 * sizeof(struct MailStruct) + 4);
+ Trade_Memcpy(gBlockSendBuffer, &gSaveBlock1.mail[0], 6 * sizeof(struct MailStruct) + 4);
gUnknown_03004824->unk_0075 ++;
break;
case 11:
@@ -1808,13 +1808,13 @@ static bool8 sub_8048D44(void)
case 12:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)&gUnknown_02029700[0], (const u8 *)gBlockRecvBuffer[mpId ^ 1], 6 * sizeof(struct MailStruct));
+ Trade_Memcpy(&gUnknown_02029700[0], gBlockRecvBuffer[mpId ^ 1], 6 * sizeof(struct MailStruct));
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
break;
case 13:
- sub_8048D24(gBlockSendBuffer, (const u8 *)gSaveBlock1.giftRibbons, 11);
+ Trade_Memcpy(gBlockSendBuffer, gSaveBlock1.giftRibbons, 11);
gUnknown_03004824->unk_0075 ++;
break;
case 14:
@@ -1827,7 +1827,7 @@ static bool8 sub_8048D44(void)
case 15:
if (GetBlockReceivedStatus() == 3)
{
- sub_8048D24((u8 *)gUnknown_03004824->unk_00b5, (const u8 *)gBlockRecvBuffer[mpId ^ 1], 11);
+ Trade_Memcpy(gUnknown_03004824->unk_00b5, gBlockRecvBuffer[mpId ^ 1], 11);
ResetBlockReceivedFlags();
gUnknown_03004824->unk_0075 ++;
}
@@ -1853,7 +1853,7 @@ static void sub_8049088(void)
{
u8 string[28];
StringCopy(string, gTradeText_TradeOkayPrompt);
- sub_804ACD8(string, (u8 *)BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
+ sub_804ACD8(string, BG_CHAR_ADDR(4) + gUnknown_03004824->unk_007e * 32, 20);
}
static void sub_80490BC(u8 mpId, u8 a1)
@@ -1915,7 +1915,7 @@ static void sub_80491E4(u8 mpId, u8 status)
gUnknown_03004824->unk_007b = 8;
break;
case 0xdddd:
- gUnknown_03004824->unk_008a = ((u8 *)gBlockRecvBuffer[0])[1 * sizeof(u16)] + 6;
+ gUnknown_03004824->unk_008a = gBlockRecvBuffer[0][1] + 6;
sub_8049E9C(gUnknown_03004824->tradeMenuCursorPosition);
sub_8049E9C(gUnknown_03004824->unk_008a);
gUnknown_03004824->unk_007b = 7;
@@ -2111,7 +2111,7 @@ static void sub_8049680(void)
DrawTextWindow(&gUnknown_03004824->window, 24, 14, 29, 19);
InitYesNoMenu(24, 14, 4);
gUnknown_03004824->unk_007b = 4;
- sub_804ACD8(gUnknown_0820C14C[4], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[4], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
}
}
if (gMain.newKeys & R_BUTTON)
@@ -2130,7 +2130,7 @@ static void sub_8049804(void)
sub_804A80C();
gUnknown_03004824->unk_007b = 0;
gSprites[gUnknown_03004824->tradeMenuCursorSpriteIdx].invisible = FALSE;
- sub_804ACD8(gUnknown_0820C14C[1], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[1], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
}
static void sub_8049860(void)
@@ -2498,7 +2498,7 @@ static void sub_8049ED4(u8 a0)
gUnknown_03004824->unk_0080[a0] ++;
break;
case 4:
- sub_804ACD8(gUnknown_0820C14C[5], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[5], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
sub_804A51C(a0, whichPokemon, gUnknown_0820C3D1[a0][0] + 4, gUnknown_0820C3D1[a0][1] + 1, gUnknown_0820C3D1[a0][0], gUnknown_0820C3D1[a0][1]);
gUnknown_03004824->unk_0080[a0] ++;
break;
@@ -3362,7 +3362,7 @@ static void sub_804A840(u8 whichParty)
sub_804A740(1);
sub_804A938(&gUnknown_03004824->unk_00c8);
}
- sub_804ACD8(gUnknown_0820C14C[1], (u8 *)(BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e), 20);
+ sub_804ACD8(gUnknown_0820C14C[1], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
gUnknown_03004824->unk_0080[whichParty] = 0;
}
@@ -4000,7 +4000,7 @@ static void sub_804B2D0(u8 whichParty, u8 a1)
case 0:
species = GetMonData(pokemon, MON_DATA_SPECIES2);
personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)ewram, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gSharedMem, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
LoadCompressedObjectPalette(GetMonSpritePalStruct(pokemon));
gUnknown_03004828->tradeSpecies[whichParty] = species;
break;
@@ -4037,7 +4037,7 @@ static void sub_804B41C(void)
gMain.state ++;
LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
CpuCopy16(gUnknown_08D00524, ewram, 0x1000);
- DmaCopy16Defvars(3, ewram, (void *)BG_SCREEN_ADDR(5), 0x500);
+ DmaCopy16Defvars(3, ewram, BG_SCREEN_ADDR(5), 0x500);
LoadCompressedPalette(gUnknown_08D004E0, 0, 32);
gUnknown_03004828->unk_00b6 = 0;
gUnknown_03004828->unk_00c4 = 0;
@@ -4175,7 +4175,7 @@ static __attribute__((naked)) void sub_804B41C(void)
"\tbl ResetTasks\n"
"\tbl CloseLink\n"
"\tldr r6, _0804B570 @ =gUnknown_03004828\n"
- "\tldr r5, _0804B574 @ =0x0201f000\n"
+ "\tldr r5, _0804B574 @ =gSharedMem + 0x1F000\n"
"\tstr r5, [r6]\n"
"\tbl ResetSpriteData\n"
"\tbl FreeAllSpritePalettes\n"
@@ -4277,7 +4277,7 @@ static __attribute__((naked)) void sub_804B41C(void)
"\tb _0804B76E_break\n"
"\t.align 2, 0\n"
"_0804B570: .4byte gUnknown_03004828\n"
- "_0804B574: .4byte 0x0201f000\n"
+ "_0804B574: .4byte gSharedMem + 0x1F000\n"
"_0804B578: .4byte sub_804B210\n"
"_0804B57C: .4byte gWindowConfig_81E6F84\n"
"_0804B580: .4byte gLinkType\n"
@@ -4678,8 +4678,8 @@ static void sub_804BBE8(u8 a0)
{
case 0:
LoadPalette(gUnknown_0820C9F8, 0x10, 0xa0);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(1), 0x1300, 0x1000);
- DmaCopy16Defvars(3, gUnknown_0820F798, (void *)BG_SCREEN_ADDR(18), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(1), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_0820F798, BG_SCREEN_ADDR(18), 0x1000);
gUnknown_03004828->bg2vofs = 0;
gUnknown_03004828->bg2hofs = 0xb4;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
@@ -4691,15 +4691,15 @@ static void sub_804BBE8(u8 a0)
REG_BG1VOFS = 0x15c;
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5) | BGCNT_TXT256x512;
- DmaCopy16Defvars(3, gUnknown_08210798, (void *)BG_SCREEN_ADDR(5), 0x1000);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(0), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08210798, BG_SCREEN_ADDR(5), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(0), 0x1300, 0x1000);
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
break;
case 2:
gUnknown_03004828->bg1vofs = 0;
gUnknown_03004828->bg1hofs = 0;
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
- DmaCopy16Defvars(3, gUnknown_08211798, (void *)BG_SCREEN_ADDR(5), 0x800);
+ DmaCopy16Defvars(3, gUnknown_08211798, BG_SCREEN_ADDR(5), 0x800);
break;
case 3:
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
@@ -4708,8 +4708,8 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_010c = 0x78;
gUnknown_03004828->unk_010e = -0x46;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_0820DD98, (void *)BG_CHAR_ADDR(1), 0x1a00, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08211F98, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_0820DD98, BG_CHAR_ADDR(1), 0x1a00, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08211F98, BG_SCREEN_ADDR(18), 0x100);
break;
case 4:
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
@@ -4719,20 +4719,20 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_0118 = 0x20;
gUnknown_03004828->unk_011a = 0x400;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_08213738, (void *)BG_CHAR_ADDR(1), 0x2040, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08215778, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_08213738, BG_CHAR_ADDR(1), 0x2040, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08215778, BG_SCREEN_ADDR(18), 0x100);
break;
case 5:
gUnknown_03004828->bg1vofs = 0;
gUnknown_03004828->bg1hofs = 0;
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5);
- LZDecompressVram(gUnknown_08D00000, (void *)BG_CHAR_ADDR(0));
- CpuCopy16(gUnknown_08D00524, buffer = (u16 *)ewram, 0x1000);
+ LZDecompressVram(gUnknown_08D00000, BG_CHAR_ADDR(0));
+ CpuCopy16(gUnknown_08D00524, buffer = (u16 *)gSharedMem, 0x1000);
LoadCompressedPalette(gUnknown_08D004E0, 0x70, 0x20);
FillPalette(0, 0, 2);
for (i = 0; i < 0x280; i ++)
buffer[i] |= 0x7000;
- DmaCopy16Defvars(3, ewram, (void *)BG_SCREEN_ADDR(5), 0x500);
+ DmaCopy16Defvars(3, gSharedMem, BG_SCREEN_ADDR(5), 0x500);
MenuZeroFillWindowRect(2, 15, 27, 18);
break;
case 6:
@@ -4745,16 +4745,16 @@ static void sub_804BBE8(u8 a0)
gUnknown_03004828->unk_010c = 0x78;
gUnknown_03004828->unk_010e = 0x50;
gUnknown_03004828->unk_011c = 0;
- DmaCopyLarge16(3, gUnknown_08213738, (void *)BG_CHAR_ADDR(1), 0x2040, 0x1000);
- DmaCopy16Defvars(3, gUnknown_08215778, (void *)BG_SCREEN_ADDR(18), 0x100);
+ DmaCopyLarge16(3, gUnknown_08213738, BG_CHAR_ADDR(1), 0x2040, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_08215778, BG_SCREEN_ADDR(18), 0x100);
break;
case 7:
gUnknown_03004828->bg2vofs = 0;
gUnknown_03004828->bg2hofs = 0;
REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256;
LoadPalette(gUnknown_0820C9F8, 0x10, 0xa0);
- DmaCopyLarge16(3, gUnknown_0820CA98, (void *)BG_CHAR_ADDR(1), 0x1300, 0x1000);
- DmaCopy16Defvars(3, gUnknown_0820F798, (void *)BG_SCREEN_ADDR(18), 0x1000);
+ DmaCopyLarge16(3, gUnknown_0820CA98, BG_CHAR_ADDR(1), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_0820F798, BG_SCREEN_ADDR(18), 0x1000);
break;
}
}
@@ -5416,7 +5416,6 @@ static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade)
struct MailStruct mail;
u8 metLocation = 0xFE;
u8 isMail;
- u8 *item;
struct Pokemon *pokemon = &gEnemyParty[0];
CreateMon(pokemon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, TRUE, inGameTrade->otId);
@@ -5447,12 +5446,11 @@ static void sub_804D948(u8 whichPlayerMon, u8 whichInGameTrade)
sub_804DAD4(&mail, inGameTrade);
gUnknown_02029700[0] = mail;
SetMonData(pokemon, MON_DATA_MAIL, &isMail);
- SetMonData(pokemon, MON_DATA_HELD_ITEM, (u8 *)&inGameTrade->heldItem);
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &inGameTrade->heldItem);
}
else
{
- item = (u8 *)&inGameTrade->heldItem;
- SetMonData(pokemon, MON_DATA_HELD_ITEM, item);
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &inGameTrade->heldItem);
}
}
CalculateMonStats(&gEnemyParty[0]);
@@ -5705,10 +5703,10 @@ void sub_804E22C(void)
{
const u16 *src;
u16 *dest;
- LZDecompressVram(gUnknown_08D00000, (u8 *)VRAM);
- CpuCopy16(gUnknown_08D00524, ewram, 0x1000);
- src = (const u16 *)ewram;
- dest = (u16 *)(BG_SCREEN_ADDR(5));
+ LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
+ CpuCopy16(gUnknown_08D00524, gSharedMem, 0x1000);
+ src = (const u16 *)gSharedMem;
+ dest = BG_SCREEN_ADDR(5);
DmaCopy16(3, src, dest, 0x500)
LoadCompressedPalette(gUnknown_08D004E0, 0, 32);
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(5);
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index 3e9dadbda..6d105f512 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};
@@ -70,7 +68,7 @@ extern const u16 gUnknown_083B5F8C[][4];
const u8 gBadgesTiles[] = INCBIN_U8("graphics/trainer_card/badges.4bpp");
// XXX: what is this?
-u8 *const ewram_ = ewram;
+u8 *const ewram_ = gSharedMem;
bool8 sub_8093864(struct Task *);
bool8 sub_80938A8(struct Task *);
@@ -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;
@@ -810,7 +808,7 @@ bool8 sub_8093AF0(struct Task *task)
push {r5-r7}\n\
sub sp, 0x4\n\
mov r8, r0\n\
- ldr r1, _08093BFC @ =0x02000000\n\
+ ldr r1, _08093BFC @ =gSharedMem\n\
movs r0, 0\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
@@ -923,7 +921,7 @@ _08093BBE:\n\
ble _08093BBE\n\
_08093BD4:\n\
movs r0, 0x1\n\
- ldr r1, _08093BFC @ =0x02000000\n\
+ ldr r1, _08093BFC @ =gSharedMem\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
movs r4, 0xA\n\
@@ -944,7 +942,7 @@ _08093BEA:\n\
pop {r1}\n\
bx r1\n\
.align 2, 0\n\
-_08093BFC: .4byte 0x02000000\n\
+_08093BFC: .4byte gSharedMem\n\
_08093C00: .4byte 0xffff0000\n\
_08093C04: .4byte gUnknown_03004DE0\n\
_08093C08: .4byte 0x0000fffc\n\
@@ -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;
@@ -972,7 +970,7 @@ bool8 sub_8093C38(struct Task *task)
push {r5-r7}\n\
sub sp, 0x4\n\
mov r8, r0\n\
- ldr r1, _08093D40 @ =0x02000000\n\
+ ldr r1, _08093D40 @ =gSharedMem\n\
movs r2, 0\n\
strb r2, [r1, 0x4]\n\
ldrh r0, [r0, 0xA]\n\
@@ -1083,7 +1081,7 @@ _08093D02:\n\
ble _08093D02\n\
_08093D18:\n\
movs r0, 0x1\n\
- ldr r1, _08093D40 @ =0x02000000\n\
+ ldr r1, _08093D40 @ =gSharedMem\n\
strb r0, [r1, 0x4]\n\
mov r2, r8\n\
movs r3, 0xA\n\
@@ -1104,7 +1102,7 @@ _08093D2E:\n\
pop {r1}\n\
bx r1\n\
.align 2, 0\n\
-_08093D40: .4byte 0x02000000\n\
+_08093D40: .4byte gSharedMem\n\
_08093D44: .4byte 0xffff0000\n\
_08093D48: .4byte gUnknown_03004DE0\n\
_08093D4C: .4byte 0x0000fffc\n\
@@ -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);
}
}