Pokemon R/B/Y - Rage and Thrash / Petal Dance accuracy bug

Channel:
Subscribers:
12,600
Published on ● Video Link: https://www.youtube.com/watch?v=NC5gbJeExbs



Duration: 1:51
6,049 views
64


When a Pokemon is successfully locked into Rage or a move with Thrashing About effect (Thrash or Petal Dance), the accuracy of said move will be overwritten with the scaled accuracy (i.e. with the corresponding evasion and accuracy modifiers applied) during each turn. This occurs because being locked into one of these moves is treated as a special condition causing certain parts of the move executing routines to be skipped, including the part where the move's original data is reloaded into RAM. While the move's original data is also reloaded during move selection (i.e. move selection menu for player side), this part is also skipped when the user is locked into either of these effects. As a result of the game overwritting the move's accuracy address with the scaled value when it goes through the accuracy checks, this new value will be carried over for the next turn as if the scaled accuracy was the move's actual accuracy.

Since all of these moves have maximum 255 accuracy, their accuracy cannot be increased unless it has been lowered before. On the other hand, it can be progressively decreased with the use of moves such as Sand Attack or Double Team. Let's see an example. If the target has +1 Evasion after the move's first use, its accuracy will drop from 255 to 168. (255 * 100 / 150 = 168) (i.e. 168/255 or 66%). If in the next turn its evasion has become +2, its accuracy (now 168) will become 84 ( 168 * 100 / 200 = 84); if its evasion had remained at +1, the accuracy would've dropped from 168 to 112 ( 168 * 100 / 150 = 112). The accuracy can eventually go down to just 1 this way, as the game makes sure it never drops to 0.

Rage's been believed to turn into 1/256 accuracy for this reason, but it will usually take a long time before its accuracy becomes as low as 1. In fact, if Rage only misses due to the well known 255/256 accuracy bug without any evasion or accuracy modifiers in play (or cancelling each other), its accuracy is unaffected.

In general it's harder to notice this bug with Thrash / Petal Dance than with Rage, since the lock only lasts 2-3 turns with the former.

In the video:
- Address CFD6 and register b: Rage / Thrash current accuracy (in hexadecimal).
- Register a: Random number between 0 and 255 generated for the accuracy test (in hexadecimal). If a is equal or higher than b, the move misses.







Tags:
glitch pokemon
glitch city
celebi glitch
pokemon speedrun
pokemon red glitch
pokemon beta
pokemon hack
pokemon pyrite
arbitrary code
coin case glitch
pokemon glitch
pokemon gameboy
pokemon corruptions
thezzazzglitch
pokemon glitches
chickasaurusgl
Crystal_
missingno
pokemon mechanics
pokemon crystal
credits warp
pokemon yellow glitch
pokemon hacks
pokemon assembly
arbitrary code execution
mew glitch
gameboy
8f glitch
pokemon secrets
pannenkoek