[GSC] Advanced Celebi Glitch
Posted by: gia
Date: 2009-09-22 15:08:44
The Celebi glitch leftshifts the Pokémon bytes one by one, that's why you need 4 deposits to move Beat Up to the species byte. The nicknames sometimes are destroyed and sometimes not because the byte shift stops when it finds FF, which marks the end of the party species list, which gets destroyed when you move the 7th Pokémon to your party. But since your Pokémon can have FF as part of their own data, then the shifting can end when it finds this byte instead of going all the way until past the daycare data to find a natural FF, the PokéDex is also on the way so it also gets scrambled.
When you withdraw a Pokémon the FF is placed again so it breaks the shifting mode. But the FF isn't placed when you use Move, so you can always rightshift by moving Pokémon in and leftshift by moving them out. The shifting like I said stops when you meet an FF, so you can have a Pokémon dedicated to this role, so that the nicknames aren't destroyed (or whatever data you want to protect from shifting like another Pokémon,or the PokéDex).
By depositing with the wall behind your test subject then you leftshift its bytes without corrupting more data, but you can deposit a max of Pokémon since your party isn't infinite. To be able to keep shifting you have to bring Pokémon in, but this rightshifts and undoes your advance, to fix this you put the wall in front of the test subject before bringing Pokémon in, that way the subject doesn't shift and then you can continue the deposits to keep working.
This way you can build any Pokémon, your only trouble would be inserting FF values in your Pokémon structure which might be wanted for DVs at least (since getting this FF in would not allow you to modify the rest of the Pokémon data past this value). For that a little planning, plan it so that after you finish you can max the Pokémon happiness (putting an FF there) and then shift the rest of data so that the species, items and moves are set properly along with the maxed DVs.
I made a video where I build a shiny celebi lvl 0 (turns to 1 then to 100 later), but if you think about it you can build any Pokémon using the species from your many donors, the happiness counter for any hex that isn't available on a Pokémon species and the status byte and Full Heals to easily set bytes to zero.
[youtube]http://www.youtube.com/watch?v=BnSEbS2vk-4[/youtube]
Data structure:
Specie
Held Item
Move 1
Move 2
Move 3
Move 4
OT ID Hi
OT ID Low
XP Hi
XP Med
XP Low
HP EV Hi
HP EV Low
Attack EV Hi
Attack EV Low
Defense EV Hi
Defense EV Low
Speed EV Hi
Speed EV Low
Special EV hi
Special EV Low
IV Hi
IV Low
PP1
PP2
PP3
PP4
happiness/hatchfaster
rus
Caught Data Hi (Where)
Caught Data Low (Time, Level)
Level
Status
?
Current HP Hi
Current HP Low
Max HP Hi
Max HP Low
Attack Hi
Attack Low
Defense Hi
Defense Low
Speed Hi
Speed Low
Special Attack hi
Special Attak Low
Special Defense Hi
Special Defense Low
[Next Pokémon]