summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-26 08:13:38 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-06-26 12:12:10 -0400
commitfb06e4a3c94ae17b73df6d3aecf2d18213aa183e (patch)
tree550586e95b1d117f9552213d94861c2ff8c318d4 /src
parent3f43523352b279fc4498ee4bfde2213504e3ece8 (diff)
Modernize code
Can compile with arm-none-eabi-gcc 8.3.0 gbafix correctly handles ELF input
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_1.c2
-rw-r--r--src/battle_dome.c4
-rw-r--r--src/bg.c13
-rw-r--r--src/contest.c4
-rw-r--r--src/contest_painting.c10
-rw-r--r--src/dma3_manager.c2
-rw-r--r--src/dodrio_berry_picking.c2
-rwxr-xr-xsrc/ereader_helpers.c22
-rw-r--r--src/fire.c1
-rw-r--r--src/ghost.c3
-rw-r--r--src/link.c31
-rw-r--r--src/link_rfu.c11
-rw-r--r--src/m4a.c1
-rw-r--r--src/main.c2
-rw-r--r--src/mauville_old_man.c2
-rw-r--r--src/multiboot.c2
-rw-r--r--src/pokemon_size_record.c2
-rw-r--r--src/reset_rtc_screen.c2
-rw-r--r--src/roulette.c10
-rwxr-xr-xsrc/roulette_util.c1
-rw-r--r--src/save.c5
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/script_menu.c4
-rw-r--r--src/tv.c9
-rw-r--r--src/union_room.c6
-rw-r--r--src/union_room_battle.c2
26 files changed, 80 insertions, 75 deletions
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index 49bb0216b..15b73a1e0 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -5354,7 +5354,7 @@ void sub_8102EB0(struct Sprite* sprite)
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
{
a = gBattleAnimArgs[1];
- (u16)gBattleAnimArgs[1] = -a;
+ *(u16 *)&gBattleAnimArgs[1] = -a;
}
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1];
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 162d46d61..1c116467d 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -1024,13 +1024,13 @@ static const union AnimCmd gUnknown_0860D020[] =
static const union AnimCmd gUnknown_0860D028[] =
{
- ANIMCMD_FRAME(18, 129, .vFlip = TRUE),
+ ANIMCMD_FRAME(18, 1, .vFlip = TRUE),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_0860D030[] =
{
- ANIMCMD_FRAME(16, 65, .hFlip = TRUE),
+ ANIMCMD_FRAME(16, 1, .hFlip = TRUE),
ANIMCMD_END,
};
diff --git a/src/bg.c b/src/bg.c
index 1826f9a28..abeb49306 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -914,7 +914,6 @@ void CopyBgTilemapBufferToVram(u8 bg)
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height)
{
- const void *srcCopy;
u16 destX16;
u16 destY16;
u16 mode;
@@ -924,27 +923,31 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
switch (GetBgType(bg))
{
case 0:
- srcCopy = src;
+ {
+ const u16 * srcCopy = src;
for (destY16 = destY; destY16 < (destY + height); destY16++)
{
for (destX16 = destX; destX16 < (destX + width); destX16++)
{
- ((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *((u16*)srcCopy)++;
+ ((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
}
}
break;
+ }
case 1:
- srcCopy = src;
+ {
+ const u8 * srcCopy = src;
mode = GetBgMetricAffineMode(bg, 0x1);
for (destY16 = destY; destY16 < (destY + height); destY16++)
{
for (destX16 = destX; destX16 < (destX + width); destX16++)
{
- ((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *((u8*)srcCopy)++;
+ ((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
}
}
break;
}
+ }
}
}
diff --git a/src/contest.c b/src/contest.c
index eb3252f72..869300a92 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -269,8 +269,6 @@ extern const u8 gText_Contest_Fear[];
extern const u8 gText_BDot[];
extern const u8 gText_CDot[];
extern const u8 *const gUnknown_08587E10[];
-extern const struct SpriteTemplate gSpriteTemplate_8587AD0;
-extern const struct SpriteTemplate gSpriteTemplate_8587B18[];
extern void (*const gContestEffectFuncs[])(void);
static const u8 gUnknown_08587A6C[] =
@@ -1268,7 +1266,7 @@ static void sub_80D8108(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 1:
- (s16)gBattle_BG1_Y += 7;
+ *(s16*)&gBattle_BG1_Y += 7;
if ((s16)gBattle_BG1_Y <= 160)
break;
gTasks[taskId].data[0]++;
diff --git a/src/contest_painting.c b/src/contest_painting.c
index b43923c7b..4e8fd72f7 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -28,11 +28,11 @@ struct ContestWinner *gUnknown_030061C0;
u16 *gContestPaintingMonPalette;
// IWRAM bss
-IWRAM_DATA u8 gContestPaintingState;
-IWRAM_DATA u16 gContestPaintingMosaicVal;
-IWRAM_DATA u16 gContestPaintingFadeCounter;
-IWRAM_DATA bool8 gUnknown_030011F6;
-IWRAM_DATA u8 gContestPaintingWindowId;
+static u8 gContestPaintingState;
+static u16 gContestPaintingMosaicVal;
+static u16 gContestPaintingFadeCounter;
+static bool8 gUnknown_030011F6;
+static u8 gContestPaintingWindowId;
static void ShowContestPainting(void);
static void HoldContestPainting(void);
diff --git a/src/dma3_manager.c b/src/dma3_manager.c
index 51fa7072d..f11bf33dd 100644
--- a/src/dma3_manager.c
+++ b/src/dma3_manager.c
@@ -8,7 +8,7 @@
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
-IWRAM_DATA struct
+BSS_DATA struct
{
const u8 *src;
u8 *dest;
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 966dccfcf..e9ff76f49 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -145,7 +145,7 @@ EWRAM_DATA u16 * gUnknown_02022CE4[4] = {NULL};
EWRAM_DATA struct DodrioBerryPickingStruct_2022CF4 * gUnknown_02022CF4 = NULL;
EWRAM_DATA struct DodrioBerryPickingSubstruct_0160 * gUnknown_02022CF8 = NULL;
-IWRAM_DATA bool32 gUnknown_03000DB0;
+static bool32 gUnknown_03000DB0;
void sub_8024A1C(void);
void sub_8024A30(struct DodrioBerryPickingStruct *);
diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c
index cd64afe0e..11aaaafe7 100755
--- a/src/ereader_helpers.c
+++ b/src/ereader_helpers.c
@@ -26,17 +26,17 @@ static void sub_81D414C(void);
static void sub_81D3F1C(u32, u32*, u32*);
static void sub_81D3F68(void);
-IWRAM_DATA struct Unknown030012C8 gUnknown_030012C8;
-IWRAM_DATA u16 gUnknown_030012E0;
-IWRAM_DATA u16 gUnknown_030012E2;
-IWRAM_DATA u16 gUnknown_030012E4;
-IWRAM_DATA u16 gUnknown_030012E6;
-IWRAM_DATA u32 gUnknown_030012E8;
-IWRAM_DATA u16 gUnknown_030012EC;
-IWRAM_DATA u16 gUnknown_030012EE;
-IWRAM_DATA u16 gUnknown_030012F0;
-IWRAM_DATA u16 gUnknown_030012F2;
-IWRAM_DATA u16 gUnknown_030012F4;
+static struct Unknown030012C8 gUnknown_030012C8;
+static u16 gUnknown_030012E0;
+static u16 gUnknown_030012E2;
+static u16 gUnknown_030012E4;
+static u16 gUnknown_030012E6;
+static u32 gUnknown_030012E8;
+static u16 gUnknown_030012EC;
+static u16 gUnknown_030012EE;
+static u16 gUnknown_030012F0;
+static u16 gUnknown_030012F2;
+static u16 gUnknown_030012F4;
extern const u8 gUnknown_08625B6C[][0x148];
diff --git a/src/fire.c b/src/fire.c
index d428dc13b..2998d46ca 100644
--- a/src/fire.c
+++ b/src/fire.c
@@ -891,6 +891,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
break;
default:
+ break;
}
}
diff --git a/src/ghost.c b/src/ghost.c
index 97b86aa76..dd29fb7ca 100644
--- a/src/ghost.c
+++ b/src/ghost.c
@@ -1148,7 +1148,8 @@ static void sub_8112B78(struct Sprite *sprite)
if (++coeffB > 16)
coeffB = 16;
- if (--(s16)coeffA < 0)
+ --coeffA;
+ if ((s16)coeffA < 0)
coeffA = 0;
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(coeffA, coeffB));
diff --git a/src/link.c b/src/link.c
index bcdcb52a4..9928b48da 100644
--- a/src/link.c
+++ b/src/link.c
@@ -52,22 +52,21 @@ struct LinkTestBGInfo
// Static RAM declarations
-IWRAM_DATA struct BlockTransfer sBlockSend;
-IWRAM_DATA u32 link_c_unused_03000d1c;
-IWRAM_DATA struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
-IWRAM_DATA u32 sBlockSendDelayCounter;
-IWRAM_DATA u32 gUnknown_03000D54;
-IWRAM_DATA u8 gUnknown_03000D58;
-IWRAM_DATA u32 sPlayerDataExchangeStatus;
-IWRAM_DATA u32 gUnknown_03000D60;
-IWRAM_DATA u8 sLinkTestLastBlockSendPos;
-ALIGNED() IWRAM_DATA u8 sLinkTestLastBlockRecvPos[MAX_LINK_PLAYERS];
-IWRAM_DATA u8 sNumVBlanksWithoutSerialIntr;
-IWRAM_DATA bool8 sSendBufferEmpty;
-IWRAM_DATA u16 sSendNonzeroCheck;
-IWRAM_DATA u16 sRecvNonzeroCheck;
-IWRAM_DATA u8 sChecksumAvailable;
-IWRAM_DATA u8 sHandshakePlayerCount;
+static struct BlockTransfer sBlockSend;
+static struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
+static u32 sBlockSendDelayCounter;
+static u32 gUnknown_03000D54;
+static u8 gUnknown_03000D58;
+static u32 sPlayerDataExchangeStatus;
+static u32 gUnknown_03000D60;
+static u8 sLinkTestLastBlockSendPos;
+static u8 sLinkTestLastBlockRecvPos[MAX_LINK_PLAYERS];
+static u8 sNumVBlanksWithoutSerialIntr;
+static bool8 sSendBufferEmpty;
+static u16 sSendNonzeroCheck;
+static u16 sRecvNonzeroCheck;
+static u8 sChecksumAvailable;
+static u8 sHandshakePlayerCount;
u16 gLinkPartnersHeldKeys[6];
u32 gLinkDebugSeed;
diff --git a/src/link_rfu.c b/src/link_rfu.c
index 9732e9889..ae36493a2 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -24,10 +24,10 @@ extern u16 gHeldKeyCodeToSend;
struct UnkRfuStruct_1 gUnknown_03004140;
struct UnkRfuStruct_2 gUnknown_03005000;
-IWRAM_DATA u8 gUnknown_03000D74;
-ALIGNED(4) IWRAM_DATA u8 gUnknown_03000D78[8];
-IWRAM_DATA u8 gUnknown_03000D80[16];
-IWRAM_DATA u16 gUnknown_03000D90[8];
+BSS_DATA u8 gUnknown_03000D74;
+ALIGNED(4) BSS_DATA u8 gUnknown_03000D78[8];
+BSS_DATA u8 gUnknown_03000D80[16];
+BSS_DATA u16 gUnknown_03000D90[8];
EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0;
EWRAM_DATA ALIGNED(4) struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {};
@@ -2021,6 +2021,8 @@ void sub_800DBF8(u8 *q1, u8 mode)
}
}
+// File boundary here maybe?
+
void PkmnStrToASCII(u8 *q1, const u8 *q2)
{
s32 i;
@@ -5191,4 +5193,3 @@ u32 GetRfuRecvQueueLength(void)
{
return gUnknown_03005000.unk_124.unk_8c2;
}
-
diff --git a/src/m4a.c b/src/m4a.c
index 7b4441ca4..267a72657 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -1,3 +1,4 @@
+#include <string.h>
#include "gba/m4a_internal.h"
extern const u8 gCgb3Vol[];
diff --git a/src/main.c b/src/main.c
index 40381bb68..d0c9ff7b4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -85,7 +85,7 @@ void EnableVCountIntrAtLine150(void);
void AgbMain()
{
- RegisterRamReset(RESET_ALL);
+ RegisterRamReset(MODERN ? RESET_ALL & ~RESET_IWRAM : RESET_ALL);
*(vu16 *)BG_PLTT = 0x7FFF;
InitGpuRegManager();
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index 8bb9cb6e4..64f04f3bc 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -33,7 +33,7 @@ static void Task_BardSong(u8 taskId);
static void StorytellerSetup(void);
static void Storyteller_ResetFlag(void);
-IWRAM_DATA u8 sSelectedStory;
+static u8 sSelectedStory;
struct BardSong gBardSong;
diff --git a/src/multiboot.c b/src/multiboot.c
index da90a55c0..5cc3ad17e 100644
--- a/src/multiboot.c
+++ b/src/multiboot.c
@@ -435,7 +435,7 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
#undef must_data
}
-static void MultiBootWaitCycles(u32 cycles)
+static NOINLINE void MultiBootWaitCycles(u32 cycles)
{
asm("mov r2, pc");
asm("lsr r2, #24");
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index f63e1ccba..d70f57f47 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -97,7 +97,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size)
{
#ifdef UNITS_IMPERIAL
//Convert size from centimeters to inches
- size = (double)(size * 10) / (CM_PER_INCH * 10);
+ size = DOUBLE_U32(size * 10) / (CM_PER_INCH * 10);
#endif
string = ConvertIntToDecimalStringN(string, size / 10, 0, 8);
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index d675c49d1..1fe9f2279 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -142,7 +142,7 @@ static const union AnimCmd sSpriteAnim_85104CC[] =
static const union AnimCmd sSpriteAnim_85104D4[] =
{
- ANIMCMD_FRAME(0, 158, .vFlip = TRUE),
+ ANIMCMD_FRAME(0, 30, .vFlip = TRUE),
ANIMCMD_JUMP(0),
};
diff --git a/src/roulette.c b/src/roulette.c
index 25c079cda..5225118d5 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -3969,7 +3969,7 @@ static void sub_8144410(struct Sprite *sprite)
if (!sub_8143B48(sprite))
{
gUnknown_0203AB88->var90 = 0.0f;
- gUnknown_0203AB88->var8C -= (float)(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03)
+ gUnknown_0203AB88->var8C -= FLOAT_U8(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03)
/ (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04 + 1);
sprite->data[1] = 4;
sprite->callback = sub_8144264;
@@ -3994,8 +3994,8 @@ static void sub_8144514(struct Sprite *sprite)
if (gUnknown_0203AB88->var94 > 40.f)
return;
- gUnknown_0203AB88->var98 = -(4.0f / (float)gUnknown_0203AB88->var86);
- gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / (float)gUnknown_0203AB88->var86);
+ gUnknown_0203AB88->var98 = -(4.0f / FLOAT_U16(gUnknown_0203AB88->var86));
+ gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / FLOAT_U16(gUnknown_0203AB88->var86));
sprite->animNum = 2;
sprite->animBeginning = TRUE;
sprite->animEnded = FALSE;
@@ -4010,8 +4010,8 @@ static void sub_81445D8(struct Sprite *sprite)
return;
m4aSongNumStartOrChange(SE_TAMAKORO_E);
- gUnknown_0203AB88->var98 = -(20.0f / (float)gUnknown_0203AB88->var84);
- gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / (float)gUnknown_0203AB88->var84);
+ gUnknown_0203AB88->var98 = -(20.0f / FLOAT_U16(gUnknown_0203AB88->var84));
+ gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / FLOAT_U16(gUnknown_0203AB88->var84));
sprite->animNum = 1;
sprite->animBeginning = TRUE;
sprite->animEnded = FALSE;
diff --git a/src/roulette_util.c b/src/roulette_util.c
index 9531302d9..16c3e8150 100755
--- a/src/roulette_util.c
+++ b/src/roulette_util.c
@@ -409,6 +409,7 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend)
}
break;
case 2: // Flip back and forth
+ // This code is never reached
if (pulseBlendPalette->fadeDirection)
pulseBlendPalette->blendCoeff = 0;
else
diff --git a/src/save.c b/src/save.c
index 45a75b5dc..cdfd2ae1d 100644
--- a/src/save.c
+++ b/src/save.c
@@ -626,7 +626,10 @@ static u16 CalculateChecksum(void *data, u16 size)
u32 checksum = 0;
for (i = 0; i < (size / 4); i++)
- checksum += *((u32 *)data)++;
+ {
+ checksum += *((u32 *)data);
+ data += sizeof(u32);
+ }
return ((checksum >> 16) + checksum);
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 8d597b887..57cd3edbe 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -62,7 +62,7 @@ static EWRAM_DATA u16 sMovingNpcMapBank = 0;
static EWRAM_DATA u16 sMovingNpcMapId = 0;
static EWRAM_DATA u16 sFieldEffectScriptId = 0;
-IWRAM_DATA u8 gUnknown_03000F30;
+static u8 gUnknown_03000F30;
extern const SpecialFunc gSpecials[];
extern const u8 *gStdScripts[];
diff --git a/src/script_menu.c b/src/script_menu.c
index 082253e35..b17d3df38 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -1017,8 +1017,8 @@ const u8 *const gUnknown_0858BBEC[] =
EWRAM_DATA u8 gUnknown_02039F90 = 0;
-IWRAM_DATA u8 gUnknown_03001124[7];
-IWRAM_DATA u32 filler_0300112c;
+static u8 gUnknown_03001124[7];
+static u32 filler_0300112c;
static void Task_HandleMultichoiceInput(u8);
static void Task_HandleYesNoInput(u8);
diff --git a/src/tv.c b/src/tv.c
index dfd26fd0d..d696e1a21 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -56,9 +56,9 @@ struct {
u16 move;
} sTV_SecretBaseVisitMonsTemp[10];
-IWRAM_DATA u8 sTVShowMixingNumPlayers;
-IWRAM_DATA u8 sTVShowNewsMixingNumPlayers;
-IWRAM_DATA s8 sTVShowMixingCurSlot;
+static u8 sTVShowMixingNumPlayers;
+static u8 sTVShowNewsMixingNumPlayers;
+static s8 sTVShowMixingCurSlot;
EWRAM_DATA u16 sPokemonAnglerSpecies = 0;
EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0;
@@ -70,9 +70,6 @@ EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {};
// Static ROM declarations
-extern const u8 *const sTVBravoTrainerTextGroup[];
-extern const u8 *const sTVBravoTrainerBattleTowerTextGroup[];
-
void ClearPokemonNews(void);
u8 GetTVChannelByShowType(u8 kind);
u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void);
diff --git a/src/union_room.c b/src/union_room.c
index 6e7c0965d..486771af7 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -60,9 +60,9 @@ EWRAM_DATA u8 gUnknown_02022C3E = 0;
EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
// IWRAM vars
-IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
-IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4;
-IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8;
+static struct UnkStruct_Leader *gUnknown_03000DA0;
+static struct UnkStruct_Group *gUnknown_03000DA4;
+static struct UnkStruct_URoom *gUnknown_03000DA8;
// this file's functions
void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5);
diff --git a/src/union_room_battle.c b/src/union_room_battle.c
index 321b49092..79d12291d 100644
--- a/src/union_room_battle.c
+++ b/src/union_room_battle.c
@@ -40,7 +40,7 @@ struct UnkStruct_2022C6C
s16 a0;
};
-IWRAM_DATA struct UnkStruct_3000DAC * gUnknown_03000DAC;
+static struct UnkStruct_3000DAC * gUnknown_03000DAC;
EWRAM_DATA struct UnkStruct_2022C6C * gUnknown_02022C6C = NULL;