List of battle glitches in Generation IV

:For other glitches in this generation, see List of glitches in Generation IV
This is a list of Pokémon battle glitches in Generation IV games.
==Pokémon Diamond, Pearl, Platinum, HeartGold, and SoulSilver==
===Fire Fang Wonder Guard glitch===
 is able to hit through , even if the target does not have a weakness to moves. This does not apply to , , or any other Fire-type moves. This is possible if the opponent copies Wonder Guard by . This happens due to a typo within the switch statement for a function for Wonder Guard in relation to moves with a charging turn and . The function is intended to compare move effect codes to a list in the function to prevent specific moves' charging turn(s) from being affected by Wonder Guard. , which its move effect code is 272, is intended to be a part of the switch statement, but Fire Fang, which is 273, is instead in the statement. Since Fire Fang doesn't have a charging turn, this allows it to always bypass Wonder Guard. Notably, despite not being a part of this function, Shadow Force behaves normally against a foe with Wonder Guard.https://www.smogon.com/forums/threads/prototype-development-diamond-pearl-assets-leak.3664842/#post-8480222
===Invisible status condition glitch===
If a Pokémon has a non-volatile status condition, if its or is cured by or , the status condition icon will disappear from the HP bar while that Pokémon is in battle. The status condition icon is still displayed in the party menu; if the Pokémon is switched out, the status condition icon will appear again when it is switched back in.
The status condition remains entirely in effect, maintaining its effects and preventing the Pokémon from being afflicted by another status condition. This bug is only a display error.
===Rage glitch===
If a Pokémon that is under the effect of selects a move other than Rage, it removes all volatile status conditions, except Rage.
===Sprite translation glitch===
Each time a Pokémon performs the animation for , , , , , a Pokémon sprite will be translated after the animation is completed:
* Facade translates the user's sprite up one pixel
* Strength and Spit Up translate the user's sprite right two pixels
* DynamicPunch and Helping Hand translate the target's sprite left one pixel
While the difference may not be obvious after only a few uses, after repeated uses the change becomes very apparent. If a Pokémon performs Facade's animation enough times, its sprite can be translated so high that a gap between the bottom of its sprite and the bottom of the window emerges.
Using multiple of these affected moves allows combining their translations.
===Transform glitches===
==Pokémon Diamond and Pearl==
===All languages===
====Arceus Plate glitch====
While in Pal Park or Great Marsh, if the player has an holding a Plate in the front of their party, and initiates a battle, the game will freeze.
====Protection bypass glitch====
If an attack is given perfect accuracy through the effect of a move (/), the weather ( in rain, or in ), or an Ability (), it has a chance to hit through and equal to (100 - move )%. This may simply be an inversion of the result of the move's hit or miss check. OHKO moves are unaffected, and will never hit through Protect or Detect.
====Starly defeating first partner Pokémon oversight====
During the first battle of the game with the player's first partner Pokémon against a wild Starly, if the player's Pokémon reaches red HP (20% or lower), Starly is programmed to flee instead of attack so that the player does not lose. Critical hits also do not occur in this battle. However, under specific circumstances it is possible for Starly's Tackle to hit the player's Pokémon at above 20% HP and reduce it to 0, bypassing the red HP state and causing the player to black out. This causes the game to crash.
Specifically, if the player's Pokémon's HP has been reduced to 4/19 (~21% HP) and Starly's Tackle inflicts exactly 4 damage, it reduces the player's Pokémon's HP to 0 (resulting in the game crash). For this to be possible, the player must choose as their first partner Pokémon, as the other first partner Pokémon cannot have a maximum HP of 19 or less at level 5.
The possible values for Starly's Attack stat are 6 and 7. The possible values for the player's Chimchar's Defense stat are 8, 9, 10, and 11. If Starly's Attack stat is 7 and Chimchar's Defense stat is 8 or 9, Starly will deal 3 damage 15/16 (93.75%) of the time and 4 damage 1/16 (6.25%) of the time. For the other Attack and Defense stats, it is not possible for Starly to inflict 4 damage to Chimchar.
The probability of this occurring is detailed below:
Condition 	Requirement 	Probability 	Probability
Condition 	Requirement 	Calculation 	Value (%)
Chimchar's HP stat is 19 	Chimchar's HP IV is 11 or lower 	12 \over 32 	37.50%
Chimchar's Defense stat is 8 or 9 	Chimchar has a negative Nature for Defense, or a Defense IV of 11 or lower 	{4 \over 25} + {12 \over 32} - {4 \over 25} \cdot {12 \over 32} 	47.50%
Starly's Attack stat is 7 	Starly's has a Nature that does not decrease Attack 	21 \over 25 	84.00%
Starly reduces Chimchar's HP to 4/19 	Starly deals 3 damage five times in a row, orStarly deals 4 damage three times and 3 damage once (in any order)	\left({15 \over 16}\right)^5 + 4 \cdot {15 \over 16} \cdot \left({1 \over 16}\right)^3	~72.51%
Starly deals 4 damage on the final hit	Starly deals 4 damage on the final hit 	{1 \over 16} 	6.25%
Assuming the player picked Chimchar and does not KO Starly before it has the chance to land the sufficient number of hits, the probably of this crash occurring is the product of the probabilities of each of the conditions being met. This comes to approximately 0.68%.
====Tower Tycoon event skipping====
If the player achieves a 20 streak in the and battles Palmer by choosing the option "REST" and then the option "NO" instead of choosing the option "KEEP GOING", a normal will appear instead; with the same roster of the Tower Tycoon. This corrupted Trainer data also yields the otherwise unused dialogue "Now come! Show me, the Tower Tycoon, what you're really made of!" Defeating the Trainer will grant the player 1 BP instead of the normal 20 BP.
====U-turn Choice glitch====
If is used to change to a holding a that also knows the move U-turn, that Pokémon will be forced to use U-turn despite not having used a move.
===Japanese language===
====Pursuit Choice glitch====
In the Japanese versions, when a holding a uses and the target Pokémon switches out, the Pokémon holding the item is allowed to change its move on the next turn.
====Slow Start oversight====
In the Japanese versions, removing (via moves like , or ) does not undo the Attack and Speed drop. This was fixed in the localizations.
==Pokémon Platinum==
===All languages===
====Trapping Ability flee glitch====
If the player is in a Double Battle (which, at the time, was only possible when traveling with one of the Stat Trainers) and the left-side wild Pokémon has , or and the player is trapped as a result, attempting to flee will bring up the message that the user cannot flee from the right side wild Pokémon rather than the left side wild Pokémon.
This occurs even if the right side wild Pokémon was knocked out, resulting in the message "The wild Bad Egg prevents escape with Arena Trap!" etc.
While this glitch is a bug in the game's code, there is no way to legitimately activate it because no wild Pokémon that can be fought in a wild double battle has any trapping abilities.
===Japanese language===
====Ace Trainer Deanna oversight====
In the Japanese versions, it is possible to become engaged in non-stop consecutive s with Deanna on until the player blacks out.
==Pokémon Diamond, Pearl, and Platinum==
===Double Shiny Pokémon encounter glitch===
During the times where an NPC accompanies the player for parts of the game, the player will encounter wild Pokémon only through Double Battles. During this time, it is possible to encounter Shiny Pokémon. However, possibly due to an oversight in the programming, if a player manages to encounter two Shiny Pokémon of the same species at once, the game will show the shiny status for the left Pokémon before . The freeze was fixed in Pokémon HeartGold and SoulSilver, although there are no Double Battle wild encounters in these games.[DPPT] Fixing the double shiny encounter crash - PokeHacking
==Pokémon HeartGold and SoulSilver==
===Ace Trainer Kate oversight===
When starting a battle with Kate on , she will only the player if they walk straight down the path. If the player walks to either side of her, she will apologize as she would after the player has defeated her. If the player walks down the path towards her after talking to her on the side she will see them while facing the wrong way and then battle. If the player talks to her at the side, then goes directly above her, talks to her again from above and goes up, she will see the player while they are moving up, walk up, and end up on the same tile as the player's walking Pokémon.
===Rival's non-Shiny first partner Pokémon===
The player is able to check if , , or are Shiny before choosing one of them as their first partner Pokémon. However, if this first partner Pokémon that appeared as Shiny is obtained by the rival instead, it will appear as a regular non-Shiny Pokémon for the remainder of the game. The rival's Pokémon teams are predefined in the game data, with no way to account for a possible Shiny first partner Pokémon.
==Pokémon Platinum, HeartGold, and SoulSilver==
===Acid rain glitch===
===Battle Tower overflow===
If the player surpasses a streak of 1792 (256 rounds of 7) in the , the opponents that appear are as if the player's streak were its actual value 1792.
Palmer will appear as the opponent for battle number 1813 (1792 + 21) with his Silver Print team. However, he will be introduced like a normal Trainer and has no pre-battle dialogue, also the player only earns 7 BP for that streak of 7.
==Pokémon Battle Revolution==
===Arceus glitch===
If the player uses to pass a on to an holding a Plate, it will appear invisible after coming out. If the same Arceus then uses an attack which does not deal damage, the game will freeze after the animation has finished.
===Collision errors===
Occasionally, when a uses a certain move on another Pokémon, part of its modeling will go straight through the other Pokémon. For example, when an uses on a , part of its head will go through Metang.
===Life Orb glitch===
The animation for activates after the Life Orb recoil rather than before it. This means that if a used Heat Wave with at most 10% of its left, it would faint and the Heat Wave animation would seemingly come out of nowhere.
==References==
==Related articles==
Category:Glitches by game