diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/anim/fire_2.c | 1 | ||||
-rw-r--r-- | src/battle/anim/ghost.c | 3 | ||||
-rw-r--r-- | src/battle/anim/heal_bell.c | 2 | ||||
-rw-r--r-- | src/battle/anim/musical.c | 2 | ||||
-rw-r--r-- | src/battle/anim/roots.c | 8 | ||||
-rw-r--r-- | src/battle_controller_link_opponent.c | 6 | ||||
-rw-r--r-- | src/battle_controller_link_partner.c | 16 | ||||
-rw-r--r-- | src/battle_controller_opponent.c | 8 | ||||
-rw-r--r-- | src/battle_controller_player.c | 1 | ||||
-rw-r--r-- | src/battle_controller_safari.c | 2 | ||||
-rw-r--r-- | src/battle_controller_wally.c | 4 | ||||
-rw-r--r-- | src/battle_gfx_sfx_util.c | 2 | ||||
-rw-r--r-- | src/battle_interface.c | 2 | ||||
-rw-r--r-- | src/berry_blender.c | 16 | ||||
-rw-r--r-- | src/daycare.c | 10 | ||||
-rw-r--r-- | src/debug/sound_check_menu.c | 4 | ||||
-rw-r--r-- | src/egg_hatch.c | 3 | ||||
-rw-r--r-- | src/evolution_scene.c | 26 | ||||
-rw-r--r-- | src/field_weather_effects.c | 2 | ||||
-rw-r--r-- | src/item_menu.c | 34 | ||||
-rw-r--r-- | src/libs/m4a.c | 1 | ||||
-rw-r--r-- | src/main.c | 20 | ||||
-rw-r--r-- | src/main_menu.c | 7 | ||||
-rw-r--r-- | src/pokenav_before.c | 2 | ||||
-rw-r--r-- | src/reset_rtc_screen.c | 2 | ||||
-rw-r--r-- | src/roulette_gfx.c | 10 | ||||
-rw-r--r-- | src/save.c | 8 | ||||
-rw-r--r-- | src/trade.c | 2 |
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 2b7ff8d95..4dea1ed1d 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 d99b4fe27..8a53aca75 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 gMPlayInfo_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 IsMoveWithoutAnimation(); 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 a5b24815f..ae9e6353d 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 IsMoveWithoutAnimation(); 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(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], 0); sub_804777C(gActiveBattler); sub_8043DFC(gHealthboxSpriteIds[gActiveBattler]); - (s8)ewram17810[4].unk9 &= ~1; + ewram17810[4].unk9 = (s8)ewram17810[4].unk9 & ~1; gBattlerControllerFuncs[gActiveBattler] = sub_811DBC0; } } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 2faaf5fea..429a9ec26 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -61,15 +61,12 @@ extern bool8 gDoingBattleAnim; extern u16 gUnknown_02024DE8; extern u8 gUnknown_02024E68[]; extern MainCallback gPreBattleCallback1; -extern void (*const gOpponentBufferCommands[])(void); extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u32 gBattleControllerExecFlags; -extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); -extern u8 GetBattlerSubpriority(); extern void sub_8033018(void); extern void BattleLoadOpponentMonSprite(); extern u8 GetBattlerPosition(u8); @@ -78,7 +75,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 *); @@ -93,7 +89,6 @@ extern void sub_803311C(void); extern void sub_8010384(struct Sprite *); extern bool8 mplay_80342A4(u8); extern u8 IsMoveWithoutAnimation(); -extern void DoMoveAnim(); extern void sub_80326EC(); extern void sub_8031F24(void); extern void sub_80324BC(); @@ -102,8 +97,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); @@ -115,7 +108,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 7de3ada41..e1c632f37 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 28418531f..bc4695ddc 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 a16fe26cc..eb1486738 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -64,9 +64,7 @@ extern void BtlController_EmitOneReturnValue(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 IsMoveWithoutAnimation(); -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 45f2c30c0..10989231f 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 992fcd7ae..5ec42bb4b 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -3173,7 +3173,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 70cb34809..3ccc4ab5d 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 1ead5ae1b..2760c3b0f 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 041fd292c..ba136d1cc 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 c9390a070..2ff282458 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -99,7 +99,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 afcb94df6..83e5fb149 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 5422a6ace..424a503bf 100644 --- a/src/trade.c +++ b/src/trade.c @@ -128,7 +128,7 @@ struct TradeEwramSubstruct { struct TradeEwramSubstruct2 *gUnknown_03004828; -IWRAM_DATA u8 gUnknown_03000508[8]; +static u8 gUnknown_03000508[8]; struct UnkStructF { u8 filler_0000[9]; |