Brock Through Walls (path manipulation walk through walls) is a walk through walls glitch in Pokémon Red, Green, Blue, and Yellow. It is popular in speedruns of Pokémon Red and Blue. It is possible to perform this glitch very early in the games (except in Pokémon Yellow, as the Youngster cannot be skipped in this version).
There are various ways to set up this glitch, but it is ultimately triggered by talking to the Pewter City Youngster from the right instead of the left, which was not intended to be possible.
The developers never programmed an alternate path for the player character to follow when the player is to the right of the Youngster. When talking to him, the game looks for the player's coordinates but usually never finds them, which results in a softlock.
However, the player can manipulate certain values in the RAM to spell out the player's coordinates, (0x10, 0x24). The coordinates need to appear at address xxx2, xxx6, xxxA, or xxxE to "align" with the lookup table. When this happens, the game will use the next two bytes as a path pointer. (Otherwise, the aforementioned softlock occurs.)
Certain paths may overwrite the memory address $CD3B, which allows the player to override the scripted movement by holding down a button, and walk through walls in whatever path he or she chooses, similar to what happens when using the museum guy method.
Getting past the Youngster
The easiest way to be able to talk to the Youngster from the right is to perform a method of the Pewter Gym skip glitch. After performing the glitch, simply walk right to Route 3, then go back to the Pewter City map to reload the Youngster.
The player can also skip Pewter Gym through another means such as a wrong warp by manipulating item 36's quantity (exit destination) in the expanded items pack. It is not easy to get an expanded items pack before defeating Brock, but it is possible. Some possible methods would include:
After using MissingNo. item duplication to increase an item's quantity to 255, dry underflow can be performed.
A third possibility is to first defeat Brock, and later use another glitch to set the "defeated Brock" event flag back to 0.
Setting up "0x10 0x24" in RAM
Have a Pokémon meeting the following requirements:
- It must be level 8.
- It must be the last Pokémon in your party.
- It must know exactly three moves. Additionally:
- The second move's current PP must be exactly 16.
- 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 ~ $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.
More research is needed for this article.
Reason given: Why the "no Rattata mini-sprite" requirement?
Another setup may be faster, especially if the starter happens to have the required 16 Special:
- The first Pokémon's Special stat should be 16.
- The second Pokémon should be a Pidgey with 15 HP left.
- 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 ~ $D199.
- Have a Rattata (or any Pokémon with the same mini-sprite) in the third party slot.
- Have a Charmander (or any Pokémon with the same mini-sprite) in the fourth party slot.
Once this setup is done, flash the Pokémon menu at least once.
Once the player stands on the tile right from the Youngster and completes the "0x10 0x24" setup:
- Talk to the Youngster, and close his dialog box with B.
- You will walk automatically and the menu should keep popping up. Hold B when the menu is closed to walk around in any direction.
As mentioned above, the glitch works by tricking the game into loading an invalid path for the player to follow, which overwrites $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.
Of course, the point of this whole setup is that the player will be able to walk through walls and NPCs, just like in any scripted movement (except for the last step).
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.
Brock Through Walls from a wall
It is possible to trigger this glitch from the top of the Youngster, as long as the player can reach there using another glitch (e.g. Rival's effect). The principle of setup is similar, but instead of "0x10 0x24", the player needs to set up "0x0F 0x23" at an appropriate address, since that is the coordinates of the tile above the Youngster.
Notably, this variant is used in the Pokémon Yellow reverse badge acquisition no underflow route, where an HP Up (ID 0x23) picked up on Route 2 is used as part of the setup.
Guide music in a building sub-glitch
If the player walks into Pewter Museum with this glitch active, it is possible for the guide music to remain playing.
Entering the Pokémon League with no badges or wrong warps
Brock Through Walls can also be used to enter the Pokémon League with no Badges, without the expanded items pack or wrong warps.
1. Perform a death-warp with a medium-slow growth rate Pokémon such as Nidoking at level 1.
2. Use the experience underflow glitch to raise it to level 100.
3. Enter the top-right house in Pewter City (pictured, below):
4. Perform the Pewter Gym skip glitch
5. Perform Brock Through Walls
6. Follow the directions below as such:
Move left until second picture, below:
Move down until this picture, below:
Move one step left, one step up and continue walking up to reach the Elite Four door, where you can challenge the Pokémon League.
To make the Elite Four challenge less difficult, more than one Brock Through Walls iteration can be used if an Escape Rope (from Pewter City Poké Mart) or Pokémon with Teleport (i.e. Abra) is prepared and the last location that the player healed at was Viridian City or Pewter City (or Pallet Town?). This can be done to acquire TMs (such as TM26 Earthquake from Silph Co. 10F).
Trainers can be grinded against to afford items such as X Attack and X Accuracy, and the player can set up or heal their Pokémon if a Poison-type Pokémon is sent out against Lance's Dragonair, which can only use Agility against those Pokémon and with infinite PP.
Additionally the Level 100 Pokémon can be cloned, however the linkless save corruption method is risky and can easily lead to destruction of the save file.
If you prefer not to use your own Pokémon, you can also trade one over from another game, but it will not obey you without any Badges. This viability of this approach is unknown.
YouTube video of this technique
Text to speech:
No text to speech:
Video demonstration of core procedure