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 II Glitch Discussion

Obtaining arbitrary items in G/S/C through Time Capsule - Page 1

Obtaining arbitrary items in G/S/C through Time Capsule

Posted by: Háčky
Date: 2013-07-23 08:46:12
I dont know if this is a new discovery or just something thats not been well-documented, but it is possible to obtain arbitrary items in Generation II by modifying a Pokémons catch rate/held item byte using glitches in Generation I before trading it through the Time Capsule.

The item a Generation I Pokémon holds when traded to a Generation II game is determined by the byte which stored the species catch rate in Generation I. The developers deliberately arranged some item index numbers in Generation II so that certain Pokémon would hold certain items when traded from Generation Ie.g., Lucky Punch, which boosts Chanseys critical hit ratio, was given the index number 0x1E corresponding with Chanseys unique catch rate of 30 so that Chansey traded from Generation I would hold it. However, the most common catch rate numbers correspond to item index numbers which were intentionally left blank (Teru-sama and dummy TMs/HMs), except for the Card Key, which is a key item that cannot be legitimately held. When a Generation I Pokémon with one of these catch rates is traded to Generation II, it receives a held item determined by a table which can be found at offsets 286D6286ED in the Gold/Silver ROM and 287852879C in Crystal:

Catch rate 25: Leftovers (instead of 0x19 Teru-sama)
Catch rate 45: Bitter Berry (instead of 0x2D Teru-sama)
Catch rate 50: Gold Berry (instead of 0x32 Teru-sama)
Catch rate 90: Berry (instead of 0x5A Teru-sama)
Catch rate 100: Berry (instead of 0x64 Teru-sama)
Catch rate 120: Berry (instead of 0x78 Teru-sama)
Catch rate 127: Berry (instead of 0x7F Card Key)
Catch rate 135: Berry (instead of 0x87 Teru-sama)
Catch rate 190: Berry (instead of 0xBE Teru-sama)
Catch rate 195: Berry (instead of 0xC3 dummy TM04)
Catch rate 220: Berry (instead of 0xDC dummy TM28)
Catch rate 250: Berry (instead of 0xFA HM08)
Catch rate 255: Berry (instead of 0xFF HM13)

(Curiously, no Pokémon in Red/Blue/Yellow actually has a catch rate of 135, 195, 220, or 250. Maybe those catch rates exist in the Japanese Red/Green? The developers clearly thought it was necessary to reserve indices 195 and 220 by placing dummy items between the real TM04 and TM05, and between TM27 and the real TM28.)

If an item index/catch rate doesnt appear in this table, it is left alone by the Time Capsule. This allows a Pokémon holding an item to be traded to Generation I and retain that held item when traded back to Generation II. If we use 8F or ws m to modify a Pokémons stored catch rate in a Generation I game, it will hold the corresponding item when traded to Generation II, even if it is a key item or Teru-sama, as long is it is not one of the items converted by the table above. This program will change the first party Pokémons held item to any desired value:

Lemonade      XX
ThunderStone 114 [in Red/Blue] or 113 [in Yellow]
TM09        119
TM01

3E XX      ld a, XX
21 7½ D1  ld hl, $D172 [in Red/Blue] or $D171 [in Yellow]
77        ld (hl), a
C9        ret


This may be an easier way to obtain key items for item duplication than using the Celebi glitch, since once the program is set up, you can quickly give several Pokémon different items that you want. It can also be used to obtain the glitch items HM10HM12 (but not HM13, because its index 0xFF is a valid catch rate), for which the Celebi glitch would require glitch moves.

Re: Obtaining arbitrary items in G/S/C through Time Capsule

Posted by: Torchickens
Date: 2013-07-24 07:13:04
Good work! Great job on finding the catch rate tables in Generation II, I knew that some items weren't a direct conversion but I wasn't sure why.

