summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-07-20 12:11:46 -0400
committerGitHub <noreply@github.com>2019-07-20 12:11:46 -0400
commit4d5c1ca03b4e7db3c44c71afaa01b1549a282a19 (patch)
treeec2e9ec5f3e4a6d8523e80ab58e6c9c296fbc05c /src
parent3f762629e830c0cad66c4efeea5b918bdf4cce20 (diff)
parent6edacdee36d31b2df69559f28a33b8d9e958bf5e (diff)
Merge pull request #732 from PikalaxALT/modern_gcc
Modernize code for compatibility with later releases of GCC
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_1.c2
-rw-r--r--src/battle_dome.c4
-rw-r--r--src/battle_factory.c2
-rw-r--r--src/battle_factory_screen.c6
-rw-r--r--src/battle_main.c3
-rw-r--r--src/battle_pike.c10
-rw-r--r--src/battle_tent.c2
-rw-r--r--src/battle_transition.c8
-rw-r--r--src/berry_blender.c8
-rw-r--r--src/bg.c19
-rw-r--r--src/cable_car.c2
-rw-r--r--src/contest.c4
-rw-r--r--src/contest_painting.c10
-rw-r--r--src/dma3_manager.c4
-rw-r--r--src/dodrio_berry_picking.c2
-rw-r--r--src/egg_hatch.c2
-rwxr-xr-xsrc/ereader_helpers.c22
-rwxr-xr-xsrc/ereader_screen.c2
-rw-r--r--src/field_camera.c10
-rw-r--r--src/field_effect.c2
-rw-r--r--src/field_weather.c2
-rw-r--r--src/fire.c1
-rw-r--r--src/fldeff_cut.c10
-rw-r--r--src/ghost.c3
-rw-r--r--src/item.c3
-rwxr-xr-xsrc/item_menu.c4
-rw-r--r--src/librfu.c9
-rw-r--r--src/librfu_intr.c1
-rw-r--r--src/librfu_stwi.c2
-rw-r--r--src/link.c31
-rw-r--r--src/link_rfu.c11
-rw-r--r--src/load_save.c8
-rw-r--r--src/m4a.c1
-rw-r--r--src/main.c20
-rw-r--r--src/main_menu.c2
-rw-r--r--src/mauville_old_man.c2
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/mirage_tower.c2
-rw-r--r--src/multiboot.c4
-rw-r--r--src/overworld.c12
-rwxr-xr-xsrc/party_menu.c6
-rwxr-xr-xsrc/pokedex_area_screen.c10
-rw-r--r--src/pokemon_animation.c35
-rwxr-xr-xsrc/pokemon_jump.c4
-rw-r--r--src/pokemon_storage_system.c5
-rw-r--r--src/pokenav_main_menu.c44
-rw-r--r--src/pokenav_unk_10.c4
-rwxr-xr-xsrc/pokenav_unk_3.c4
-rwxr-xr-xsrc/pokenav_unk_4.c34
-rwxr-xr-xsrc/pokenav_unk_5.c8
-rw-r--r--src/pokenav_unk_7.c3
-rw-r--r--src/random.c4
-rw-r--r--src/record_mixing.c30
-rw-r--r--src/recorded_battle.c4
-rw-r--r--src/reset_rtc_screen.c2
-rw-r--r--src/reset_save_heap.c2
-rw-r--r--src/rom_8034C54.c6
-rw-r--r--src/roulette.c8
-rwxr-xr-xsrc/roulette_util.c3
-rw-r--r--src/rtc.c8
-rw-r--r--src/save.c5
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/script.c12
-rw-r--r--src/script_menu.c4
-rw-r--r--src/secret_base.c4
-rwxr-xr-xsrc/shop.c8
-rw-r--r--src/slot_machine.c2
-rw-r--r--src/sound.c10
-rw-r--r--src/sprite.c8
-rw-r--r--src/starter_choose.c2
-rw-r--r--src/trade.c7
-rw-r--r--src/tv.c13
-rw-r--r--src/union_room.c6
-rw-r--r--src/union_room_battle.c2
74 files changed, 314 insertions, 249 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/battle_factory.c b/src/battle_factory.c
index 1a150db1e..6c249bccc 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -16,7 +16,7 @@
#include "constants/moves.h"
// IWRAM bss
-static IWRAM_DATA bool8 sPerformedRentalSwap;
+static bool8 sPerformedRentalSwap;
// This file's functions.
static void InitFactoryChallenge(void);
diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c
index 280b65dc8..f56442432 100644
--- a/src/battle_factory_screen.c
+++ b/src/battle_factory_screen.c
@@ -227,9 +227,9 @@ static EWRAM_DATA u8 *sSwapMenuTilemapBuffer = NULL;
static EWRAM_DATA u8 *sSwapMonCardBgTilemapBuffer = NULL;
// IWRAM bss
-static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen;
-static IWRAM_DATA void (*sSwap_CurrentTableFunc)(u8 taskId);
-static IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen;
+static struct FactorySelectMonsStruct *sFactorySelectScreen;
+static void (*sSwap_CurrentTableFunc)(u8 taskId);
+static struct FactorySwapMonsStruct *sFactorySwapScreen;
// IWRAM common
u8 (*gUnknown_030062E8)(void);
diff --git a/src/battle_main.c b/src/battle_main.c
index b4c4bdf5c..61b6a5a12 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -72,6 +72,9 @@ extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[];
// this file's functions
+#if !defined(NONMATCHING) && MODERN
+#define static
+#endif
static void CB2_InitBattleInternal(void);
static void CB2_PreInitMultiBattle(void);
static void CB2_PreInitIngamePlayerPartnerBattle(void);
diff --git a/src/battle_pike.c b/src/battle_pike.c
index 7fdb0a07c..8846e2d1a 100644
--- a/src/battle_pike.c
+++ b/src/battle_pike.c
@@ -53,11 +53,11 @@ struct PikeWildMon
};
// IWRAM bss
-static IWRAM_DATA u8 sRoomType;
-static IWRAM_DATA u8 sStatusMon;
-static IWRAM_DATA bool8 sUnknown_0300128E;
-static IWRAM_DATA u32 sStatusFlags;
-static IWRAM_DATA u8 sNpcId;
+static u8 sRoomType;
+static u8 sStatusMon;
+static bool8 sUnknown_0300128E;
+static u32 sStatusFlags;
+static u8 sNpcId;
// This file's functions.
static void SetRoomType(void);
diff --git a/src/battle_tent.c b/src/battle_tent.c
index 85194417f..34e3e9628 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -44,7 +44,7 @@ static void sub_81BA040(void);
static void sub_81B9EC0(void);
// IWRAM bss
-static IWRAM_DATA u16 sRandMonSetId;
+static u16 sRandMonSetId;
// const rom data
void static (*const gUnknown_086160B4[])(void) =
diff --git a/src/battle_transition.c b/src/battle_transition.c
index 7edb1bd93..3e86fcf51 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -262,10 +262,10 @@ static bool8 sub_814842C(struct Sprite *sprite);
static bool8 sub_8148458(struct Sprite *sprite);
// iwram bss vars
-IWRAM_DATA static s16 sUnusedRectangularSpiralVar;
-IWRAM_DATA static u8 sTestingTransitionId;
-IWRAM_DATA static u8 sTestingTransitionState;
-IWRAM_DATA static struct StructRectangularSpiral sRectangularSpiralTransition[4];
+static s16 sUnusedRectangularSpiralVar;
+static u8 sTestingTransitionId;
+static u8 sTestingTransitionState;
+static struct StructRectangularSpiral sRectangularSpiralTransition[4];
// ewram vars
EWRAM_DATA static struct TransitionData *sTransitionStructPtr = NULL;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index d6a7879f4..03764b2f8 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -194,10 +194,10 @@ EWRAM_DATA static s32 sUnknown_020322BC[5] = {0};
EWRAM_DATA static u32 sUnknown_020322D0 = 0;
// IWRAM bss
-IWRAM_DATA static s16 sUnknown_03000DE8[8];
-IWRAM_DATA static s16 sUnknown_03000DF8[6];
-IWRAM_DATA static s16 sUnknown_03000E04;
-IWRAM_DATA static s16 sUnknown_03000E06;
+static s16 sUnknown_03000DE8[8];
+static s16 sUnknown_03000DF8[6];
+static s16 sUnknown_03000E04;
+static s16 sUnknown_03000E06;
// IWRAM common
u8 gInGameOpponentsNo;
diff --git a/src/bg.c b/src/bg.c
index 1826f9a28..43570f5eb 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -37,9 +37,9 @@ struct BgConfig2
s32 bg_y;
};
-static IWRAM_DATA struct BgControl sGpuBgConfigs;
-static IWRAM_DATA struct BgConfig2 sGpuBgConfigs2[4];
-static IWRAM_DATA u32 sDmaBusyBitfield[4];
+static struct BgControl sGpuBgConfigs;
+static struct BgConfig2 sGpuBgConfigs2[4];
+static u32 sDmaBusyBitfield[4];
u32 gUnneededFireRedVariable;
@@ -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/cable_car.c b/src/cable_car.c
index d44c9a241..adeee2647 100644
--- a/src/cable_car.c
+++ b/src/cable_car.c
@@ -245,7 +245,7 @@ static void CableCarMainCallback_Setup(void)
{
u16 imebak;
u8 i = 0;
- int sizeOut = 0;
+ u32 sizeOut = 0;
switch (gMain.state)
{
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 257bde445..b7fd3cce7 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..43744883f 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;
@@ -17,7 +17,7 @@ IWRAM_DATA struct
u32 value;
} gDma3Requests[MAX_DMA_REQUESTS];
-static bool8 gDma3ManagerLocked;
+static volatile bool8 gDma3ManagerLocked;
static u8 gDma3RequestCursor;
void ClearDma3Requests(void)
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 29bc1f1d5..0eb0c12f8 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/egg_hatch.c b/src/egg_hatch.c
index 605cd0366..835141ef2 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -73,7 +73,7 @@ static void CreateRandomEggShardSprite(void);
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex);
// IWRAM bss
-static IWRAM_DATA struct EggHatchData *sEggHatchData;
+static struct EggHatchData *sEggHatchData;
// rom data
static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal");
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/ereader_screen.c b/src/ereader_screen.c
index f74efa32b..98f0d9b8c 100755
--- a/src/ereader_screen.c
+++ b/src/ereader_screen.c
@@ -38,7 +38,7 @@ struct Unk03006370
static void sub_81D5084(u8);
-extern struct Unk03006370 gUnknown_03006370;
+struct Unk03006370 gUnknown_03006370;
extern const u8 gUnknown_089A3470[];
extern const u8 gMultiBootProgram_BerryGlitchFix_Start[];
diff --git a/src/field_camera.c b/src/field_camera.c
index b976cf2ff..7f294afdb 100644
--- a/src/field_camera.c
+++ b/src/field_camera.c
@@ -36,11 +36,11 @@ static void DrawMetatile(s32 a, u16 *b, u16 c);
static void CameraPanningCB_PanAhead(void);
// IWRAM bss vars
-static IWRAM_DATA struct FieldCameraOffset sFieldCameraOffset;
-static IWRAM_DATA s16 sHorizontalCameraPan;
-static IWRAM_DATA s16 sVerticalCameraPan;
-static IWRAM_DATA u8 gUnknown_03000E2C;
-static IWRAM_DATA void (*sFieldCameraPanningCallback)(void);
+static struct FieldCameraOffset sFieldCameraOffset;
+static s16 sHorizontalCameraPan;
+static s16 sVerticalCameraPan;
+static u8 gUnknown_03000E2C;
+static void (*sFieldCameraPanningCallback)(void);
struct CameraObject gFieldCamera;
u16 gTotalCameraPixelOffsetY;
diff --git a/src/field_effect.c b/src/field_effect.c
index 22bf44f28..7569bdc75 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -232,7 +232,7 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId);
// Static RAM declarations
-static IWRAM_DATA u8 sActiveList[32];
+static u8 sActiveList[32];
// External declarations
extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const.
diff --git a/src/field_weather.c b/src/field_weather.c
index 814e85ef4..024b6631f 100644
--- a/src/field_weather.c
+++ b/src/field_weather.c
@@ -68,7 +68,7 @@ static u8 None_Finish(void);
EWRAM_DATA struct Weather gWeather = {0};
EWRAM_DATA static u8 sFieldEffectPaletteGammaTypes[32] = {0};
-IWRAM_DATA static const u8 *sPaletteGammaTypes;
+static const u8 *sPaletteGammaTypes;
// The drought weather effect uses a precalculated color lookup table. Presumably this
// is because the underlying color shift calculation is slow.
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/fldeff_cut.c b/src/fldeff_cut.c
index 68c50cae7..3115ff231 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -59,11 +59,11 @@ static void CutGrassSpriteCallbackEnd(struct Sprite *);
static void HandleLongGrassOnHyper(u8, s16, s16);
// IWRAM variables
-static IWRAM_DATA u8 sCutSquareSide;
-static IWRAM_DATA u8 sTileCountFromPlayer_X;
-static IWRAM_DATA u8 sTileCountFromPlayer_Y;
-static IWRAM_DATA u32 sUnused;
-static IWRAM_DATA bool8 sHyperCutTiles[CUT_HYPER_AREA];
+static u8 sCutSquareSide;
+static u8 sTileCountFromPlayer_X;
+static u8 sTileCountFromPlayer_Y;
+static u32 sUnused;
+static bool8 sHyperCutTiles[CUT_HYPER_AREA];
// EWRAM variables
static EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL;
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/item.c b/src/item.c
index fe8e8eadd..5e505724c 100644
--- a/src/item.c
+++ b/src/item.c
@@ -18,6 +18,9 @@
extern u16 gUnknown_0203CF30[];
// this file's functions
+#if !defined(NONMATCHING) && MODERN
+#define static
+#endif
static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count);
static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count);
diff --git a/src/item_menu.c b/src/item_menu.c
index bdba9622c..5b47a567b 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -127,7 +127,7 @@ void sub_81ABAE0(void);
u8 sub_81AB1F0(u8);
void sub_81AC23C(u8);
void BagMenu_MoveCursorCallback(s32 a, bool8 b, struct ListMenu*);
-void PrintItemQuantityPlusGFX(u8 rboxId, int item_index_in_pocket, u8 a);
+void PrintItemQuantityPlusGFX(u8 rboxId, s32 item_index_in_pocket, u8 a);
void ItemMenu_UseOutOfBattle(u8 taskId);
void ItemMenu_Toss(u8 taskId);
void ItemMenu_Register(u8 taskId);
@@ -830,7 +830,7 @@ void BagMenu_MoveCursorCallback(s32 a, bool8 b, struct ListMenu *unused)
}
}
-void PrintItemQuantityPlusGFX(u8 rboxId, int item_index_in_pocket, u8 a)
+void PrintItemQuantityPlusGFX(u8 rboxId, s32 item_index_in_pocket, u8 a)
{
u16 itemId;
u16 itemQuantity;
diff --git a/src/librfu.c b/src/librfu.c
new file mode 100644
index 000000000..cdf14b693
--- /dev/null
+++ b/src/librfu.c
@@ -0,0 +1,9 @@
+#include "global.h"
+#include "librfu.h"
+
+struct RfuUnk1* gUnknown_03007870[4];
+struct RfuUnk2* gUnknown_03007880[4];
+struct RfuUnk5 *gUnknown_03007890;
+u32 *gUnknown_03007894;
+struct RfuUnk3* gUnknown_03007898;
+u8 gUnknown_030078A0[12];
diff --git a/src/librfu_intr.c b/src/librfu_intr.c
index bdf8b072a..c6db9a50c 100644
--- a/src/librfu_intr.c
+++ b/src/librfu_intr.c
@@ -1,4 +1,5 @@
#include "global.h"
#include "main.h"
+#include "librfu.h"
//TODO: decompile asm/librfu_intr.s to here
diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c
index 556b79bf8..670692118 100644
--- a/src/librfu_stwi.c
+++ b/src/librfu_stwi.c
@@ -1,6 +1,8 @@
#include "global.h"
#include "librfu.h"
+struct RfuStruct *gRfuState;
+
extern IntrFunc IntrSIO32(void);
extern void STWI_stop_timer(void);
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 3728b1219..f7ffa4aca 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;
@@ -5142,4 +5144,3 @@ u32 GetRfuRecvQueueLength(void)
{
return gUnknown_03005000.unk_124.unk_8c2;
}
-
diff --git a/src/load_save.c b/src/load_save.c
index 150c557c6..5857f2b46 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -42,10 +42,10 @@ EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
// IWRAM common
-IWRAM_DATA bool32 gFlashMemoryPresent;
-IWRAM_DATA struct SaveBlock1 *gSaveBlock1Ptr;
-IWRAM_DATA struct SaveBlock2 *gSaveBlock2Ptr;
-IWRAM_DATA struct PokemonStorage *gPokemonStoragePtr;
+bool32 gFlashMemoryPresent;
+struct SaveBlock1 *gSaveBlock1Ptr;
+struct SaveBlock2 *gSaveBlock2Ptr;
+struct PokemonStorage *gPokemonStoragePtr;
// code
void CheckForFlashMemory(void)
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..06425e661 100644
--- a/src/main.c
+++ b/src/main.c
@@ -85,7 +85,27 @@ void EnableVCountIntrAtLine150(void);
void AgbMain()
{
+#if MODERN
+ // Modern compilers are liberal with the stack on entry to this function,
+ // so RegisterRamReset may crash if it resets IWRAM.
+ RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
+ asm("mov\tr1, #0xC0\n"
+ "\tlsl\tr1, r1, #0x12\n"
+ "\tmov r2, #0xFC\n"
+ "\tlsl r2, r2, #0x7\n"
+ "\tadd\tr2, r1, r2\n"
+ "\tmov\tr0, #0\n"
+ "\tmov\tr3, r0\n"
+ "\tmov\tr4, r0\n"
+ "\tmov\tr5, r0\n"
+ ".LCU0:\n"
+ "\tstmia r1!, {r0, r3, r4, r5}\n"
+ "\tcmp\tr1, r2\n"
+ "\tbcc\t.LCU0\n"
+ );
+#else
RegisterRamReset(RESET_ALL);
+#endif //MODERN
*(vu16 *)BG_PLTT = 0x7FFF;
InitGpuRegManager();
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
diff --git a/src/main_menu.c b/src/main_menu.c
index bc509c70d..6a0bd9e2d 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -176,7 +176,7 @@
static EWRAM_DATA u8 gUnknown_02022D04 = 0;
static EWRAM_DATA u16 sCurrItemAndOptionMenuCheck = 0;
-static IWRAM_DATA u8 sBirchSpeechMainTaskId;
+static u8 sBirchSpeechMainTaskId;
// Static ROM declarations
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/menu_helpers.c b/src/menu_helpers.c
index 801e2546b..cb0d621c6 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -27,7 +27,7 @@ EWRAM_DATA static struct YesNoFuncTable gUnknown_0203A138 = {0};
EWRAM_DATA static u8 gUnknown_0203A140 = 0;
// IWRAM bss vars
-IWRAM_DATA static TaskFunc gUnknown_0300117C;
+static TaskFunc gUnknown_0300117C;
// const rom data
static const struct OamData sOamData_859F4E8 =
diff --git a/src/mirage_tower.c b/src/mirage_tower.c
index 269f8ea1b..e398c2334 100644
--- a/src/mirage_tower.c
+++ b/src/mirage_tower.c
@@ -258,7 +258,7 @@ EWRAM_DATA static struct Struct203CF10 *sUnknown_0203CF10 = NULL;
EWRAM_DATA static struct BgRegOffsets *sBgShakeOffsets = NULL;
EWRAM_DATA struct MirageTowerPulseBlend *sMirageTowerPulseBlend = NULL;
-IWRAM_DATA static u16 gUnknown_030012A8[8];
+static u16 gUnknown_030012A8[8];
bool8 IsMirageTowerVisible(void)
{
diff --git a/src/multiboot.c b/src/multiboot.c
index da90a55c0..c7e14392e 100644
--- a/src/multiboot.c
+++ b/src/multiboot.c
@@ -1,7 +1,7 @@
#include "gba/gba.h"
#include "multiboot.h"
-IWRAM_DATA static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
+static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
static int MultiBootSend(struct MultiBootParam *mp, u16 data);
static int MultiBootHandShake(struct MultiBootParam *mp);
@@ -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/overworld.c b/src/overworld.c
index 4356752c1..2097abc53 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -186,15 +186,15 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr
static u16 GetCenterScreenMetatileBehavior(void);
// IWRAM bss vars
-IWRAM_DATA static void *sUnusedOverworldCallback;
-IWRAM_DATA static u8 sPlayerTradingStates[4];
+static void *sUnusedOverworldCallback;
+static u8 sPlayerTradingStates[4];
// This callback is called with a player's key code. It then returns an
// adjusted key code, effectively intercepting the input before anything
// can process it.
-IWRAM_DATA static u16 (*sPlayerKeyInterceptCallback)(u32);
-IWRAM_DATA static bool8 sUnknown_03000E18;
-IWRAM_DATA static u8 sRfuKeepAliveTimer;
-IWRAM_DATA static u32 sUnusedVar;
+static u16 (*sPlayerKeyInterceptCallback)(u32);
+static bool8 sUnknown_03000E18;
+static u8 sRfuKeepAliveTimer;
+static u32 sUnusedVar;
// IWRAM common
u16 *gBGTilemapBuffers1;
diff --git a/src/party_menu.c b/src/party_menu.c
index f20bdff51..dd0a4dabd 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -1596,8 +1596,8 @@ static void InitPartyMenu(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, M
gUnknown_0203CEC4->task = task;
gUnknown_0203CEC4->exitCallback = NULL;
gUnknown_0203CEC4->unk8_1 = 0;
- gUnknown_0203CEC4->unk8_2 = 0xFF;
- gUnknown_0203CEC4->unk9_0 = 0xFF;
+ gUnknown_0203CEC4->unk8_2 = 0x7F;
+ gUnknown_0203CEC4->unk9_0 = 0x7F;
if (a == 4)
gUnknown_0203CEC4->unk8_0 = TRUE;
@@ -1820,7 +1820,7 @@ static bool8 AllocPartyMenuBg(void)
static bool8 AllocPartyMiscGfx(void)
{
- int sizeout;
+ u32 sizeout;
switch (gUnknown_0203CEC4->data[0])
{
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c
index 1eb8c0953..dc69b5d54 100755
--- a/src/pokedex_area_screen.c
+++ b/src/pokedex_area_screen.c
@@ -763,11 +763,11 @@ static void sub_813D6B4(void)
static void CreateAreaMarkerSprites(void)
{
u8 spriteId;
- static IWRAM_DATA s16 x;
- static IWRAM_DATA s16 y;
- static IWRAM_DATA s16 i;
- static IWRAM_DATA s16 mapSecId;
- static IWRAM_DATA s16 numSprites;
+ static s16 x;
+ static s16 y;
+ static s16 i;
+ static s16 mapSecId;
+ static s16 numSprites;
LoadSpriteSheet(&sAreaMarkerSpriteSheet);
LoadSpritePalette(&sAreaMarkerSpritePalette);
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index 52fa6db51..340327475 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -177,9 +177,9 @@ static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite);
#define STRUCT_COUNT 4
// IWRAM bss
-static IWRAM_DATA struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT];
-static IWRAM_DATA u8 sUnknown_03001270;
-static IWRAM_DATA bool32 sUnknown_03001274;
+static struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT];
+static u8 sUnknown_03001270;
+static bool32 sUnknown_03001274;
// const rom data
static const u8 sSpeciesToBackAnimSet[] =
@@ -861,16 +861,27 @@ u8 GetSpeciesBackAnimSet(u16 species)
}
#define tState data[0]
-#define tPtrLO data[1]
-#define tPtrHI data[2]
+#define tPtrHi data[1]
+#define tPtrLo data[2]
#define tAnimId data[3]
#define tSaved0 data[4]
#define tSaved2 data[5]
+// BUG: In vanilla, tPtrLo is read as an s16, so if bit 15 of the
+// address were to be set it would cause the pointer to be read
+// as 0xFFFFXXXX instead of the desired 0x02YYXXXX.
+// By dumb luck, this is not an issue in vanilla. However,
+// changing the link order revealed this bug.
+#if MODERN
+#define ANIM_SPRITE(taskId) ((struct Sprite *)((gTasks[taskId].tPtrHi << 16) | ((u16)gTasks[taskId].tPtrLo)))
+#else
+#define ANIM_SPRITE(taskId) ((struct Sprite *)((gTasks[taskId].tPtrHi << 16) | (gTasks[taskId].tPtrLo)))
+#endif //MODERN
+
static void Task_HandleMonAnimation(u8 taskId)
{
u32 i;
- struct Sprite *sprite = (struct Sprite*)(u32)((gTasks[taskId].tPtrLO << 0x10) | (gTasks[taskId].tPtrHI));
+ struct Sprite *sprite = ANIM_SPRITE(taskId);
if (gTasks[taskId].tState == 0)
{
@@ -900,8 +911,8 @@ static void Task_HandleMonAnimation(u8 taskId)
void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId)
{
u8 taskId = CreateTask(Task_HandleMonAnimation, 128);
- gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10;
- gTasks[taskId].tPtrHI = (u32)(sprite);
+ gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrLo = (u32)(sprite);
gTasks[taskId].tAnimId = frontAnimId;
}
@@ -916,8 +927,8 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
u8 nature, taskId, animId, battlerId;
taskId = CreateTask(Task_HandleMonAnimation, 128);
- gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10;
- gTasks[taskId].tPtrHI = (u32)(sprite);
+ gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrLo = (u32)(sprite);
battlerId = sprite->data[0];
nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]);
@@ -927,8 +938,8 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
}
#undef tState
-#undef tPtrLO
-#undef tPtrHI
+#undef tPtrHi
+#undef tPtrLo
#undef tAnimId
#undef tSaved0
#undef tSaved2
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
index 699862883..61f899801 100755
--- a/src/pokemon_jump.c
+++ b/src/pokemon_jump.c
@@ -269,8 +269,8 @@ int sub_802E354(int, u16, u16);
void sub_802E3A8(void);
void sub_802D12C(u8 taskId);
-extern struct PokemonJump1 *gUnknown_02022CFC;
-extern struct PokemonJump2 *gUnknown_02022D00;
+EWRAM_DATA struct PokemonJump1 *gUnknown_02022CFC = NULL;
+EWRAM_DATA struct PokemonJump2 *gUnknown_02022D00 = NULL;
const struct PokemonJumpMons gPkmnJumpSpecies[] =
{
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 0ddad55a6..c5cd71d15 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -443,7 +443,7 @@ enum
#define TAG_TILE_1 0x1
// IWRAM bss
-IWRAM_DATA static u32 gUnknown_03000F78[98];
+static u32 gUnknown_03000F78[98];
// EWRAM DATA
EWRAM_DATA static u8 sPreviousBoxOption = 0;
@@ -464,6 +464,9 @@ EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0;
EWRAM_DATA static bool8 sCanOnlyMove = 0;
// This file's functions.
+#if !defined(NONMATCHING) && MODERN
+#define static
+#endif
static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr);
static void Cb2_EnterPSS(u8 boxOption);
static u8 GetCurrentBoxOption(void);
diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c
index 94dab60bb..4422a70e3 100644
--- a/src/pokenav_main_menu.c
+++ b/src/pokenav_main_menu.c
@@ -64,16 +64,16 @@ static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide);
static void HideLeftHeaderSprites(bool32 isOnRightSide);
static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide);
static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide);
-static void MoveLeftHeader(struct Sprite *sprite, int startX, int endX, int duration);
+static void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 duration);
static void SpriteCB_MoveLeftHeader(struct Sprite *sprite);
static void InitPokenavMainMenuResources(void);
static void InitHoennMapHeaderSprites(void);
static void sub_81C7B74(void);
-static u32 LoopedTask_ScrollMenuHeaderDown(int a0);
-static u32 LoopedTask_ScrollMenuHeaderUp(int a0);
+static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0);
+static u32 LoopedTask_ScrollMenuHeaderUp(s32 a0);
static void sub_81C7BF8(u32 a0);
static void SpriteCB_SpinningPokenav(struct Sprite* sprite);
-static u32 LoopedTask_InitPokenavMenu(int a0);
+static u32 LoopedTask_InitPokenavMenu(s32 a0);
const u16 gSpinningPokenavPaletteData[] = INCBIN_U16("graphics/pokenav/icon2.gbapal");
const u32 gSpinningPokenavGfx[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz");
@@ -360,7 +360,7 @@ bool32 WaitForPokenavShutdownFade(void)
return TRUE;
}
-static u32 LoopedTask_InitPokenavMenu(int a0)
+static u32 LoopedTask_InitPokenavMenu(s32 a0)
{
struct PokenavMainMenuResources *structPtr;
@@ -440,7 +440,7 @@ bool32 MainMenuLoopedTaskIsBusy(void)
return IsLoopedTaskActive(structPtr->currentTaskId);
}
-static u32 LoopedTask_ScrollMenuHeaderDown(int a0)
+static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0)
{
switch (a0)
{
@@ -461,7 +461,7 @@ static u32 LoopedTask_ScrollMenuHeaderDown(int a0)
}
}
-static u32 LoopedTask_ScrollMenuHeaderUp(int a0)
+static u32 LoopedTask_ScrollMenuHeaderUp(s32 a0)
{
if (ChangeBgY(0, 384, 2) <= 0)
{
@@ -637,7 +637,7 @@ _081C7AAE:\n\
.syntax divided");
}
-void sub_81C7AC0(int a0)
+void sub_81C7AC0(s32 a0)
{
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
@@ -708,7 +708,7 @@ static void sub_81C7BF8(u32 windowId)
static void InitPokenavMainMenuResources(void)
{
- int i;
+ s32 i;
u8 spriteId;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
@@ -758,13 +758,13 @@ void ResumeSpinningPokenavSprite(void)
static void InitHoennMapHeaderSprites(void)
{
- int i, spriteId;
+ s32 i, spriteId;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
LoadCompressedSpriteSheet(&sPokenavHoennMapLeftHeaderSpriteSheet);
AllocSpritePalette(1);
AllocSpritePalette(2);
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
{
spriteId = CreateSprite(&sPokenavLeftHeaderHoennMapSpriteTemplate, 0, 0, 1);
structPtr->leftHeaderSprites[i] = &gSprites[spriteId];
@@ -859,10 +859,10 @@ void sub_81C7FC4(u32 arg0, bool32 arg1)
void sub_81C7FDC(void)
{
- int i;
+ s32 i;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
{
structPtr->leftHeaderSprites[i]->invisible = TRUE;
structPtr->submenuLeftHeaderSprites[i]->invisible = TRUE;
@@ -881,7 +881,7 @@ bool32 sub_81C8010(void)
static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
{
- int start, end, i;
+ s32 start, end, i;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
if (!isOnRightSide)
@@ -889,7 +889,7 @@ static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
else
start = 256, end = 160;
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
{
structPtr->leftHeaderSprites[i]->pos1.y = startY;
MoveLeftHeader(structPtr->leftHeaderSprites[i], start, end, 12);
@@ -898,7 +898,7 @@ static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
{
- int start, end, i;
+ s32 start, end, i;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
if (!isOnRightSide)
@@ -906,7 +906,7 @@ static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
else
start = 256, end = 192;
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
{
structPtr->submenuLeftHeaderSprites[i]->pos1.y = startY;
MoveLeftHeader(structPtr->submenuLeftHeaderSprites[i], start, end, 12);
@@ -915,7 +915,7 @@ static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
static void HideLeftHeaderSprites(bool32 isOnRightSide)
{
- int start, end, i;
+ s32 start, end, i;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
if (!isOnRightSide)
@@ -923,7 +923,7 @@ static void HideLeftHeaderSprites(bool32 isOnRightSide)
else
start = 192, end = 256;
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
{
MoveLeftHeader(structPtr->leftHeaderSprites[i], start, end, 12);
}
@@ -931,7 +931,7 @@ static void HideLeftHeaderSprites(bool32 isOnRightSide)
static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
{
- int start, end, i;
+ s32 start, end, i;
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
if (!isOnRightSide)
@@ -939,13 +939,13 @@ static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
else
start = 192, end = 256;
- for (i = 0; i < (int)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
+ for (i = 0; i < (s32)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
{
MoveLeftHeader(structPtr->submenuLeftHeaderSprites[i], start, end, 12);
}
}
-static void MoveLeftHeader(struct Sprite *sprite, int startX, int endX, int duration)
+static void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 duration)
{
sprite->pos1.x = startX;
sprite->data[0] = startX * 16;
diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c
index dcdbacfb9..dd91e930a 100644
--- a/src/pokenav_unk_10.c
+++ b/src/pokenav_unk_10.c
@@ -36,8 +36,8 @@ extern const u8 gText_RibbonsF700[];
extern const u8 *const gRibbonDescriptionPointers[][2];
extern const u8 *const gGiftRibbonDescriptionPointers[][2];
-extern u32 gUnknown_030012C0;
-extern u32 gUnknown_030012C4;
+static u32 gUnknown_030012C0;
+static u32 gUnknown_030012C4;
void sub_81D0E84(struct Pokenav10Struct2 *structPtr);
void sub_81D0FF0(struct Pokenav10Struct2 *structPtr);
diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c
index 404743345..d7afada49 100755
--- a/src/pokenav_unk_3.c
+++ b/src/pokenav_unk_3.c
@@ -34,7 +34,7 @@ static u32 sub_81CABFC(struct Pokenav3Struct *);
static u32 sub_81CAC04(struct Pokenav3Struct *);
static u32 sub_81CACB8(struct Pokenav3Struct *);
static u32 sub_81CACF8(struct Pokenav3Struct *);
-static u32 sub_81CAD20(int);
+static u32 sub_81CAD20(s32);
static bool32 sub_81CB1D0(void);
extern const u8 gUnknown_08622508[];
@@ -190,7 +190,7 @@ static u32 sub_81CACF8(struct Pokenav3Struct *state)
return 0;
}
-static u32 sub_81CAD20(int taskState)
+static u32 sub_81CAD20(s32 taskState)
{
int i, j;
struct Pokenav3Struct *state = GetSubstructPtr(5);
diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c
index 6fa76daf2..cd9651580 100755
--- a/src/pokenav_unk_4.c
+++ b/src/pokenav_unk_4.c
@@ -50,7 +50,7 @@ struct Pokenav4Struct
};
static bool32 sub_81CB310(void);
-static u32 sub_81CB324(int);
+static u32 sub_81CB324(s32);
static void sub_81CBBB8(void);
static void sub_81CBC1C(void);
static void sub_81CC2B4(void);
@@ -156,7 +156,7 @@ static bool32 sub_81CB310(void)
return IsLoopedTaskActive(state->unk4);
}
-static u32 sub_81CB324(int taskState)
+static u32 sub_81CB324(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -229,7 +229,7 @@ static u32 sub_81CB324(int taskState)
}
}
-u32 sub_81CB510(int taskState)
+u32 sub_81CB510(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -266,7 +266,7 @@ u32 sub_81CB510(int taskState)
return 4;
}
-u32 sub_81CB588(int taskState)
+u32 sub_81CB588(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -303,7 +303,7 @@ u32 sub_81CB588(int taskState)
return 4;
}
-u32 sub_81CB600(int taskState)
+u32 sub_81CB600(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -340,7 +340,7 @@ u32 sub_81CB600(int taskState)
return 4;
}
-u32 sub_81CB678(int taskState)
+u32 sub_81CB678(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -377,7 +377,7 @@ u32 sub_81CB678(int taskState)
return 4;
}
-u32 sub_81CB6F0(int taskState)
+u32 sub_81CB6F0(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -396,7 +396,7 @@ u32 sub_81CB6F0(int taskState)
return 4;
}
-u32 sub_81CB734(int taskState)
+u32 sub_81CB734(s32 taskState)
{
struct Pokenav4Struct *state;
u16 var0;
@@ -408,7 +408,7 @@ u32 sub_81CB734(int taskState)
return 4;
}
-u32 sub_81CB75C(int taskState)
+u32 sub_81CB75C(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -427,7 +427,7 @@ u32 sub_81CB75C(int taskState)
return 4;
}
-u32 sub_81CB7A0(int taskState)
+u32 sub_81CB7A0(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -459,7 +459,7 @@ u32 sub_81CB7A0(int taskState)
return 4;
}
-u32 sub_81CB824(int taskState)
+u32 sub_81CB824(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -485,7 +485,7 @@ u32 sub_81CB824(int taskState)
return 4;
}
-u32 sub_81CB888(int taskState)
+u32 sub_81CB888(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
u32 result = 0;
@@ -549,7 +549,7 @@ u32 sub_81CB888(int taskState)
return result;
}
-u32 sub_81CB93C(int taskState)
+u32 sub_81CB93C(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -578,7 +578,7 @@ u32 sub_81CB93C(int taskState)
return 4;
}
-u32 sub_81CB9C8(int taskState)
+u32 sub_81CB9C8(s32 taskState)
{
int index;
int var0;
@@ -617,7 +617,7 @@ u32 sub_81CB9C8(int taskState)
return 4;
}
-u32 sub_81CBA68(int taskState)
+u32 sub_81CBA68(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -643,7 +643,7 @@ u32 sub_81CBA68(int taskState)
return 4;
}
-u32 sub_81CBAD4(int taskState)
+u32 sub_81CBAD4(s32 taskState)
{
int index;
int var0;
@@ -682,7 +682,7 @@ u32 sub_81CBAD4(int taskState)
return 4;
}
-u32 sub_81CBB74(int taskState)
+u32 sub_81CBB74(s32 taskState)
{
switch (taskState)
{
diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c
index eccc200d5..5f24fd07f 100755
--- a/src/pokenav_unk_5.c
+++ b/src/pokenav_unk_5.c
@@ -42,8 +42,8 @@ struct CityZoomPic
static u32 sub_81CC568(struct Pokenav5Struct *);
static u32 sub_81CC5B4(struct Pokenav5Struct *);
static u32 sub_81CC5DC(struct Pokenav5Struct *);
-static u32 sub_81CC6F4(int);
-static u32 sub_81CCD34(int);
+static u32 sub_81CC6F4(s32);
+static u32 sub_81CCD34(s32);
static bool32 sub_81CC6BC(void);
static void sub_81CC9EC(void);
static void sub_81CC9C0(void);
@@ -202,7 +202,7 @@ static bool8 sub_81CC6D0(void)
return gSaveBlock2Ptr->regionMapZoom == 1;
}
-static u32 sub_81CC6F4(int taskState)
+static u32 sub_81CC6F4(s32 taskState)
{
int var0;
struct RegionMap *regionMap;
@@ -518,7 +518,7 @@ static bool32 sub_81CCD24(void)
return FuncIsActiveLoopedTask(sub_81CCD34);
}
-static u32 sub_81CCD34(int taskState)
+static u32 sub_81CCD34(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
if (taskState < (int)ARRAY_COUNT(gUnknown_08623118))
diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c
new file mode 100644
index 000000000..af48fbb1f
--- /dev/null
+++ b/src/pokenav_unk_7.c
@@ -0,0 +1,3 @@
+#include "global.h"
+
+BSS_DATA u8 gUnknown_030012BC;
diff --git a/src/random.c b/src/random.c
index f0b2d9e5f..b570a7bc3 100644
--- a/src/random.c
+++ b/src/random.c
@@ -8,8 +8,8 @@ EWRAM_DATA static u8 sUnknown = 0;
EWRAM_DATA static u32 sRandCount = 0;
// IWRAM common
-IWRAM_DATA u32 gRngValue;
-IWRAM_DATA u32 gRng2Value;
+u32 gRngValue;
+u32 gRng2Value;
u16 Random(void)
{
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 85b52e478..6cb145c80 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -82,21 +82,21 @@ union PlayerRecords
// Static RAM declarations
-static IWRAM_DATA bool8 gUnknown_03001130;
-static IWRAM_DATA struct SecretBase *sSecretBasesSave;
-static IWRAM_DATA TVShow *sTvShowsSave;
-static IWRAM_DATA PokeNews *sPokeNewsSave;
-static IWRAM_DATA OldMan *sOldManSave;
-static IWRAM_DATA struct EasyChatPair *sEasyChatPairsSave;
-static IWRAM_DATA struct RecordMixingDayCareMail *gUnknown_03001148;
-static IWRAM_DATA void *sBattleTowerSave;
-static IWRAM_DATA LilycoveLady *sLilycoveLadySave;
-static IWRAM_DATA void *sApprenticesSave;
-static IWRAM_DATA void *sBattleTowerSave_Duplicate;
-static IWRAM_DATA u32 sRecordStructSize;
-static IWRAM_DATA u8 gUnknown_03001160;
-static IWRAM_DATA u32 filler_03001164;
-static IWRAM_DATA struct PlayerHallRecords *gUnknown_03001168[3];
+static bool8 gUnknown_03001130;
+static struct SecretBase *sSecretBasesSave;
+static TVShow *sTvShowsSave;
+static PokeNews *sPokeNewsSave;
+static OldMan *sOldManSave;
+static struct EasyChatPair *sEasyChatPairsSave;
+static struct RecordMixingDayCareMail *gUnknown_03001148;
+static void *sBattleTowerSave;
+static LilycoveLady *sLilycoveLadySave;
+static void *sApprenticesSave;
+static void *sBattleTowerSave_Duplicate;
+static u32 sRecordStructSize;
+static u8 gUnknown_03001160;
+static u32 filler_03001164;
+static struct PlayerHallRecords *gUnknown_03001168[3];
static EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02039F9C = {0};
static EWRAM_DATA union PlayerRecords *sReceivedRecords = NULL;
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index ac97dfcd6..9e03d57f6 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -100,8 +100,8 @@ EWRAM_DATA static u8 sApprenticeId = 0;
EWRAM_DATA static u16 sEasyChatSpeech[6] = {0};
EWRAM_DATA static u8 sBattleOutcome = 0;
-IWRAM_DATA static u8 sRecordMixFriendLanguage;
-IWRAM_DATA static u8 sApprenticeLanguage;
+static u8 sRecordMixFriendLanguage;
+static u8 sApprenticeLanguage;
// this file's functions
static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2);
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/reset_save_heap.c b/src/reset_save_heap.c
index 95d63a323..beba742f5 100644
--- a/src/reset_save_heap.c
+++ b/src/reset_save_heap.c
@@ -14,7 +14,7 @@ void sub_81700F8(void)
imeBackup = REG_IME;
REG_IME = 0;
- RegisterRamReset(0x00000001);
+ RegisterRamReset(RESET_EWRAM);
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_FORCED_BLANK);
REG_IME = imeBackup;
gMain.inBattle = FALSE;
diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c
index a3707017e..42817fc2b 100644
--- a/src/rom_8034C54.c
+++ b/src/rom_8034C54.c
@@ -43,9 +43,9 @@ static bool32 SharesPalWithAnyActive(u32 id);
static void sub_8035648(void);
// iwram
-static IWRAM_DATA s32 gUnknown_03000DD4;
-static IWRAM_DATA s32 gUnknown_03000DD8;
-static IWRAM_DATA s32 gUnknown_03000DDC;
+static s32 gUnknown_03000DD4;
+static s32 gUnknown_03000DD8;
+static s32 gUnknown_03000DDC;
// ewram
static EWRAM_DATA struct UnkStruct1 *gUnknown_02022E10 = {0};
diff --git a/src/roulette.c b/src/roulette.c
index 25c079cda..662522aae 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -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)(gUnknown_0203AB88->var86));
+ gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / (float)(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)(gUnknown_0203AB88->var84));
+ gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / (float)(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..f1f04a73a 100755
--- a/src/roulette_util.c
+++ b/src/roulette_util.c
@@ -408,7 +408,8 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend)
}
}
break;
- case 2: // Flip back and forth
+ case (MODERN ? -2 : 2): // Flip back and forth
+ // This code is never reached in vanilla
if (pulseBlendPalette->fadeDirection)
pulseBlendPalette->blendCoeff = 0;
else
diff --git a/src/rtc.c b/src/rtc.c
index 37a06fe7e..b135a675a 100644
--- a/src/rtc.c
+++ b/src/rtc.c
@@ -4,10 +4,10 @@
#include "text.h"
// iwram bss
-IWRAM_DATA static u16 sErrorStatus;
-IWRAM_DATA static struct SiiRtcInfo sRtc;
-IWRAM_DATA static u8 sProbeResult;
-IWRAM_DATA static u16 sSavedIme;
+static u16 sErrorStatus;
+static struct SiiRtcInfo sRtc;
+static u8 sProbeResult;
+static u16 sSavedIme;
// iwram common
struct Time gLocalTime;
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.c b/src/script.c
index 27476dba3..34484561c 100644
--- a/src/script.c
+++ b/src/script.c
@@ -10,12 +10,12 @@
extern const u8* gUnknown_020375C0;
// ewram bss
-IWRAM_DATA static u8 sScriptContext1Status;
-IWRAM_DATA static u32 sUnusedVariable1;
-IWRAM_DATA static struct ScriptContext sScriptContext1;
-IWRAM_DATA static u32 sUnusedVariable2;
-IWRAM_DATA static struct ScriptContext sScriptContext2;
-IWRAM_DATA static bool8 sScriptContext2Enabled;
+static u8 sScriptContext1Status;
+static u32 sUnusedVariable1;
+static struct ScriptContext sScriptContext1;
+static u32 sUnusedVariable2;
+static struct ScriptContext sScriptContext2;
+static bool8 sScriptContext2Enabled;
extern ScrCmdFunc gScriptCmdTable[];
extern ScrCmdFunc gScriptCmdTableEnd[];
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/secret_base.c b/src/secret_base.c
index ac35a090a..12cb8cd61 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -71,7 +71,7 @@ static EWRAM_DATA struct SecretBaseRegistryMenu *sRegistryMenu = NULL;
static void Task_ShowSecretBaseRegistryMenu(u8 taskId);
static void BuildRegistryMenuItems(u8 taskId);
-static void RegistryMenu_OnCursorMove(int unused, bool8 flag, struct ListMenu *menu);
+static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu);
static void FinalizeRegistryMenu(u8 taskId);
static void AddRegistryMenuScrollArrows(u8 taskId);
static void HandleRegistryMenuInput(u8 taskId);
@@ -932,7 +932,7 @@ static void BuildRegistryMenuItems(u8 taskId)
gMultiuseListMenuTemplate.maxShowed = data[3];
}
-static void RegistryMenu_OnCursorMove(int unused, bool8 flag, struct ListMenu *menu)
+static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu)
{
if (flag != TRUE)
PlaySE(SE_SELECT);
diff --git a/src/shop.c b/src/shop.c
index 7f1a8f27e..bf15568fb 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -87,8 +87,8 @@ static void Task_ReturnToItemListAfterItemPurchase(u8 taskId);
static void Task_ReturnToItemListAfterDecorationPurchase(u8 taskId);
static void Task_HandleShopMenuBuy(u8 taskId);
static void Task_HandleShopMenuSell(u8 taskId);
-static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, struct ListMenu *list);
-static void BuyMenuPrintPriceInList(u8 windowId, int item, u8 y);
+static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list);
+static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y);
static const struct YesNoFuncTable sShopPurchaseYesNoFuncs =
{
@@ -521,7 +521,7 @@ static void BuyMenuSetListEntry(struct ListMenuItem *menuItem, u16 item, u8 *nam
menuItem->id = item;
}
-static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, struct ListMenu *list)
+static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list)
{
const u8 *description;
if (onInit != TRUE)
@@ -550,7 +550,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, s
BuyMenuPrint(2, description, 3, 1, 0, 0);
}
-static void BuyMenuPrintPriceInList(u8 windowId, int item, u8 y)
+static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y)
{
u8 x;
diff --git a/src/slot_machine.c b/src/slot_machine.c
index b853daa39..003ac3327 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -350,7 +350,7 @@ static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL;
static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL;
// IWRAM bss
-static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26];
+static struct SpriteFrameImage *gUnknown_03001188[26];
// Const rom data.
extern const struct UnkStruct1 *const gUnknown_083ED048[];
diff --git a/src/sound.c b/src/sound.c
index 16f024858..dba4354df 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -19,11 +19,11 @@ EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL;
EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0;
// iwram bss
-IWRAM_DATA static u16 sCurrentMapMusic;
-IWRAM_DATA static u16 sNextMapMusic;
-IWRAM_DATA static u8 sMapMusicState;
-IWRAM_DATA static u8 sMapMusicFadeInSpeed;
-IWRAM_DATA static u16 sFanfareCounter;
+static u16 sCurrentMapMusic;
+static u16 sNextMapMusic;
+static u8 sMapMusicState;
+static u8 sMapMusicFadeInSpeed;
+static u16 sFanfareCounter;
// iwram common
bool8 gDisableMusic;
diff --git a/src/sprite.c b/src/sprite.c
index d2ea7889c..e25eac62e 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -285,10 +285,10 @@ static const struct OamDimensions sOamDimensions[3][4] =
};
// iwram bss
-IWRAM_DATA static u16 sSpriteTileRangeTags[MAX_SPRITES];
-IWRAM_DATA static u16 sSpriteTileRanges[MAX_SPRITES * 2];
-IWRAM_DATA static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT];
-IWRAM_DATA static u16 sSpritePaletteTags[16];
+static u16 sSpriteTileRangeTags[MAX_SPRITES];
+static u16 sSpriteTileRanges[MAX_SPRITES * 2];
+static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT];
+static u16 sSpritePaletteTags[16];
// iwram common
u32 gOamMatrixAllocBitmap;
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 886daa45a..5524d407b 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -51,7 +51,7 @@ void sub_81346DC(struct Sprite *sprite);
void sub_813473C(struct Sprite *sprite);
void StarterPokemonSpriteCallback(struct Sprite *sprite);
-static IWRAM_DATA u16 sStarterChooseWindowId;
+static u16 sStarterChooseWindowId;
// .rodata
const u16 gBirchBagGrassPal[][16] =
diff --git a/src/trade.c b/src/trade.c
index f7650ff03..94accc43c 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -158,6 +158,9 @@ static EWRAM_DATA struct {
/*0xFE*/ u8 unk_FE;
} *gUnknown_020322A0 = {NULL};
+#if !defined(NONMATCHING) && MODERN
+#define static
+#endif
static bool32 sub_8077260(void);
static void sub_80773D0(void);
static void sub_807811C(void);
@@ -2779,7 +2782,7 @@ static void sub_8079398(void)
}
}
-static void DisplayMessageAndContinueTask(void)
+static void Wait2SecondsAndCreateYesNoMenu(void)
{
gUnknown_0203229C->unk_A8++;
@@ -2918,7 +2921,7 @@ static void sub_80795AC(void)
sub_80781C8();
break;
case 14:
- DisplayMessageAndContinueTask();
+ Wait2SecondsAndCreateYesNoMenu();
break;
case 15:
sub_8079034();
diff --git a/src/tv.c b/src/tv.c
index dfd26fd0d..b4c8463fd 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;
@@ -69,10 +69,9 @@ EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0;
EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {};
// Static ROM declarations
-
-extern const u8 *const sTVBravoTrainerTextGroup[];
-extern const u8 *const sTVBravoTrainerBattleTowerTextGroup[];
-
+#if !defined(NONMATCHING) && MODERN
+#define static
+#endif
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;