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

pokemon inter-gen trading glitches? - Page 1

pokemon inter-gen trading glitches?

Posted by: PhantoMewtwo
Date: 2014-09-18 07:16:39
Is there any glitch in RBY where if you trade a pokemon to GSC it will be holding an item? (Note that in gen 1 pokemon couldnt hold items)

Re: pokemon inter-gen trading glitches?

Posted by: camper
Date: 2014-09-18 08:23:41
All Pokemon, when transferred from a gen 1 game and a gen 2 game, will hold an item. The item depends on the "catch rate" of the traded Pokemon. (Yes, catch rate was stored in independent Pokemon for some reason)

Re: pokemon inter-gen trading glitches?

Posted by: Torchickens
Date: 2014-09-18 10:04:53
Additionally, it's possible to change the item via glitching. Like what camper says, catch rate is stored in memory (specifically in WRAM) in a Pokémon's data structure, just before the move 1 memory address (at D172 for party Pokémon 1). So if you were to use the code 01xx72D1, you could change the first Pokémon's catch rate; and hence held item.

The index number of the held item is often equal to the catch rate, but not always; certain index numbers correspond to item with different index numbers.

Glitches to get wrong items:

1) I think it's possible to use the ZZAZZ glitch to get a hex:99 Teru-Sama IIRC.

2) Another way of 'registering' a glitch item should be with the 'storage box bytes shifting back' glitch with a remaining PP of 63 (possible with the PP underflow glitch, or you could theretically use a Trainer ID with a FF byte in it, etc.)

Note though that this messes up the types, so the Pokémon will be considered 'abnormal' even if you make the species bytes equal and the Pokémon less than level 101 (actually I need to double check if level counts. I think it does). Paco81 said you can fix this by taking the Pokémon into Stadium 2, but this may revert the catch rate back to normal?

3) You can use arbitrary code execution to get any held item you want.

This is my Red/Blue 8F code (for Pigdevil2010 or TheZZAZZGlitch's bootstrap codes), which changes the index number of the catch rate of stored Pokémon 1 to the quantity of item 2.

Poké Ball x250
Thunderstone x211
TM34 x157
TM18 x201

04 | inc b
FA 21 D3 |ld a, D321
EA 9D DA |ld DA9D, a
C9          |ret


To port to Yellow (requires ws m), change Thunderstone into Fire Stone, and x157 into x156.

The reason why I chose stored Pokémon 1 was because 8F requires specific party Pokémon, so you probably wouldn't want to trade these away.

For ws m this applies to stored Pokémon, not party Pokémon, so changing party Pokémon 1 would be a better idea there.

So, a better code for Yellow would be:

Poké Ball x250
Fire Stone x211
TM34 x114
TM09 x201

04 | inc b
FA 20 D3 |ld a, D320
EA 72 D1 |ld D172, a
C9          |ret


What are invalid held items useful for? Some Key Items are potentially really useful for the duplicate key items glitch in GSC, because this lets you expand the key items pocket, and then the balls pocket to use boxed PC items there from anywhere.

I need to revise the glitch again, but the quantity of an item in certain circumstances may never decrease. In addition to stored PC items, the radio tunage address can be accessed past the end of the last valid key item address, and it can be $20; allowing you to use infinite Rare Candies.

The most useful application of duplicate key items glitch is arbitrary code execution. Certain TMs and HMs execute code from the memory when they are not in the TM/HM pocket.

It's arguably not worth it, but in Crystal TM33 can execute arbitrary code from F418 (essentially D418, the third character of fifth enemy Pokémon's nickname). You can access TM33 from the balls pocket if you had one in the stored PC items and set up balls pocket expansion via duplicate key items glitch.

With Generation I arbitrary code you can put C3 F2 D8 in the third character of a Pokémon's nickname; which is a jump to D8F2 (Crystal PC item 1). To put that data where it should, you can battle another Generation II game.

From PC items, you can set up code to do things like get Celebi, as I've done here.

But, I think it would be easier to just do Coin Case arbitrary code execution on Gold/Silver then transfer the Celebi to Crystal.

Coincidentally, you can use duplicate key items to get Celebi with no Crystal arbitrary code or a second Generation II game, however, it messes up event flags.

4) FE corruption, I think.