Now, as you say, if you use 8F to give a Generation I Pokémon a held item that is a Key Item and transfer it to Generation II, when you take it it will go into the Key Items pocket and this way, if it is a duplicate, you can use the infinite items/item mutation glitch to convert your item to something else, preferably a Master Ball x133 for e.g. two Lost Items (dec: 130), a Card Key (dec: 127) and a Basement Key (dec: 133).

Sometime ago, I found a bug with Generation I Pokémon holding HM12, in which having one changes your entire party according to Pokémon Gold! Their stats change including level, known moves, stats, OT and sometimes HP.

Now with 8F, there's finally a way to replicate it without Celebi glitch, but its probably possible with the remaining HP glitch, although I've never tried this before.

When I tried depositing a Fearow affected by this glitch into the Day Care Center, it jumped from level 1 back to its original level (100). It appears that its moves changed again. Before the trade: Fly, Mirror Move, Drill Peck, Agility. After the trade: Mirror Move, Drill Peck, Agility, Seismic Toss. After being taken into DayCare (although they could have changed after closing the trade menu): Pursuit, Mirror Move, Drill Peck, Agility.

With a level 2 Rattata, its current experience changed from 8 to 2048, suggesting that this glitch can be used to make Pokémon level up after being deposited in the DayCare Center or having a battle. Its current level changed to 0, too. I guess if this happened with a medium-slow growth Pokémon I could have used a Rare Candy to get it to level 1, then had it gain less than 54 experience to make it jump to level 100.

I do wonder what would happen if the equivalent item is mail. Would it have no description or would the description be glitched?

Edit: For some reason after getting HM12 as a hold item with 8F, the HM12 glitch isn't working. I'm not sure if its because of my party. Or maybe the Generation I game must be Yellow?
Edit2: I've deduced it's something to do with Pokémon Gold. Using the Yellow save file that it was previously working on no longer works. I formally had a Pidgeot/Rattata on Gold, a Forretress that I deposited and a ????? that was erased with the Bug Catching Contest but I changed my party to Pidgeot, Rattata, Victreebel, Magneton, Parasect and Weezing.
Edit3: I can no longer get this glitch to work, even with my old Gold save file.
Edit4: I tried Mirage Mail and it had no description at all. Boring.

Re: Obtaining arbitrary items in G/S/C through Time Capsule

Posted by: Háčky
Date: 2013-07-25 03:08:31
Now with 8F, there's finally a way to replicate it without Celebi glitch, but its probably possible with the remaining HP glitch, although I've never tried this before.

I thought there might have been a way to shift the data like that in Generation I, but I didnt know what it was. Using that glitch as-is should shift a Pokémons second move into the held item slot, which makes the requirements similar to the Celebi glitch. I wonder if theres a way to shift another interesting byte there?




In pursuit of the mystery catch rates 135/195/220/250, I checked the Japanese Red/Green, and found they have the same catch rates as other games. The only species which have changed between versions are Dragonair and Dragonite, which have catch rates of 27 (Protein) and 9 (Antidote, not that there are any wild Dragonite from which you can claim this spectacular prize) in Yellow, but both have 45 ( Bitter Berry) in every other game. However, I was surprised to find that, contrary to what some sources claim, Pikachu and Kadabra have the same catch rates in Yellow, according to its base stats table, as in any other game.

Memory address 0xCFED holds the catch rate of the current opponent in battle. If you monitor Prof. Oaks battle with Pikachu at the start of the game, youll see that its catch rate is 190, but when he gives Pikachu to you, it will have a stored catch rate of 163 (Light Ball) at 0xD171. Its understandable that there would be a special marker like that for the starter Pikachu in Yellow, but I cant understand what happens to Kadabra. When you encounter Kadabra in the wild, it has a catch rate of 100. Once you catch it, it will appear in your party or PC with a stored catch rate of 96 (TwistedSpoon). This is the only way to legitimately get a TwistedSpoon in Generation II: catch a wild Kadabra in Yellow, on Route 8, with a 5% encounter rate, and trade it through the Time Capsule. If you thought it was smarter to catch the more common Level 15+ Abra on this same route and use a single Rare Candy to evolve it, then you wont get a TwistedSpoon. If you managed to catch Kadabra at Level 51 in Cerulean Cave in Red/Blue, you wont get a TwistedSpoon. I know Gold/Silver were in development at the same time as Yellow, so they may have programmed this with held items in mind, but why write a special routine to change Kadabras held item after its caught instead of just editing the species catch rate itself? Why go to the trouble of changing anything, when Kadabras catch rate of 100 was already unique among Generation I Pokémon? Why is Kadabra the only Pokémon that does this? Is Kadabra the only Pokémon that does this? Without finding the code that carries out this bait-and-switch, its hard to be certain.

