Brock through walls: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
m (Added "surf on land" as a variant) |
m (Text replacement - "~" to "–") |
||
Line 34: | Line 34: | ||
**The third move's current PP must be exactly 36. |
**The third move's current PP must be exactly 36. |
||
Once this is done, viewing the Pokémon party screen (commonly known as "flashing" the Pokémon party) will copy the data "10 24 00 08" to $CFB6 |
Once this is done, viewing the Pokémon party screen (commonly known as "flashing" the Pokémon party) will copy the data "10 24 00 08" to $CFB6 – $CFB9. (Notice that the path pointer is small endian, so this will use $0800 as the path pointer.) |
||
A popular choice for this Pokémon is the starter Bulbasaur, which starts with Tackle (35 PP) and Growl (40 PP), and learns Leech Seed at level 7 to swap into slot 1. |
A popular choice for this Pokémon is the starter Bulbasaur, which starts with Tackle (35 PP) and Growl (40 PP), and learns Leech Seed at level 7 to swap into slot 1. |
||
Line 46: | Line 46: | ||
*However, there should be no Rattata mini-sprite in the first two positions, or else the game will softlock. |
*However, there should be no Rattata mini-sprite in the first two positions, or else the game will softlock. |
||
This setup will write "10 24 00 0F" to $D196 |
This setup will write "10 24 00 0F" to $D196 – $D199. |
||
====Japanese {{RGB}}==== |
====Japanese {{RGB}}==== |
||
Line 70: | Line 70: | ||
==Variants== |
==Variants== |
||
===Brock Fly=== |
===Brock Fly=== |
||
In order to execute Brock through walls, the invalid path needs to be long enough to overwrite at least the entire RAM region between $CCD3 and $CD3B. Most addresses in this region are temporary variables anyway; however, this region includes $CD2D (wEngagedTrainerClass) and $CD2E (wEngagedTrainerSet), which determines the species and level of the Pokémon encountered with the [[trainer escape glitch]] (normally the Special stat and Attack modifier of the last enemy Pokémon). Therefore, by doing a trainer escape, and performing this glitch before going back to the route, the player can set up a "Special stat encounter" without needing to fight a Pokémon with the appropriate Special stat and Attack modifier. Notably, this allows encountering a Pokémon whose level is not in the |
In order to execute Brock through walls, the invalid path needs to be long enough to overwrite at least the entire RAM region between $CCD3 and $CD3B. Most addresses in this region are temporary variables anyway; however, this region includes $CD2D (wEngagedTrainerClass) and $CD2E (wEngagedTrainerSet), which determines the species and level of the Pokémon encountered with the [[trainer escape glitch]] (normally the Special stat and Attack modifier of the last enemy Pokémon). Therefore, by doing a trainer escape, and performing this glitch before going back to the route, the player can set up a "Special stat encounter" without needing to fight a Pokémon with the appropriate Special stat and Attack modifier. Notably, this allows encountering a Pokémon whose level is not in the 1–13 range (the valid range for the Attack modifier byte). |
||
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. |
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. |