List of glitches (Generation I): Difference between revisions

→‎HP recovery move failure: it appears to be checked, but not in the right way https://github.com/pret/pokered/blob/master/engine/battle/moveEffects/heal_effect.asm#L11
(→‎HP recovery move failure: it appears to be checked, but not in the right way https://github.com/pret/pokered/blob/master/engine/battle/moveEffects/heal_effect.asm#L11)
Line 694: Line 694:
If a Pokémon uses a recovery move ({{m|Softboiled}}, {{m|Rest}} or {{m|Recover}}) and the difference between its current HP and maximum HP is 255 or 511 (or any number that leaves a remainder of 255 when divided by 256), the move will fail the same way it would when the difference is 0. This glitch does not occur in Pokémon Stadium.
If a Pokémon uses a recovery move ({{m|Softboiled}}, {{m|Rest}} or {{m|Recover}}) and the difference between its current HP and maximum HP is 255 or 511 (or any number that leaves a remainder of 255 when divided by 256), the move will fail the same way it would when the difference is 0. This glitch does not occur in Pokémon Stadium.


This is because of an oversight that the game only checks the value as 1 byte (8-bits) of the value rather than 2 bytes of the whole value .
This is caused by the comparison that checks whether the current HP matches the maximum HP erroneously not correctly incorporating the upper byte of the HP values.


{{Youtubevid|sqkBby1HlmY|channel/UCZz2ixp-5T6VeAPtAMQ5v5Q|name=ChickasaurusGL|HP}}
{{Youtubevid|sqkBby1HlmY|channel/UCZz2ixp-5T6VeAPtAMQ5v5Q|name=ChickasaurusGL|HP}}