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).
"Walk through walls" GameShark codes have always been fun and useful to people, but a similar effect is now possible without the use of a game-altering device.
There are many 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 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 often never finds them, usually resulting 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 $CD38, 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 manipulate an item 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
There are multiple methods to set up "0x10 0x24" in a suitable location in RAM. Some common setups are describes below.
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 PP must be exactly 16.
- The third move's PP must be exactly 36.
Once this is done, viewing the Pokémon party screen (also 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 (as the first move).
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 completed the "0x10 0x24" setup:
- Talk to the Youngster, and close his dialog.
- 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 $CD38.
The game never seems to intentionally set $CD38 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).
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.