Brock through walls: Difference between revisions

From Glitch City Wiki
Jump to navigation Jump to search
Content added Content deleted
>Sherkel
mNo edit summary
>Bbbbbbbbba
(HELP. I cannot tell what is concise and what is confusing.)
Line 4: Line 4:
The "walk through walls" [[GameShark]] code has always been fun and useful to people. Contrary to popular belief, a similar effect is possible without the use of a [[game-altering device]] via a glitch. It is possible to perform the "Brock Through Walls" glitch very early in the games (except in {{Y}} because the Youngster cannot be skipped in this version).
The "walk through walls" [[GameShark]] code has always been fun and useful to people. Contrary to popular belief, a similar effect is possible without the use of a [[game-altering device]] via a glitch. It is possible to perform the "Brock Through Walls" glitch very early in the games (except in {{Y}} because the Youngster cannot be skipped in this version).


There are many ways to set up this glitch, but the glitch is ultimately triggered by talking to the Pewter City Youngster from the right.
As it shouldn't be possible to talk to the Youngster from the right, the developers never programmed a path for the Youngster to follow when the player is right of the Youngster. When talking to him, the game looks for the player's coordinates but often never finds them, resulting in a softlock.


However, the player is able to write some pseudo-data in RAM representing the player's coordinates (which in this case should be $10 $24), which leads the game into using the next two bytes as a path pointer provided that the coordinates appear at an address at xxx2, xxx6, xxxA, or xxxE.
As it shouldn't be possible to talk to the Youngster from the right, the developers never programmed a path for the player to follow when the player is right of the Youngster. When talking to him, the game looks for the player's coordinates but often never finds them, resulting in a softlock.


However, the player can manipulate some 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.
Particular paths may overwrite the 'disallowed buttons' variable, allowing the player to walk through walls, similar to what happens in the glitch [[walk through walls trick (museum guy method)]].


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, similar to what happens in the glitch [[walk through walls trick (museum guy method)]].
==Requirements==
The player must have performed a method of the [[Pewter Gym skip glitch]], or have otherwise skipped Pewter Gym through another means such as a wrong warp by manipulating item 36's quantity (exit destination) in the [[expanded items pack]].


==Setup==
The latter is possible if an item quantity is manipulated to 255 (e.g. by using Missingno. to duplicate it by 128 first, reducing the quantity to 127 and duplicating it to 255). Two methods to do this without defeating Brock include the [[Cable Club escape glitch]] with [[Missingno.]] or after trading a Pokémon with [[- (move)|"-" as the first move]] from Red/Blue to Yellow (as CoolTrainer corruption can freeze the game outside of particular places such as Diglett's Cave in Red/Blue but not Yellow). With "-" corruption, it is possible to corrupt the enemy Pokémon into a Missingno. by opening the Pokémon menu before opening and closing the Fight menu/scrolling past "-".
===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, for example by:
===Japanese {{RGB}}===
* Using the [[Cable Club escape glitch]] to encounter a [[Missingno.]]
* Have a Rattata (or any Pokémon with the same mini-sprite) in the third party slot.
* Trading a Pokémon with [[- (move)|"-" as the first move]] from Red/Blue to Yellow, and use "-" corruption to corrupt the enemy Pokémon into a Missingno.
* Have a Charmander (or any Pokémon with the same mini-sprite) in the fourth party slot.
After using Missingno. item duplication to manipulate an item quantity to 255, [[dry underflow]] can be performed.
Once this setup is done, flash the Pokémon menu at least once.


A third possibility is to first defeat Brock, and later use another glitch to corrupt the "defeated Brock" event flag back to 0.
===International {{RB}}===

Have a Bulbasaur meeting the following requirements :
===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.

====International {{RB}}====
Have a Pokémon meeting the following requirements:
* It must be level 8.
* It must be level 8.
* It must be the '''last''' Pokémon in your party.
* It must be the '''last''' Pokémon in your party.
* It must know exactly three attacks :
* It must know exactly three moves:
** The second attack's PP must be exactly 16.
** The second move's PP must be exactly 16.
** The third attack's PP must be exactly 36.
** 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.)
Once this is done, flash Bulbasaur's stat screen.


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).
Or it is possible to do the following instead :

{{researchneeded|Why the "no Rattata mini-sprite" requirement?}}
{{clr}}
Another setup may be faster, especially if the starter happen to have the required 16 Special:
* The first Pokémon's Special stat should be 16.
* The first Pokémon's Special stat should be 16.
* The second Pokémon should be a Pidgey with 15 HP left.
* 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.
* However, there should be no Rattata mini-sprite in the first two positions, or else the game will softlock.
This setup will put "10 24 00 0F" at $D196 ~ $D199.

====Japanese {{RGB}}====
* 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.


==Procedure==
==Procedure==
Once the player stands on tile right from the Youngster and performed to correct action (listed in the corresponding Requirement sub-section):
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.
# 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.
# You will walk automatically and the menu should keep popping up. Hold B when the menu is closed to walk around in any direction.

==Explanation==
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 seem to intentionally set $CD38 to any nonzero value, but its effect is to allow certain joypad inputs to override scripted movement. And 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 [[Get stuck in a wall|last]] [[Walk on water through Surf|step]]).


==Guide music in a building sub-glitch==
==Guide music in a building sub-glitch==

Revision as of 15:28, 21 March 2019

Bulbapedia also has an article about Brock through walls.

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 speedrunning Pokémon Red and Blue.

The "walk through walls" GameShark code has always been fun and useful to people. Contrary to popular belief, a similar effect is possible without the use of a game-altering device via a glitch. It is possible to perform the "Brock Through Walls" glitch very early in the games (except in Pokémon Yellow because the Youngster cannot be skipped in this version).

There are many ways to set up this glitch, but the glitch is ultimately triggered by talking to the Pewter City Youngster from the right.

As it shouldn't be possible to talk to the Youngster from the right, the developers never programmed a path for the player to follow when the player is right of the Youngster. When talking to him, the game looks for the player's coordinates but often never finds them, resulting in a softlock.

However, the player can manipulate some 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.

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, similar to what happens in the glitch walk through walls trick (museum guy method).

Setup

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, for example by:

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 corrupt 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.

International Pokémon Red and Blue

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:
    • 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 happen 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 put "10 24 00 0F" at $D196 ~ $D199.

Japanese Pokémon Red, Green, and Pokémon Blue (Japanese)

  • 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.

Procedure

Once the player stands on the tile right from the Youngster and completed the "0x10 0x24" setup:

  1. Talk to the Youngster, and close his dialog.
  2. You will walk automatically and the menu should keep popping up. Hold B when the menu is closed to walk around in any direction.

Explanation

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 seem to intentionally set $CD38 to any nonzero value, but its effect is to allow certain joypad inputs to override scripted movement. And 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.

YouTube video by ChickasaurusGL


Video Demonstration

YouTube video by ChickasaurusGL


See also

External links