Re: Obtaining arbitrary items in G/S/C through Time Capsule

Posted by: Torchickens
Date: 2013-07-25 14:11:44

Now with 8F, there's finally a way to replicate it without Celebi glitch, but its probably possible with the remaining HP glitch, although I've never tried this before.

I thought there might have been a way to shift the data like that in Generation I, but I didnt know what it was. Using that glitch as-is should shift a Pokémons second move into the held item slot, which makes the requirements similar to the Celebi glitch. I wonder if theres a way to shift another interesting byte there?




In pursuit of the mystery catch rates 135/195/220/250, I checked the Japanese Red/Green, and found they have the same catch rates as other games. The only species which have changed between versions are Dragonair and Dragonite, which have catch rates of 27 (Protein) and 9 (Antidote, not that there are any wild Dragonite from which you can claim this spectacular prize) in Yellow, but both have 45 ( Bitter Berry) in every other game. However, I was surprised to find that, contrary to what some sources claim, Pikachu and Kadabra have the same catch rates in Yellow, according to its base stats table, as in any other game.

Memory address 0xCFED holds the catch rate of the current opponent in battle. If you monitor Prof. Oaks battle with Pikachu at the start of the game, youll see that its catch rate is 190, but when he gives Pikachu to you, it will have a stored catch rate of 163 (Light Ball) at 0xD171. Its understandable that there would be a special marker like that for the starter Pikachu in Yellow, but I cant understand what happens to Kadabra. When you encounter Kadabra in the wild, it has a catch rate of 100. Once you catch it, it will appear in your party or PC with a stored catch rate of 96 (TwistedSpoon). This is the only way to legitimately get a TwistedSpoon in Generation II: catch a wild Kadabra in Yellow, on Route 8, with a 5% encounter rate, and trade it through the Time Capsule. If you thought it was smarter to catch the more common Level 15+ Abra on this same route and use a single Rare Candy to evolve it, then you wont get a TwistedSpoon. If you managed to catch Kadabra at Level 51 in Cerulean Cave in Red/Blue, you wont get a TwistedSpoon. I know Gold/Silver were in development at the same time as Yellow, so they may have programmed this with held items in mind, but why write a special routine to change Kadabras held item after its caught instead of just editing the species catch rate itself? Why go to the trouble of changing anything, when Kadabras catch rate of 100 was already unique among Generation I Pokémon? Why is Kadabra the only Pokémon that does this? Is Kadabra the only Pokémon that does this? Without finding the code that carries out this bait-and-switch, its hard to be certain.


Did you mean $CFEB (RB: $CFEC)?. That seems to be the correct memory address.

Incidentally, there seems to be more than one enemy catch rate address. Another $D006 (RB: $D007) is the actual catch rate when throwing the Poké Ball, which can be halved or doubled by throwing bait or rock (also through the use of the Boulder Badge (bait) or the CascadeBadge (bait)), respectively.

It's weird that Kadabra's catch rate changes when caught in Yellow. I guess for some reason Game Freak didn't want to make Kadabra just a little bit harder to catch.

If Kadabra isn't the only Pokémon that has a changing catch rate, perhaps that's where the mystery catch rates are used? I'm just speculating here, though. I wonder if Japanese Blue and Pocket Monsters Pikachu have different catch rates?

Re: Obtaining arbitrary items in G/S/C through Time Capsule

