From f6b0bd9368f242aca455d491a31aff624c49ca8d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 16 Jun 2021 14:44:52 -0400 Subject: [PATCH 1/9] Symplifi symfiles --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a5fe77f23..d0b48f1d7 100644 --- a/Makefile +++ b/Makefile @@ -98,6 +98,8 @@ FIX := tools/gbafix/gbafix MAPJSON := tools/mapjson/mapjson JSONPROC := tools/jsonproc/jsonproc +PERL := perl + # Clear the default suffixes .SUFFIXES: # Don't delete intermediate files @@ -354,4 +356,4 @@ modern: ; @$(MAKE) MODERN=1 ################### $(SYM): $(ELF) - $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" > $@ \ No newline at end of file + $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\w+)$$/\1 \2 \3 \4/g' > $@ \ No newline at end of file From 3116ec6375229293033d95eb044a11c957ac6f42 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 18 Jun 2021 12:53:27 -0400 Subject: [PATCH 2/9] Fix regex error --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d0b48f1d7..9aaccc2fc 100644 --- a/Makefile +++ b/Makefile @@ -356,4 +356,4 @@ modern: ; @$(MAKE) MODERN=1 ################### $(SYM): $(ELF) - $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\w+)$$/\1 \2 \3 \4/g' > $@ \ No newline at end of file + $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@ From 337caefaa9a505dab9c4430219a48fb302f28dec Mon Sep 17 00:00:00 2001 From: SnorlaxMonster Date: Mon, 21 Jun 2021 21:56:01 +1000 Subject: [PATCH 3/9] Use plain terrain macro where appropriate --- src/battle_bg.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/battle_bg.c b/src/battle_bg.c index c30f10643..f5b8d7921 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -612,13 +612,13 @@ static u8 GetBattleTerrainByMapScene(u8 mapBattleScene) if (mapBattleScene == sMapBattleSceneMapping[i].mapScene) return sMapBattleSceneMapping[i].battleTerrain; } - return 9; + return BATTLE_TERRAIN_PLAIN; } static void LoadBattleTerrainGfx(u16 terrain) { if (terrain >= NELEMS(sBattleTerrainTable)) - terrain = 9; + terrain = BATTLE_TERRAIN_PLAIN; // Copy to bg3 LZDecompressVram(sBattleTerrainTable[terrain].tileset, (void *)BG_CHAR_ADDR(2)); LZDecompressVram(sBattleTerrainTable[terrain].tilemap, (void *)BG_SCREEN_ADDR(26)); @@ -628,7 +628,7 @@ static void LoadBattleTerrainGfx(u16 terrain) static void LoadBattleTerrainEntryGfx(u16 terrain) { if (terrain >= NELEMS(sBattleTerrainTable)) - terrain = 9; + terrain = BATTLE_TERRAIN_PLAIN; // Copy to bg1 LZDecompressVram(sBattleTerrainTable[terrain].entryTileset, (void *)BG_CHAR_ADDR(1)); LZDecompressVram(sBattleTerrainTable[terrain].entryTilemap, (void *)BG_SCREEN_ADDR(28)); @@ -636,8 +636,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain) UNUSED void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) { - if (terrain > 9) - terrain = 9; + if (terrain > BATTLE_TERRAIN_PLAIN) + terrain = BATTLE_TERRAIN_PLAIN; *tilesPtr = sBattleTerrainTable[terrain].tileset; *mapPtr = sBattleTerrainTable[terrain].tilemap; *palPtr = sBattleTerrainTable[terrain].palette; From 5bf794f0518aeb430a4f1a49d409e206f0ae2488 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 21 Jun 2021 16:02:13 -0400 Subject: [PATCH 4/9] Remove hardcoded offsets in battle scripts --- data/battle_scripts_1.s | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 79b5dffc1..5e6fd2885 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1165,7 +1165,8 @@ BattleScript_EffectLeechSeed:: pause 0x20 ppreduce jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - accuracycheck .+6, ACC_CURR_MOVE + accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE +BattleScript_DoLeechSeed:: setseeded attackanimation waitanimation @@ -1605,10 +1606,11 @@ BattleScript_EffectSandstorm:: BattleScript_EffectRollout:: attackcanceler attackstring - jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutHit + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy ppreduce +BattleScript_RolloutCheckAccuracy:: + accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE BattleScript_RolloutHit:: - accuracycheck .+6, ACC_CURR_MOVE typecalc2 rolloutdamagecalculation goto BattleScript_HitFromCritCalc @@ -1640,7 +1642,7 @@ BattleScript_EffectFuryCutter:: attackcanceler attackstring ppreduce - accuracycheck .+6, ACC_CURR_MOVE + accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE BattleScript_FuryCutterHit:: furycuttercalc critcalc @@ -2247,7 +2249,8 @@ BattleScript_MementoSubstituteInvulnerable:: BattleScript_MementoNoReduceStats:: attackstring ppreduce - jumpifattackandspecialattackcannotfall .+4 + jumpifattackandspecialattackcannotfall BattleScript_MementoNoReduceStatsEnd +BattleScript_MementoNoReduceStatsEnd:: setatkhptozero pause 0x40 effectivenesssound @@ -2897,7 +2900,8 @@ BattleScript_FaintedMonEnd:: end2 BattleScript_LinkBattleHandleFaint:: - openpartyscreen BS_UNKNOWN_5, .+4 + openpartyscreen BS_UNKNOWN_5, BattleScript_LinkBattleHandleFaintStart +BattleScript_LinkBattleHandleFaintStart:: switchhandleorder BS_FAINTED, 0 openpartyscreen BS_UNKNOWN_6, BattleScript_LinkBattleFaintedMonEnd switchhandleorder BS_FAINTED, 0 @@ -2921,7 +2925,8 @@ BattleScript_LocalTrainerBattleWon:: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT - getmoneyreward .+4 + getmoneyreward BattleScript_LocalTrainerBattleWonGotMoney +BattleScript_LocalTrainerBattleWonGotMoney:: printstring STRINGID_PLAYERGOTMONEY waitmessage 0x40 BattleScript_PayDayMoneyAndPickUpItems:: @@ -3183,7 +3188,7 @@ BattleScript_DamagingWeatherLoop:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER, 0, NULL - atk24 .+4 + atk24 BattleScript_DamagingWeatherContinuesEnd BattleScript_DamagingWeatherContinuesEnd:: jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle addbyte gBattleCommunication, 1 @@ -3494,7 +3499,8 @@ BattleScript_DoFutureAttackHit:: resultmessage waitmessage 0x40 tryfaintmon BS_TARGET, 0, NULL - atk24 .+4 + atk24 BattleScript_FutureAttackEnd +BattleScript_FutureAttackEnd:: moveendcase 0 moveendfromto 11, 14 setbyte gMoveResultFlags, 0 @@ -3694,7 +3700,8 @@ BattleScript_DoTurnDmg:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER, 0, NULL - atk24 .+4 + atk24 BattleScript_DoTurnDmgEnd +BattleScript_DoTurnDmgEnd:: end2 BattleScript_BurnTurnDmg:: @@ -4370,7 +4377,8 @@ BattleScript_BerryConfuseHealEnd2:: BattleScript_BerryStatRaiseEnd2:: playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL - statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, .+4 + statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseDoStatUp +BattleScript_BerryStatRaiseDoStatUp:: setbyte cMULTISTRING_CHOOSER, 4 call BattleScript_StatUp removeitem BS_ATTACKER From cdfaa6a3acfca02dfd71daf24ed3bc496aeb1575 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sat, 26 Jun 2021 04:06:04 -0300 Subject: [PATCH 5/9] Informative note about PewterCity_Gym_Text_BrockDefeat --- data/maps/PewterCity_Gym/text.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/maps/PewterCity_Gym/text.inc b/data/maps/PewterCity_Gym/text.inc index b6a1d87ee..4ba144beb 100644 --- a/data/maps/PewterCity_Gym/text.inc +++ b/data/maps/PewterCity_Gym/text.inc @@ -14,6 +14,9 @@ PewterCity_Gym_Text_BrockIntro:: @ 8190CD4 .string "Fine, then!\n" .string "Show me your best!{PLAY_BGM}{MUS_ENCOUNTER_GYM_LEADER}$" +@ NOTE: This defeat text actually causes a buffer overflow. It's too long for the gDisplayedStringBattle +@ buffer that it's put into, and it stomps all over the gBattleTextBuffs after, as well as the otherwise +@ unused array after that, gUnknown_2022AE8. Perhaps that's the reason why said array exists. PewterCity_Gym_Text_BrockDefeat:: @ 8190E4F .string "I took you for granted, and so\n" .string "I lost.\p" From 92dccca2ee73dece390f921dbce5dfa01244fb25 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sat, 26 Jun 2021 08:58:55 -0300 Subject: [PATCH 6/9] Informative note about gUnknown_2022AE8 --- src/battle_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_main.c b/src/battle_main.c index 021a0ca81..53757d13c 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -125,7 +125,7 @@ EWRAM_DATA u8 gDisplayedStringBattle[300] = {0}; EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; -static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0}; +static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0}; // Note: This shouldn't be removed without adjusting the size of gDisplayedStringBattle. EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; EWRAM_DATA u32 gUnknown_2022B54 = 0; From 23bc333bc73388fc7bf927485790877d659b1676 Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Sat, 26 Jun 2021 22:42:11 -0400 Subject: [PATCH 7/9] fix alloc and alloczeroed --- src/malloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/malloc.c b/src/malloc.c index 590d45c05..260c41d0d 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -192,12 +192,12 @@ void InitHeap(void *heapStart, u32 heapSize) void *Alloc(u32 size) { - AllocInternal(sHeapStart, size); + return AllocInternal(sHeapStart, size); } void *AllocZeroed(u32 size) { - AllocZeroedInternal(sHeapStart, size); + return AllocZeroedInternal(sHeapStart, size); } void Free(void *pointer) From 335e3bab0901994cba316532669268c22cbf879e Mon Sep 17 00:00:00 2001 From: garakmon Date: Sun, 27 Jun 2021 21:17:36 -0400 Subject: [PATCH 8/9] fix encounter slot logic to accomodate changes --- src/wild_encounter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 5c3e59fde..90501e583 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -87,7 +87,7 @@ static u8 ChooseWildMonIndex_Land(void) return 8; else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_8 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) return 9; - else if (rand == ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_9 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_10) return 10; else return 11; @@ -147,7 +147,7 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod) wildMonIndex = 7; if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_7 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8) wildMonIndex = 8; - if (rand == ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8) + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_9) wildMonIndex = 9; break; } From dd3d464b6a6d99df2f41a9ce886035c4f1eedca4 Mon Sep 17 00:00:00 2001 From: Deokishisu <6993375+Deokishisu@users.noreply.github.com> Date: Thu, 1 Jul 2021 03:11:05 -0400 Subject: [PATCH 9/9] Fix Magic Number in party_menu.c `DisplayPartyPokemonDataForMoveTutorOrEvolutionItem` in `party_menu.c` had a magic number that was missed. This commit fixes it. --- src/party_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/party_menu.c b/src/party_menu.c index e08c427c8..aa7ffc702 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -839,7 +839,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR) { gSpecialVar_Result = FALSE; - if (gSpecialVar_0x8005 > 14) + if (gSpecialVar_0x8005 >= TUTOR_MOVE_COUNT) return FALSE; DisplayPartyPokemonDataToTeachMove(slot, 0, gSpecialVar_0x8005); }