Pokemon R/B/Y - Desync glitches triggered by thawing

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



Game:
Duration: 5:18
5,794 views
103


In Pokemon R/B/Y it's possible to trigger desync glitches by forcing a Pokemon to make a move when no move was yet selected in the current battle or when the last move selected dates from some turns ago. This can be achieved by defrosting a frozen Pokemon. During the turn a Pokemon is defrosted, it's allowed to make a move, even though it couldn't select any due to being frozen.

There's a couple of ram addresses we need to take into account first.
- wPlayerSelectedMove is updated whenever the player selects a move with the cursor in the move selection menu, and contains the selected move's hex number. It's set to 0 when the battle begins.
- wPlayerMoveListIndex contains a value between 0 and 3 that corresponds to the position in the move selection menu of the move used by the player (0 for topmost move, 1 for second move, 2 for third move, and 3 for last move). It's updated whenever a move is used and also set to 0 when the player sends out a new Pokemon.

To let the other player (Player 2) know which move is used, Player 1 sends the content of wPlayerMoveListIndex (the move's position) to Player 2, which will execute Player 1's move at the position indicated.

In addition, the PP decrementing function reads the move's position from wPlayerMoveListIndex to know which move to decrement PP from. If that move had 0 PP, it would underflow to 63 PP and one less PP Up applied (as with any other PP underflow glitch).

So what are the values of the two aforementioned adderesses at minute ~0:53 in the video?

- wPlayerSelectedMove contains 00 (cooltrainer glitch move with super glitch effect, read more here: http://glitchcity.info/wiki/index.php/-_%28Generation_I_move%29), because no move was ever selected by the player in the right Game Boy.
- wPlayerMoveListIndex contains 0, because it was set to 0 when Bulbasaur was switched to Poliwrath. 0 points to the first move, which is Toxic.

What does this mean?

- In the right Game Boy, Poliwrath uses the move at wPlayerSelectedMove: Hex 00
- In the left Game Boy, Poliwrath uses the move pointed to by the right Game Boy's wPlayerMoveListIndex: Toxic
- PP is decremented from the move pointed to by wPlayerMoveListIndex: Toxic (from 10 PP to 9 PP, see 1:16)

What about the second part of the video (second version of the glitch)? What do the two addresses contain at ~4:52?

- wPlayerSelectedMove contains Spike Cannon, because the last move selected (pointed to by the cursor) was Cloyster's Spike Cannon. It would've been the same if I Cloyster had used Spike Cannon and switched out the next turn.
- wPlayerMoveListIndex contains 0, because it was set to 0 when Cloyster was switched to Poliwrath. 0 points to the first move, which is Toxic.

And this translates into:

- In the right Game Boy, Poliwrath uses the move at wPlayerSelectedMove: Spike Cannon
- In the left Game Boy, Poliwrath uses the move pointed to by the right Game Boy's wPlayerMoveListIndex: Toxic
- PP is decremented from the move pointed to by wPlayerMoveListIndex: Toxic







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



Other Statistics

Pokémon Yellow Statistics For Crystal_

At present, Crystal_ has 298,121 views spread across 7 videos for Pokémon Yellow, with his channel publishing less than an hour of Pokémon Yellow content. This is 4.91% of the total watchable video on Crystal_'s YouTube channel.