Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Generation I Glitch Discussion

Brock Through Walls - Page 1

Brock Through Walls

Posted by: Sanqui
Date: 2014-08-19 04:04:56
This is a relatively easy glitch which lets you walk through walls as early as Brock skip.  Basically, performing the Brock skip and then speaking to the guy who leads you the gym from the right, while having a specific setup, activates a walk through walls state.
You can see it in action in this WR run: https://www.youtube.com/watch?v=LqbsGKH5mQE

How this works is as follows.  When the guy's script activates, the game searches through a table of coordinates and pointers to figure out your initial movement.  However, the developers didn't account for you standing to the right of him, so there's no path defined.  Usually, if you try to speak to him without any preparation, the game will softlock, since it can't find your coordinates anywhere in memory.  However, with a little setup, you can prop the game to find your position and read an invalid path.
The method used in this run requires having a Lv. 8 Bulbasaur with 16 Tackle PP and 36 Growl PP, having the moves in the 2nd and 3rd slot.  You also need to look at its stats screen.  This results in the game finding the player coordinates in memory as the PP (the coords need to be at xxx2, xxx6, xxxA, or xxxE), and reading the next two bytes (4rd PP and level) as a pointer to the path.  $800 happens to be an useful glitch path, which overflows and overwrites the "disallowed buttons" variable, letting you walk through walls.

Cheers to 0xwas for demonstrating this on the Japanese version (where the setup is more trivial), MrWint for explaining how the glitch works, myself for figuring out the details again (Kappa), Dabomstew for figuring out the Bulbasaur setup, and Shenanagans other routing and doing the run.  Great job all around!

Re: Brock Through Walls

Posted by: Torchickens
Date: 2014-08-19 09:31:29
Very cool.

Strangely, I was also experimenting with invalid Brock skip positions yesterday after Chamale mentioned Brock skip walk through walls on the TASVideos forums.

Thank you for your explanation on how it works. I suspected the route probably wasn't constant when I couldn't replicate the exact effects described here in Green (instead, one tile north of the guy lead me into the museum).

Do you have a link to 0xwas's demonstration, out of interest?

Edit: I think I found it.


This results in the game finding the player coordinates in memory as the PP (the coords need to be at xxx2, xxx6, xxxA, or xxxE)


I don't get what you mean. I notice that at the tile one step right from the NPC, my coordinates according to D361-D362, D364-D365 are y=16 (hex:10), x=36 (hex:24), y block= 00 x block=00 though, and that matches up with Bulbasaur's second and third move PP (0x24, 0x10).

This trick is also reminiscent of my museum guy walk through walls trick.

Re: Brock Through Walls

Posted by: Sanqui
Date: 2014-08-19 15:04:58

This results in the game finding the player coordinates in memory as the PP (the coords need to be at xxx2, xxx6, xxxA, or xxxE)


I don't get what you mean. I notice that at the tile one step right from the NPC, my coordinates according to D361-D362, D364-D365 are y=16 (hex:10), x=36 (hex:24), y block= 00 x block=00 though, and that matches up with Bulbasaur's second and third move PP (0x24, 0x10).


The coordinates need to be at a memory location which ends with 2, 6, A, or E.  The 2nd move's PP is located at D02E, so the game matches the coordinates there.  The next two bytes read (4th move's PP and level) are read as the path pointer ($0800 in the Bulbasaur route).

Re: Brock Through Walls

Posted by: Torchickens
Date: 2014-08-19 15:22:57


This results in the game finding the player coordinates in memory as the PP (the coords need to be at xxx2, xxx6, xxxA, or xxxE)


I don't get what you mean. I notice that at the tile one step right from the NPC, my coordinates according to D361-D362, D364-D365 are y=16 (hex:10), x=36 (hex:24), y block= 00 x block=00 though, and that matches up with Bulbasaur's second and third move PP (0x24, 0x10).


The coordinates need to be at a memory location which ends with 2, 6, A, or E.  The 2nd move's PP is located at D02E, so the game matches the coordinates there.  The next two bytes read (4th move's PP and level) are read as the route pointer ($0800 in the Bulbasaur route).


That's an in battle address and the glitch works with 00s there. PP move 2 for Pokémon 1 is at D189/A so I'm confused, because it seems to be the first coordinate address that counts according to what you just posted.

There is a copy of this data at AF52 though, which should be save data as it's in SRAM.

Still, when I swap Bulbasaur to #02 and don't save (leaving AF52 as it is) the glitch doesn't work.  :???:

Also, after playing around with switching Bulbasaur the glitch stopped working. Why is this?

Sorry for so many questions. It's just these problems are hurtful for speedrunning, like ThomazSDA and I just started a new game and got the requirements on Bulbasaur, but the glitch wouldn't work.

