diff --git a/src/battle_util.c b/src/battle_util.c index 8adee1946f..4f0ffcf962 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8183,10 +8183,20 @@ static inline u32 CalcMoveBasePower(struct DamageCalculationData *damageCalcData basePower = sSpeedDiffPowerTable[speed]; break; case EFFECT_GYRO_BALL: - basePower = ((25 * GetBattlerTotalSpeedStat(battlerDef)) / GetBattlerTotalSpeedStat(battlerAtk)) + 1; - if (basePower > 150) - basePower = 150; - break; + { + u32 attackerSpeed = GetBattlerTotalSpeedStat(battlerAtk); + if (attackerSpeed == 0) + { + basePower = 1; + } + else + { + basePower = ((25 * GetBattlerTotalSpeedStat(battlerDef)) / attackerSpeed) + 1; + if (basePower > 150) + basePower = 150; + } + break; + } case EFFECT_ECHOED_VOICE: // gBattleStruct->sameMoveTurns incremented in ppreduce if (gBattleStruct->sameMoveTurns[battlerAtk] != 0)