Jump to content

Brock through walls: Difference between revisions

 
(5 intermediate revisions by the same user not shown)
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. TheIf the coordinates and pointer pair for the path datais not found at xxx2, xxx6, 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 FF0xFF. 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 overwrite $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.