Pokemon G/S/C - HP bar animation delay glitch
Source: https://github.com/PikalaxALT/pokecrystal/blob/master/engine/anim_hp_bar.asm#L189-L192
The delays applied during the animation of health bars of above 48 maximum HP are buggy. In a nutshell:
Intended delay during the depletion of a full HP bar (in miliseconds, approximately): 48 * 33 + 48 * Max_HP / 10
Actual delay during the depletion of a full HP bar (in miliseconds, approximately): Max_HP * 33
The HP bar is 48 pixels long. On Pokemon with over 48 maximum HP, a single pixel may represent more than 1 HP. It was intended that, during the HP bar animation, a small delay (adjusted a little depending on the value of the maximum HP) would be introduced whenever the number of pixels changed, but due to an oversight, the small delay occurs on every single 1 HP difference. The game tries to compare the old HP bar length value to the current HP bar length value in order to determine whether to apply the delay or not; however, due to a misplaced instruction, it erroneously compares it to the Pokemon maximum's HP instead (which is not even a value in pixels). Since the compared values never match, the game thinks that the number of pixels changes on every single iteration, and proceeds to animate the HP bar (with no effect if the HP bar length didn't actually change) and to apply the small delay.
To fix it:
- Pokemon Crystal (U): Write 7B C1 D1 E1 starting from address D723
- Pokemon Gold/Silver (U): Write 7B C1 D1 E1 starting from address D729
Other Videos By Crystal_
Other Statistics
Glitch Statistics For Crystal_
At present, Crystal_ has 274,502 views spread across 5 videos for Glitch, and less than an hour worth of Glitch videos were uploaded to his channel. This is 2.91% of the total watchable video on Crystal_'s YouTube channel.