Jump to content

Brock through walls: Difference between revisions

 
(8 intermediate revisions by the same user not shown)
Line 52:
As above, a copy of the player's coordinates before talking to the guide needs to appear at xxx2, xxx6, xxxA, or xxxE to 'align'. However, for [[Pokémon Yellow#RAM layout|the reasons here]], all variables in WRAM after $CF1A are shifted up a byte (so as an example, the address of the third item in the bag is $D322 in Red/Blue, but $D321 in Yellow).
 
The 00 0F path however does not result in walk through walls in English Yellow, so another path must be used, such as the 01 06 or 01 39 path. As in the [[Pokémon Yellow reverse badge acquisition no underflow route]], this works from an odd item slot with [item] x (y-coordinate; typically x16) | HP Up x (x-coordinate; typically x36) | <Max Repel/Bicycle>. For [[Brock through walls#Brock through walls from a wall|Brock through walls from a wall]], the y-coordinate is represented by x15 and the x-coordinate by x35 instead.
 
====Japanese {{RGB}}====
Line 68:
 
==Explanation==
As mentioned above, the glitch works by tricking the game into loading an invalid path (path pointer) for the player to follow. If the coordinates and pointer pair for the path is not found at xxx2, whichxxx6, xxxA, or xxxE throughout the memory map the game will lock up never finding it. Assuming the path is found, it is meant to be terminated by 0xFF. The path is copied from hl (path pointer) to $CCF9 onwards. If the path is large enough (but not too large as to freeze the game), it will cause a buffer overflow and overwritesoverwrite $CD3B.
 
The game never seems to intentionally set $CD3B to any nonzero value, but its effect is to allow certain joypad inputs to override scripted movement. It is very generous: As long as the player is holding down any of the specified buttons, the entire joypad input is accepted. For example, if the B button is able to override, then the player can simple hold down the B button to be able to walk in any direction or to stay put.
Line 79:
 
This variant is named "Brock Fly" because "Trainer Fly" is a more commonly known name for the trainer escape glitch, but of course other escape methods (Teleport, Dig/Escape Rope, death-warp) can also be used.
 
The bytes in the path pointer that replace $CD2D and $CD2E correspond with (path pointer)+52 (0x34) and (path pointer)+53 (0x35). For example, for the custom path E7DA (DAE7) in Yellow (assuming it has no 0xFF until after $DB36), a 0x15 at $DB1B (PC Pokémon 5 HP (modulo 256)), and 0x14 at $DB1C (PC Pokémon 5 level) would result in 0x15 at $CD2D and 0x14 at $CD2E. Hence, the Pokémon encountered would be a Level 20 Mew. (In Red/Blue the equivalent path would be E8DA).
 
{{YouTube|9lMDWy2d6ys|krazyd4n}}
Cookies help us deliver our services. By using our services, you agree to our use of cookies.