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

How to beat Pokemon Yellow in 0:00 - Page 1

How to beat Pokemon Yellow in 0:00

Posted by: Edythator
Date: 2016-02-02 23:30:33
Now i really want more information about this glitch. It seems so interesting and cool. If you don't know what glitch i'm talking about, check out Scykoh's video, https://www.youtube.com/watch?v=OyhEKG_g53o

I'm wondering, what are the possibilities with this glitch? Also what does it do? Corrupt SRAM etc?

Re: How to beat Pokemon Yellow in 0:00

Posted by: Krys3000
Date: 2016-02-03 03:44:38
Nowadays, this glitch is one of the most well known, I think. We discussed it many times here, and I recently answered on a thread similar to yours.

I could give you a basic "how to" of all the possibilities of this glitch ; besides finishing the game quickly, you can use it to trigger many other glitches, so you can basically get any Pokémon or item, activate a walk through walls mode, get all badges, warp anywhere, get a lot of money etc. Unless you understand french (you can read this, then) it would take some time to explain the whole thing and I don't really have it now but I'll do it asap ;)

Re: How to beat Pokemon Yellow in 0:00

Posted by: Krys3000
Date: 2016-02-07 14:39:19
Alright, let's settle this once and for all so everyone has the answer.

So, when you have a current save file in your game and shut down a new game during the saving process, some data from the PREVIOUS save file will be kept in the new one because it still haven't been overwritten. This is a well-known trick used to start the game with your previous party.

Now if you do that WITHOUT a previous save file, it will corrupt the save file in the way that several RAM addresses get the value "FF" (hexadecimal for 255). It is the case of the entire memory block going from RAM address $D163 to $D2F6. As you can see in the RAM Map, this is the data for your party's Pokémon.

As you can see in this map, $D163 is the number of Pokémon. So because of this, you now have 255 Pokémon. After this address, the memory block is structured in this way:
- hex ID for the 6 Pokémon of your party followed by a party terminator (7 addresses, $D164-$D16A)
- Data from each Pokémon (consisting in 44 memory addresses per Pokémon, making a total of 264 addresses)
- The 11 letters of each Pokémon's OT (66 addresses, then)
- The 11 letters of each Pokémon's nickname (66 addresses again)

Because the game thinks you have 255 Pokémon, it reads the 255 addresses starting from $D164 and displays the given Pokémon in your party. Because all of those are FF, every Pokémon will be the Pokémon with an hex ID of FF ("Charizard 'M").

The data from the 6 first Pokémon will of course be FF in every address, and it's also the case for the Pokémon 7, 8, and 9, because of the memory's particular structure that contains the OT and nickname AFTER the data of the Pokémon: the game takes the 44 addresses after the data block for Pokémon 6 ($D273 to $D29E) and thinks this is the data block for Pokémon 7. Indeed, 44 * 3 = 66 * 2, so if you consider the OT/Nick section as data sections for extra Pokémon, you end EXACTLY to Pokémon 9.

Anyway. All the remaining Pokémon will receive data from the rest of the RAM (in order) that was not overwritten with FFs. For example, Pokémon 10's data is taken from the section immediately after the party section (Pokédex, 38 addresses, then the beginning of the item inventory). And here lies the trick: if you switch Pokémon 1 to 9 with any other Pokémon, you will insert a block of 44 FF in a section of the RAM which is not supposed to contain this value

What is usually done with Save Abuse is a switch between Pokémon 10 and Pokémon 1 (because it's quicker, but it could be any Pokémon up to Pokémon 9). This puts FF in every dex value (you then have 152 caught Pokémon) and also this address: $D31D. As you can see in the map, this is the number of items, so you now have 255 items. This is called an 'expanded item pack' and is traditionnally triggered with another glitch known as the item underflow glitch. I will explain to you why this is very cool and how we can use this to finish the game in 0:00, but I'd like to first finish my demonstration on the direct possibilities of the save abuse glitch.

The tricky thing about switching Pokémon, is that it moves the 44 data addresses, but also the 2x 11 addresses located further and which usually matches the OT and nickname of the Pokémon. So when you switch a 'full FF' Pokémon with another Pokémon, you corrupt three different places of the memory. Because of this, it is very hard to predict the effect of a switch since you can overwrite the 44 address corruption with one of the 11 address corruption. But after several hours of work, I was able to do a list of every cool/useful effects you can trigger with Pokémon switching, and the side effects of those.



So as you can see, modifying memory by switching Pokémon is like using a weapon of mass destruction. You have little control about what happens. This is why the expanded item pack is really cool. This idea is basically the same: you normally have access to 20 items in your inventory, or 50 in your PC. If you have 255 items, the extra items will be taken from the following RAM addresses. This allows you to precisely modify ONE address by either switching items with a different hex values, or just tossing items to change the quantity; similar to a more 'surgical strike' than the massive save abuse 66 address modification.

We're good for another list, then:

Things you can modify with the Expanded Item Menu triggered by the Pokémon 10 switch:
- 21th quantity, 22th and 22th quantity: money
- 23th to 28th: Rival's Name
- 29th: Badges
- 30th quantity, 31th: Trainer's ID
- 33th quantity, 34th: Event displacement
- 34th quantity to 36th: Coordinates of the player in the current map. This is used to get several items through the celadon loop trick.
- 36th quantity: Reached map while going through a door. This is used for the Hall of Fame warp to speedrun the game. Hall of fame ID is 118 (hex:76) so if you have 118 items and go though a door, you will be in the Hall of Fame.

Things you can modify with the Expanded PC triggered by the Pokémon 59 switch:
- 51th quantity and 52th: active Pokémon box
- 52th quantity: number of Hof teams
- 53th quantity and 54th: number of casino chips. This can be used to get several items through the casino chips trick.
- 54th quantity to 91th: collectable items status. This can be used to get several items through the missable object trick.

If you want more informations about the subtricks to get items, don't hesitate to ask.

The last information I'm gonna drop here is about the Fossil Conversion Glitch which is absolutely amazing. It allows you to start the game with the Pokémon of your choice. Read this to know more:  http://forums.glitchcity.info/index.php/topic,7137.msg198722.html#msg198722 and you can watch this video I made. Activate annotations to get the English translation.

Sorry for the long post but you seemed to be interested about this glitch so… If you don't get something don't hesitate to ask.