summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/anim/fire_2.c1
-rw-r--r--src/battle/anim/ghost.c3
-rw-r--r--src/battle/anim/heal_bell.c2
-rw-r--r--src/battle/anim/musical.c2
-rw-r--r--src/battle/anim/roots.c8
-rw-r--r--src/battle_controller_link_opponent.c6
-rw-r--r--src/battle_controller_link_partner.c16
-rw-r--r--src/battle_controller_opponent.c8
-rw-r--r--src/battle_controller_player.c1
-rw-r--r--src/battle_controller_safari.c2
-rw-r--r--src/battle_controller_wally.c4
-rw-r--r--src/battle_gfx_sfx_util.c2
-rw-r--r--src/battle_interface.c2
-rw-r--r--src/berry_blender.c16
-rw-r--r--src/daycare.c10
-rw-r--r--src/debug/sound_check_menu.c4
-rw-r--r--src/egg_hatch.c3
-rw-r--r--src/evolution_scene.c26
-rw-r--r--src/field_weather_effects.c2
-rw-r--r--src/item_menu.c34
-rw-r--r--src/libs/m4a.c1
-rw-r--r--src/main.c20
-rw-r--r--src/main_menu.c7
-rw-r--r--src/pokenav_before.c2
-rw-r--r--src/reset_rtc_screen.c2
-rw-r--r--src/roulette_gfx.c10
-rw-r--r--src/save.c8
-rw-r--r--src/trade.c2
28 files changed, 88 insertions, 116 deletions
diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c
index 7ebd7dd87..1d69b2c1c 100644
--- a/src/battle/anim/fire_2.c
+++ b/src/battle/anim/fire_2.c
@@ -467,6 +467,7 @@ static void sub_80D54E0(u8 taskId) // animate Move_ERUPTION?
break;
default:
+ break;
}
}
diff --git a/src/battle/anim/ghost.c b/src/battle/anim/ghost.c
index c4bbe8458..d2db76975 100644
--- a/src/battle/anim/ghost.c
+++ b/src/battle/anim/ghost.c
@@ -1145,7 +1145,8 @@ static void sub_80DF0B8(struct Sprite *sprite)
if (++coeffB > 16)
coeffB = 16;
- if (--(s16)coeffA < 0)
+ --coeffA;
+ if ((s16)coeffA < 0)
coeffA = 0;
REG_BLDALPHA = (coeffB << 8) | coeffA;
diff --git a/src/battle/anim/heal_bell.c b/src/battle/anim/heal_bell.c
index e191460ea..94bf490c2 100644
--- a/src/battle/anim/heal_bell.c
+++ b/src/battle/anim/heal_bell.c
@@ -76,7 +76,7 @@ void sub_80D1ADC(u8 taskId)
{
int i;
u8 sp[8];
- void* src;
+ const void* src;
void* dest;
void* what;
sp[0] = IndexOfSpritePaletteTag(0x27DE);
diff --git a/src/battle/anim/musical.c b/src/battle/anim/musical.c
index 1e559d975..1a58c4daf 100644
--- a/src/battle/anim/musical.c
+++ b/src/battle/anim/musical.c
@@ -291,7 +291,7 @@ void sub_80CECE8(struct Sprite* sprite)
if (GetBattlerSide(gBattleAnimAttacker) == 1)
{
a = gBattleAnimArgs[1];
- (u16)gBattleAnimArgs[1] = -a;
+ *(u16*)&gBattleAnimArgs[1] = -a;
}
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1];
diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c
index e0cc441aa..245f201dd 100644
--- a/src/battle/anim/roots.c
+++ b/src/battle/anim/roots.c
@@ -7,10 +7,10 @@ extern s16 gBattleAnimArgs[];
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
-IWRAM_DATA u32 filler_03000724;
-IWRAM_DATA u16 gUnknown_03000728[4];
-IWRAM_DATA u16 gUnknown_03000730[6];
-IWRAM_DATA u32 filler_0300073c;
+BSS_DATA u32 filler_03000724;
+BSS_DATA u16 gUnknown_03000728[4];
+BSS_DATA u16 gUnknown_03000730[6];
+BSS_DATA u32 filler_0300073c;
void sub_80CB59C(struct Sprite* sprite);
void sub_80CB620(struct Sprite *sprite);
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index d514935cf..e8c7b7bf0 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -55,7 +55,6 @@ extern MainCallback gPreBattleCallback1;
extern struct MusicPlayerInfo gMPlay_BGM;
extern u8 sub_8077F68();
-extern u8 GetBattlerSubpriority();
extern u8 GetBattlerPosition(u8);
extern void BattleLoadOpponentMonSprite(struct Pokemon *, u8);
extern void sub_8037A74(void);
@@ -64,7 +63,6 @@ extern void sub_8037E30(void);
extern void sub_80312F0(struct Sprite *);
extern u8 StartSendOutMonAnimation();
extern void sub_8032A08();
-extern void sub_8043DB0();
extern void sub_8037BBC(void);
extern s32 sub_803FC34(u16);
extern void sub_8031A6C(u16, u8);
@@ -78,15 +76,12 @@ extern void sub_8010384(struct Sprite *);
extern void sub_8037B78(void);
extern u8 sub_8031720();
extern bool8 mplay_80342A4(u8);
-extern void DoMoveAnim();
extern void sub_80326EC();
extern void sub_8031F24(void);
extern void sub_80324BC();
extern void BufferStringBattle();
extern void sub_8037C2C(void);
-extern void sub_8043D84();
extern void sub_8037B24(void);
-extern void sub_8045A5C();
extern void sub_8037FAC(void);
extern void move_anim_start_t2_for_situation();
extern void dp01t_0F_4_move_anim(void);
@@ -99,7 +94,6 @@ extern void nullsub_47(void);
extern bool8 IsDoubleBattle(void);
extern void sub_8037840(void);
extern void sub_8031B74();
-extern u8 IsBankSpritePresent();
extern u8 move_anim_start_t3();
extern void sub_8037FD8(void);
extern void sub_8037F34(void);
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 5dbde3e83..16e0cb6e8 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -58,17 +58,14 @@ extern u8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern u8 move_anim_start_t3();
-extern u8 IsBankSpritePresent();
extern void sub_8044CA0(u8);
extern void sub_8030E38(struct Sprite *);
extern void StartBattleIntroAnim();
extern void sub_8047858();
extern void move_anim_start_t2_for_situation();
-extern void sub_8043D84();
extern void BufferStringBattle();
extern void sub_8031F24(void);
extern void sub_80326EC();
-extern void DoMoveAnim();
extern void sub_80324BC();
extern u8 sub_8031720();
extern u8 mplay_80342A4();
@@ -83,21 +80,10 @@ extern u8 StartSendOutMonAnimation();
extern void sub_80312F0(struct Sprite *);
extern u8 CreateInvisibleSpriteWithCallback();
extern void BattleLoadPlayerMonSprite();
-extern u8 GetBattlerSpriteCoord();
extern u8 sub_8077F68();
-extern u8 GetBattlerSubpriority();
extern void nullsub_10();
-extern void sub_8045A5C();
-extern void sub_804777C();
-extern void sub_8043DFC();
-//extern s16 sub_8045C78();
-extern void sub_80440EC();
-extern void HandleLowHpMusicChange();
extern void nullsub_9(u16);
-extern void sub_8043DB0();
-extern void move_anim_start_t4();
extern void c3_0802FDF4(u8);
-extern void sub_8031F88();
extern void c2_8011A1C(void);
// this file's functions
@@ -327,7 +313,7 @@ void sub_811DCA0(void)
sub_8045A5C(gHealthboxIDs[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0);
sub_804777C(gActiveBattler);
sub_8043DFC(gHealthboxIDs[gActiveBattler]);
- (s8)ewram17810[4].unk9 &= ~1;
+ ewram17810[4].unk9 = (s8)ewram17810[4].unk9 & ~1;
gBattleBankFunc[gActiveBattler] = sub_811DBC0;
}
}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 302f6a2f3..a0fd933e7 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -59,15 +59,12 @@ extern bool8 gDoingBattleAnim;
extern u16 gUnknown_02024DE8;
extern u8 gUnknown_02024E68[];
extern MainCallback gPreBattleCallback1;
-extern void (*const gOpponentBufferCommands[])(void);
extern struct MusicPlayerInfo gMPlay_SE1;
extern struct MusicPlayerInfo gMPlay_SE2;
extern struct MusicPlayerInfo gMPlay_BGM;
extern u32 gBattleExecBuffer;
-extern u8 GetBattlerSpriteCoord();
extern u8 sub_8077F68();
-extern u8 GetBattlerSubpriority();
extern void sub_8033018(void);
extern void BattleLoadOpponentMonSprite();
extern u8 GetBattlerPosition(u8);
@@ -76,7 +73,6 @@ extern void sub_80333D4(void);
extern void sub_80312F0(struct Sprite *);
extern u8 StartSendOutMonAnimation();
extern void sub_8032A08();
-extern void sub_8043DB0();
extern void sub_8033160(void);
extern u8 get_trainer_class_pic_index(void);
extern void sub_80313A0(struct Sprite *);
@@ -91,7 +87,6 @@ extern void sub_803311C(void);
extern void sub_8010384(struct Sprite *);
extern bool8 mplay_80342A4(u8);
extern u8 sub_8031720();
-extern void DoMoveAnim();
extern void sub_80326EC();
extern void sub_8031F24(void);
extern void sub_80324BC();
@@ -100,8 +95,6 @@ extern void sub_80331D0(void);
extern void AI_TrySwitchOrUseItem(void);
extern u8 GetBattlerAtPosition(u8);
extern void sub_80330C8(void);
-extern void sub_8043D84();
-extern void sub_8045A5C();
void sub_8033494(void);
extern void move_anim_start_t2_for_situation();
extern void bx_blink_t7(void);
@@ -113,7 +106,6 @@ extern void nullsub_45(void);
extern void sub_8031B74();
extern bool8 IsDoubleBattle(void);
extern void sub_8032E2C(void);
-extern u8 IsBankSpritePresent();
extern u8 move_anim_start_t3();
extern void sub_80334C0(void);
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 9e9848a18..948775cb4 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -106,7 +106,6 @@ extern void sub_802E460(void);
extern void b_link_standby_message(void);
extern void sub_802D18C(void);
extern void sub_802DF18(void);
-extern void BufferStringBattle();
extern void sub_80326EC();
extern void sub_8031F24(void);
extern void sub_80324BC();
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index e547c4a3c..1722925f3 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -45,10 +45,8 @@ extern void LoadPlayerTrainerBankSprite();
extern u8 GetBattlerSubpriority();
extern void sub_80313A0(struct Sprite *);
extern void sub_810BADC(void);
-extern void sub_8045A5C();
extern void StartBattleIntroAnim();
extern void sub_804777C();
-extern void sub_8043DFC();
extern bool8 move_anim_start_t3();
#if ENGLISH
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 807ec1572..493daa3d1 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -64,9 +64,7 @@ extern void Emitcmd35(u8, u16);
extern void nullsub_14(void);
extern void PrepareBagForWallyTutorial(void);
-extern void sub_8045A5C();
extern void sub_804777C();
-extern void sub_8043DFC();
extern bool8 IsDoubleBattle(void);
extern void c3_0802FDF4(u8);
extern void PlayerHandlecmd1(void);
@@ -75,11 +73,9 @@ extern u8 GetBattlerPosition(u8);
extern void sub_80313A0(struct Sprite *);
extern u8 GetBattlerAtPosition(u8);
extern u8 sub_8031720();
-extern void DoMoveAnim();
extern void sub_80326EC();
extern void sub_8031F24(void);
extern void sub_80324BC();
-extern void BufferStringBattle();
extern u8 GetBattlerSide(u8);
extern void sub_80304A8(void);
extern void sub_8047858();
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 80cbed64e..0dc810785 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -94,9 +94,7 @@ const struct SpritePalette gUnknown_0820A4D4[] =
};
extern void c3_0802FDF4(u8);
-extern void sub_80440EC();
extern void sub_804777C();
-extern u8 GetBattlerSpriteCoord();
extern u8 IsBankSpritePresent(u8);
extern u8 sub_8077F68(u8);
extern u8 sub_8077F7C(u8);
diff --git a/src/battle_interface.c b/src/battle_interface.c
index b91db9838..2dcf6d3d4 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -3175,7 +3175,7 @@ s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2)
static void sub_8045D58(u8 a, u8 b)
{
- u8 sp8[7];
+ u8 sp8[8];
u8 r0;
u8 r8;
u8 i;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 85c992d8d..219e65994 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -214,14 +214,14 @@ u16 gUnknown_03004840[10];
struct BerryBlenderData* gBerryBlenderData;
// iwram bss
-IWRAM_DATA s16 gUnknown_03000510[8];
-IWRAM_DATA s16 gUnknown_03000520[6];
-IWRAM_DATA s16 gUnknown_0300052C;
-IWRAM_DATA s16 gUnknown_0300052E;
-IWRAM_DATA s32 gUnknown_03000530[6];
-IWRAM_DATA s32 gUnknown_03000548[5];
-IWRAM_DATA u32 gUnknown_0300055C;
-IWRAM_DATA struct BlenderDebug sBlenderDebug;
+static s16 gUnknown_03000510[8];
+static s16 gUnknown_03000520[6];
+static s16 gUnknown_0300052C;
+static s16 gUnknown_0300052E;
+static s32 gUnknown_03000530[6];
+static s32 gUnknown_03000548[5];
+static u32 gUnknown_0300055C;
+static struct BlenderDebug sBlenderDebug;
// this file's functions
void Blender_SetBankBerryData(u8 bank, u16 itemID);
diff --git a/src/daycare.c b/src/daycare.c
index 1bc2d9ef1..616b1dd22 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -23,11 +23,11 @@
#include "trade.h"
// RAM buffers used to assist with BuildEggMoveset()
-IWRAM_DATA u16 gHatchedEggLevelUpMoves[52];
-IWRAM_DATA u16 gHatchedEggFatherMoves[4];
-IWRAM_DATA u16 gHatchedEggFinalMoves[4];
-IWRAM_DATA u16 gHatchedEggEggMoves[12];
-IWRAM_DATA u16 gHatchedEggMotherMoves[4];
+static u16 gHatchedEggLevelUpMoves[52];
+static u16 gHatchedEggFatherMoves[4];
+static u16 gHatchedEggFinalMoves[4];
+static u16 gHatchedEggEggMoves[12];
+static u16 gHatchedEggMotherMoves[4];
extern u16 gMoveToLearn;
diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c
index ba2439a64..a1a09d8df 100644
--- a/src/debug/sound_check_menu.c
+++ b/src/debug/sound_check_menu.c
@@ -184,8 +184,8 @@ void Task_InitSoundCheckMenu(u8 taskId)
// ideally this should be a multi Coords8 struct, but it wont match when its treated like a struct.
static const u8 gUnknown_083D0300[] = { 1, 1, 1, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17 };
-extern const u8 *const gBGMNames[];
-extern const u8 *const gSENames[];
+static const u8 *const gBGMNames[];
+static const u8 *const gSENames[];
void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText
{
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 876034d2a..0c115ddfe 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -44,9 +44,6 @@ struct EggHatchData* gEggHatchData;
extern const u32 gBattleTextboxTiles[];
extern const u32 gBattleTextboxTilemap[];
extern const u16 gBattleTextboxPalette[]; //palette
-extern const struct SpriteSheet sUnknown_0820A3B0;
-extern const struct SpriteSheet sUnknown_0820A3B8;
-extern const struct SpritePalette sUnknown_0820A3C0;
bool8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u8 sav1_map_get_name(void);
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index a51c08a0c..4b09cefe5 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -113,8 +113,8 @@ static void CB2_BeginEvolutionScene(void)
}
#define tState data[0]
-#define tMonPtrHI data[1]
-#define tMonPtrLO data[2]
+#define tMonPtrLo data[1]
+#define tMonPtrHi data[2]
#define tPreEvoSpecies data[3]
#define tPostEvoSpecies data[4]
#define tCanStop data[5] // in first fast data[5] only checks that
@@ -145,7 +145,11 @@ static void Task_BeginEvolutionScene(u8 taskID)
bool8 canStopEvo;
u8 partyID;
- mon = (struct Pokemon*)(gTasks[taskID].tMonPtrHI | (gTasks[taskID].tMonPtrLO << 0x10));
+#if MODERN
+ mon = (struct Pokemon*)((u16)gTasks[taskID].tMonPtrLo | (gTasks[taskID].tMonPtrHi << 0x10));
+#else
+ mon = (struct Pokemon*)(gTasks[taskID].tMonPtrLo | (gTasks[taskID].tMonPtrHi << 0x10));
+#endif
speciesToEvolve = gTasks[taskID].tPostEvoSpecies;
canStopEvo = gTasks[taskID].tCanStop;
partyID = gTasks[taskID].tPartyID;
@@ -161,8 +165,8 @@ void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStop
{
u8 taskID = CreateTask(Task_BeginEvolutionScene, 0);
gTasks[taskID].tState = 0;
- gTasks[taskID].tMonPtrHI = (u32)(mon);
- gTasks[taskID].tMonPtrLO = (u32)(mon) >> 0x10;
+ gTasks[taskID].tMonPtrLo = (u32)(mon);
+ gTasks[taskID].tMonPtrHi = (u32)(mon) >> 0x10;
gTasks[taskID].tPostEvoSpecies = speciesToEvolve;
gTasks[taskID].tCanStop = canStopEvo;
gTasks[taskID].tPartyID = partyID;
@@ -258,8 +262,8 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gTasks[ID].tState = 0;
gTasks[ID].tPreEvoSpecies = currSpecies;
gTasks[ID].tPostEvoSpecies = speciesToEvolve;
- gTasks[ID].tMonPtrHI = (u32)(mon);
- gTasks[ID].tMonPtrLO = (u32)(mon) >> 0x10;
+ gTasks[ID].tMonPtrLo = (u32)(mon);
+ gTasks[ID].tMonPtrHi = (u32)(mon) >> 0x10;
gTasks[ID].tCanStop = canStopEvo;
gTasks[ID].tLearnsFirstMove = TRUE;
gTasks[ID].tEvoWasStopped = FALSE;
@@ -459,8 +463,8 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri
gTasks[ID].tState = 0;
gTasks[ID].tPreEvoSpecies = currSpecies;
gTasks[ID].tPostEvoSpecies = speciesToEvolve;
- gTasks[ID].tMonPtrHI = (u32)(mon);
- gTasks[ID].tMonPtrLO = (u32)(mon) >> 0x10;
+ gTasks[ID].tMonPtrLo = (u32)(mon);
+ gTasks[ID].tMonPtrHi = (u32)(mon) >> 0x10;
gTasks[ID].tLearnsFirstMove = TRUE;
gTasks[ID].tEvoWasStopped = FALSE;
gTasks[ID].tPartyID = partyID;
@@ -525,7 +529,7 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
static void Task_EvolutionScene(u8 taskID)
{
u32 var;
- struct Pokemon* mon = (struct Pokemon*)(gTasks[taskID].tMonPtrHI | (gTasks[taskID].tMonPtrLO << 0x10));
+ struct Pokemon* mon = (struct Pokemon*)(gTasks[taskID].tMonPtrLo | (gTasks[taskID].tMonPtrHi << 0x10));
// check if B Button was held, so the evolution gets stopped
if (gMain.heldKeys == B_BUTTON && gTasks[taskID].tState == 8 && gTasks[taskID].tBits & TASK_BIT_CAN_STOP)
@@ -881,7 +885,7 @@ static void Task_EvolutionScene(u8 taskID)
static void Task_TradeEvolutionScene(u8 taskID)
{
u32 var;
- struct Pokemon* mon = (struct Pokemon*)(gTasks[taskID].tMonPtrHI | (gTasks[taskID].tMonPtrLO << 0x10));
+ struct Pokemon* mon = (struct Pokemon*)(gTasks[taskID].tMonPtrLo | (gTasks[taskID].tMonPtrHi << 0x10));
switch (gTasks[taskID].tState)
{
diff --git a/src/field_weather_effects.c b/src/field_weather_effects.c
index da3314aa1..db67be4de 100644
--- a/src/field_weather_effects.c
+++ b/src/field_weather_effects.c
@@ -544,7 +544,7 @@ void sub_807E6F0(struct Sprite *sprite, u16 b)
}
}
-extern const struct SpriteSheet sRainSpriteSheet; // defined below
+static const struct SpriteSheet sRainSpriteSheet; // defined below
void LoadRainSpriteSheet(void)
{
diff --git a/src/item_menu.c b/src/item_menu.c
index b69866453..19be2ad5d 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -36,24 +36,12 @@
#include "scanline_effect.h"
#include "menu_helpers.h"
#include "ewram.h"
-
-// External stuff
-extern void FreeAndReserveObjectSpritePalettes(void);
-extern void SetVerticalScrollIndicatorPriority();
-extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16);
-extern void PauseVerticalScrollIndicator();
-extern u8 sub_80F9284(void);
-extern void sub_808B5B4();
-extern u8 sub_80F92F4();
-extern void pal_fill_black(void);
-extern bool8 IsWeatherNotFadingIn(void);
-extern u8 sub_80F931C();
-extern void sub_808A3F8(u8);
-extern void Shop_FadeReturnToMartMenu(void);
-extern void sub_80546B8(u8);
-extern void sub_804E990(u8);
-extern void sub_802E424(u8);
-extern void ScriptUnfreezeEventObjects(void);
+#include "berry_blender.h"
+#include "field_fadetransition.h"
+#include "shop.h"
+#include "field_weather.h"
+#include "pokemon_storage_system.h"
+#include "event_obj_lock.h"
struct UnknownStruct2
{
@@ -762,7 +750,7 @@ static void sub_80A39B8(u16 *a, u8 b)
{
u8 var = b * 2;
- sub_809D104(a, 4, 10, gBagScreenLabels_Tilemap, 0, var, 8, 2);
+ sub_809D104((void *)a, 4, 10, gBagScreenLabels_Tilemap, 0, var, 8, 2);
}
static void sub_80A39E4(u16 *a, u8 b, u8 c, s8 d)
@@ -776,8 +764,8 @@ static void sub_80A39E4(u16 *a, u8 b, u8 c, s8 d)
if (b == 5)
r7 = 2;
- sub_809D104(a, 4, 10, gBagScreenLabels_Tilemap, 8 - c, r2, c, 2);
- sub_809D104(a, c + 4, 10, gBagScreenLabels_Tilemap, 0, r7, 8 - c, 2);
+ sub_809D104((void *)a, 4, 10, gBagScreenLabels_Tilemap, 8 - c, r2, c, 2);
+ sub_809D104((void *)a, c + 4, 10, gBagScreenLabels_Tilemap, 0, r7, 8 - c, 2);
}
else if (d == 1)
{
@@ -785,8 +773,8 @@ static void sub_80A39E4(u16 *a, u8 b, u8 c, s8 d)
if (b == 1)
r7 = 10;
- sub_809D104(a, 4, 10, gBagScreenLabels_Tilemap, c, r7, 8 - c, 2);
- sub_809D104(a, 12 - c, 10, gBagScreenLabels_Tilemap, 0, r2, c, 2);
+ sub_809D104((void *)a, 4, 10, gBagScreenLabels_Tilemap, c, r7, 8 - c, 2);
+ sub_809D104((void *)a, 12 - c, 10, gBagScreenLabels_Tilemap, 0, r2, c, 2);
}
}
diff --git a/src/libs/m4a.c b/src/libs/m4a.c
index 7b4441ca4..267a72657 100644
--- a/src/libs/m4a.c
+++ b/src/libs/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 d7ef91df0..5cb8039c7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -89,7 +89,27 @@ static void WaitForVBlank(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
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
InitKeys();
InitIntrHandlers();
diff --git a/src/main_menu.c b/src/main_menu.c
index 13fdf9f7f..33bffcb93 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -40,13 +40,6 @@ extern u8 gBirchSpeech_AhOkayYouArePlayer[];
extern u8 gBirchSpeech_AreYouReady[];
extern struct SpriteTemplate gUnknown_02024E8C;
-extern const struct MenuAction gUnknown_081E79B0[];
-extern const struct MenuAction gMalePresetNames[];
-extern const struct MenuAction gFemalePresetNames[];
-
-extern const u8 gUnknown_081E7834[];
-
-extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[];
//Menu layouts
enum
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 3150629b7..f017cf834 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -98,7 +98,7 @@ struct PokenavRibbonIconGfx {
u8 paletteNum;
};
-IWRAM_DATA void (*gUnknown_03000744)(void);
+static void (*gUnknown_03000744)(void);
struct UnkPokenavStruct *const gPokenavStructPtr = (struct UnkPokenavStruct *)gSharedMem;
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index 7bccddde5..7c0a47b13 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -118,7 +118,7 @@ const union AnimCmd gSpriteAnim_83764C4[] =
const union AnimCmd gSpriteAnim_83764CC[] =
{
- ANIMCMD_FRAME(0, 158, .vFlip = TRUE),
+ ANIMCMD_FRAME(0, 30, .vFlip = TRUE),
ANIMCMD_JUMP(0),
};
diff --git a/src/roulette_gfx.c b/src/roulette_gfx.c
index 1cac00daf..55662ba39 100644
--- a/src/roulette_gfx.c
+++ b/src/roulette_gfx.c
@@ -1502,7 +1502,7 @@ void sub_8118F8C(struct Sprite *sprite)
const struct StructgUnknown_083F8DF4 *p;
eRoulette->var90 = 0.0f;
p = gUnknown_083F8DF4;
- eRoulette->var8C -= ((float)p[eRoulette->var04_0].var03)
+ eRoulette->var8C -= ((float)(p[eRoulette->var04_0].var03))
/ ((float)(s16)(p[eRoulette->var04_0].var04 + 1));
sprite->data[1] = 4;
#if DEBUG
@@ -1532,8 +1532,8 @@ void sub_8119088(struct Sprite *sprite)
sub_8118724(sprite);
if (!(eRoulette->var94 > 40.f))
{
- eRoulette->var98 = - ( 4.0f / (float)(u16)eRoulette->var86);
- eRoulette->var90 = - (eRoulette->var8C / (float)(u16)eRoulette->var86);
+ eRoulette->var98 = - ( 4.0f / (float)((u16)eRoulette->var86));
+ eRoulette->var90 = - (eRoulette->var8C / (float)((u16)eRoulette->var86));
sprite->animNum = 2;
sprite->animBeginning = TRUE;
sprite->animEnded = FALSE;
@@ -1548,8 +1548,8 @@ void sub_8119134(struct Sprite *sprite)
if (!(eRoulette->var94 > 60.0f))
{
m4aSongNumStartOrChange(SE_TAMAKORO_E);
- eRoulette->var98 = - ( 20.0f / (float)(u16)eRoulette->var84);
- eRoulette->var90 = ((1.0f - eRoulette->var8C) / (float)(u16)eRoulette->var84);
+ eRoulette->var98 = - ( 20.0f / (float)((u16)eRoulette->var84));
+ eRoulette->var90 = ((1.0f - eRoulette->var8C) / (float)((u16)eRoulette->var84));
sprite->animNum = 1;
sprite->animBeginning = TRUE;
sprite->animEnded = FALSE;
diff --git a/src/save.c b/src/save.c
index 0df83200a..3eeea88de 100644
--- a/src/save.c
+++ b/src/save.c
@@ -658,7 +658,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);
}
@@ -929,4 +932,5 @@ u8 unref_sub_8126080(u8 sector, u8 *data)
}
asm(".section .rodata\n"
- "\t.align 2");
+ "\t.align 2\n"
+ "\t.text");
diff --git a/src/trade.c b/src/trade.c
index bd298b58e..bee58ff15 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -126,7 +126,7 @@ struct TradeEwramSubstruct {
/*0x08fc*/ u8 filler_08fc[0x704];
};
-IWRAM_DATA u8 gUnknown_03000508[8];
+static u8 gUnknown_03000508[8];
struct UnkStructF {
u8 filler_0000[9];