Re: Brock Through Walls

Posted by: Sanqui
Date: 2014-08-19 15:37:03

The coordinates need to be at a memory location which ends with 2, 6, A, or E.  The 2nd move's PP is located at D02E, so the game matches the coordinates there.  The next two bytes read (4th move's PP and level) are read as the route pointer ($0800 in the Bulbasaur route).

That's an in battle address and the glitch works with 00s there. PP move 2 for Pokémon 1 is at D189/A so I'm confused, because it seems to be the first coordinate address that counts according to what you just posted.

There is a copy of this data at AF52 though, which should be save data as it's in SRAM.

Still, when I swap Bulbasaur to #02 and don't save (leaving AF52 as it is) the glitch doesn't work.  :???:

Also, after playing around with switching Bulbasaur the glitch stopped working. Why is this?

Sorry for so many questions. It's just these problems are hurtful for speedrunning, like ThomazSDA and I just started a new game and got the requirements on Bulbasaur, but the glitch wouldn't work.

I'm kind of confused by what you did, haha, and I might've made some mistakes during my explanation.  Here's a brief speedrunning route by Shenanagans_, including the correct requirements.  I've just ran it in the past hour.
The reason it works is, when you menuflash Bulbasaur, its data gets copied to CF98 (the disassembly doesn't have a name for this).  The 2nd move PP is then located at CFB6 (sorry, I was wrong earlier with D02E), which works for the exploit.
Sorry about the confusion.

Re: Brock Through Walls

Posted by: Torchickens
Date: 2014-08-19 16:16:10
Thanks for the address (and also the route!). I can verify that gets written to, but even after menu-flashing, it still might not work, but apparently if you catch a Pokémon before doing it, it may work, hmm.

Re: Brock Through Walls

Posted by: Sanqui
Date: 2014-08-19 16:27:30

Thanks for the address (and also the route!). I can verify that gets written to, but even after menu-flashing, it still might not work, but apparently if you catch a Pokémon before doing it, it may work, hmm.

That's actually really odd.  Can I have a save right before the glitch with the plain Bulbasaur setup that doesn't work?

EDIT: P.S. I added you on Skype so we can talk faster.

Re: Brock Through Walls

Posted by: Torchickens
Date: 2014-08-19 16:32:19
Here's a MediaFire link.

http://www.mediafire.com/download/21dfj9s0585cj2p/pokered_Brock_skip.sav

I haven't tested getting an extra Pokémon myself yet, this is what Thomaz said:



My first try used a nicknamed Bulbasaur. That didn't work so I figured, maybe it's the name and thus I redid my file and didn't nickname anyone. But as you might have guessed, that didn't work either.

I then proceeded to catch two Pokemon, a Pidgey and Rattata. And that worked! I'm not sure if the amount of Pokemon matters or it's species, but I'll try and see what happens if I deposit some of them.

To confirm: using just one Pokemon extra works also. This doesn't rule out the fact that catching two matters, but I assume it doesn't.



EDIT: P.S. I added you on Skype so we can talk faster.


OK, I'll sign in! I might have to go soon, unfortunately, but I'll keep testing.

Edit: So from my conversation with Sanky, apparently PP 36 and 16 only worked because of a coincidence. Move 2's PP should be 16, and move 3's PP should be 36, not the other way round.

Re: Brock Through Walls

Posted by: Sanqui
Date: 2014-08-20 04:22:51
Edit: So from my conversation with Sanky, apparently PP 16 and 36 only worked because of a coincidence. Move 2's PP should be 36, and move 3's PP should be 16, not the other way round.

Still wrong..  Sigh.
[img]http://sanqui.sweb.cz/screen/2014082011%3A29%3A16bgb(debugging)-4888.png[/img]
By the way, Bulbasaur needs to be last in your party menu when you flash it.

I think we should edit/remove some posts from this thread to make sure nobody else gets confused again.

Re: Brock Through Walls

Posted by: Torchickens
Date: 2014-08-20 05:36:45
Oops, I meant to say 16 and 36 respectively, lol.

And I figured out why it was working for me the other way round on that other save (not the new game one)

Coincidentally I had working data at D196.

D196: Bulbasaur's Special = 16 (10h)
D197: Species = Pidgey (24h)
D198/9: Pidgey's HP = 15 (000F)

Re: Brock Through Walls

Posted by: Kelvinv
Date: 2014-08-20 13:08:57
I wonder if it possible to have Oak have a glitch path too in the beginning of the game

Re: Brock Through Walls

Posted by: camper
Date: 2014-08-20 23:57:56

I wonder if it possible to have Oak have a glitch path too in the beginning of the game

You need to be standing at the wrong spot, which is impossible.