Posted by: Háčky
Date: 2013-07-25 21:39:33
Did you mean $CFEB (RB: $CFEC)?. That seems to be the correct memory address.

Um, yeah, that one. ;D

Incidentally, there seems to be more than one enemy catch rate address. Another $D006 (RB: $D007) is the actual catch rate when throwing the Poké Ball, which can be halved or doubled by throwing bait or rock (also through the use of the Boulder Badge (bait) or the CascadeBadge (bait)), respectively.

Wow, I had no idea those items actually affected the catch rate. I thought they just played the animation and skipped your turn; I never thought to use the CascadeBadge in a legendary Pokémon battle. :P Its too bad the game doesnt read the catch rate it stores in the held item slot from there (it actually comes from a third location, Y: $D0BF / RB: $D0C0), or that would be a convenient way to manipulate held items.

It's weird that Kadabra's catch rate changes when caught in Yellow. I guess for some reason Game Freak didn't want to make Kadabra just a little bit harder to catch.

That possible, I suppose, but its still hard to imagine what prompted them to distinguish Kadabra caught in Yellow (Route 8) from those caught in Red/Green/Blue (Cerulean Cave) in the first place. They did significantly reduce Dragonairs catch rate in Yellow, but it wasnt actually catchable in the prior games (available only by evolution, and from the Game Corner in Japanese Blue), so it seems likely that that change had nothing to do with future held items, but that they just thought it was too easy to catch once they made it available in the Safari Zone. Also, if they had intended to give Dragonair from Yellow a special held item, Id think it would be a Dragon Fang, not Protein. Perhaps they simply forgot about the change, and thats why its catch rate went back to the Red/Green/Blue value in all future games.

If Kadabra isn't the only Pokémon that has a changing catch rate, perhaps that's where the mystery catch rates are used?

I had the same thought, that some Pokémon might have been given those catch rates in Yellow in anticipation of a special held item that was later scrapped, but it turns out Kadabra is the only one that gets this treatment.

Heres the rather ordinary section of code at 0F3F4 in the Red/Blue ROM that copies the relevant part of a caught Pokémons data into your party (de points to the appropriate location in your party data):
ld hl, $D0BE  ; location of enemy Pokémons types
ldi a, (hl)  ; copy type 1
ld (de), a
inc de
ldi a, (hl)  ; copy type 2
ld (de), a
inc de
ldi a, (hl)  ; copy catch rate
ld (de), a


In Yellow, that code is found at 0F270, and its the same except that it copies starting from $D0BD instead of $D0BE, and that theres something tacked on at the end which is not so ordinary:
ld a, ($CF90) ; enemy Pokémons species
cp a, $26    ; is it Kadabra?
jr nz, 3
ld a, $60    ; if so, change the catch rate to 96,
ld (de), a    ; overwriting the value that was just written


That code only runs if you have space in your party; the similar code at 0E7FB runs after a caught Pokémons data has been copied to Bills PC:
ld a, ($CF90) ; enemy Pokémons species
cp a, $26    ; is it Kadabra?
jr nz, 5
ld a, $60    ; if so, change the catch rate to 96,
ld ($DA9C), a ; overwriting the value for the first Pokémon in the PC box


I'm just speculating here, though. I wonder if Japanese Blue and Pocket Monsters Pikachu have different catch rates?

No, Japanese Blue has the same catch rates as Japanese Red/Green, English Red/Blue, and every Generation II and later game; Japanese Yellow has the same catch rates as English Yellow, with the changes to Dragonair and Dragonite.

The next possibility I can think of for where those catch rates might be used is in Pokémon Stadium. Im not familiar with that game, but according to Bulbapedia, some Pokémon won in it will hold a Normal Box (167) or Gorgeous Box (168) when traded to a Generation II game, so its possible that the game performs other catch-rate shenanigans as well. However, Im inclined to think the missing numbers are not the result of such a special event, since theyre all multiples of 5, like most actual catch rates, whereas the indices for those Boxes, Pikachus Light Ball (163), and Kadabras TwistedSpoon (96) are not.