Jump to content

Celebi Egg glitch (party method): Difference between revisions

m
→‎Explanation: Typo (upper case)
>Torchickens
(Created page with "{{Major glitches}} {{Bulbapedia2|Celebi Egg glitch}} The '''Celebi Egg trick''' is a glitch in {{GSC}}. It allows the player to obtain an Egg that hatches into a Celebi. T...")
 
m (→‎Explanation: Typo (upper case))
 
(13 intermediate revisions by 3 users not shown)
Line 1:
{{Major glitches}}
{{PRAMA|bad-clone-trick}}
{{Bulbapedia2|Celebi Egg glitch}}
The '''Celebi Egg trickglitch''' is a [[glitch]] in {{GSC}} and a [[glitch technique]] of the [[bad clone glitch]] and [[????? party overloading]]. It allows the player to obtain an Egg that hatches into a Celebi. TheAn advantage of this glitch over the [[Celebi trick]] is that the Celebi is registered into the Pokédex.
 
The bad clone glitch (one of the parent glitches of this trick) was documented by Paco81, as was his early methods on obtaining Celebi.
 
==Steps==
Line 19 ⟶ 22:
1) Deposit the bad clone into Day Care and out to stabilize it into a ?????.
 
2) Put the bad clone at the '''top''' of the party.
 
3) Use move PkMn w/o mail (other methods do '''not''' work) to move a seventh Pokémon to the top of the party.
 
4) Don't touch the party, and ask the Day Care lady to raise the ????? again. This time don't take the ????? out of the Day Care yet.
Line 27 ⟶ 30:
5) Deposit the first Pokémon and then the second Pokémon, and use move PkMn w/o mail to move the Egg to the top of the party.
 
6) Deposit Pokémon 2-65, which may shift back bytes for the Egg's name each time. After the depositing, Beat Up [0xFB] (move 3) will shift into the Pokémon species byte 2, allowing you to obtain Celebi after hatching the Egg.
 
7) Use the Bicycle to cycle around until the Egg hatches into a Celebi.
Line 39 ⟶ 42:
 
To see which IDs correspond with which moves, Pokémon and items, refer to [[The Big HEX List]].
 
==Explanation==
In Gen II, the party Pokémon data are stored in the wram as follows:
 
Party count (1 byte)
Party Pokémon 1 species (1 byte)
Party Pokémon 2 species (1 byte)
...
Party Pokémon 6 species (1 byte)
Extra space used for end-of-party marker (1 byte)
Party Pokémon 1 data (48 bytes)
Party Pokémon 2 data (48 bytes)
...
Party Pokémon 6 data (48 bytes)
Party Pokémon 1 OT name (11 bytes)
Party Pokémon 2 OT name (11 bytes)
...
Party Pokémon 6 OT name (11 bytes)
Party Pokémon 1 nickname (11 bytes)
Party Pokémon 2 nickname (11 bytes)
...
Party Pokémon 6 nickname (11 bytes)
Unused (22 bytes)
Pokédex caught flags (16 bytes)
Pokédex seen flags (16 bytes)
...
 
Of course, the species list is usually redundant since the species information is stored in the 48-byte Party Pokémon data struct (one exception is when the Pokémon is an egg, the species list will have EGG (hex FD) while the data struct has the real species). The list is terminated with an FF end-of-party marker, which is completely redundant since the party count is stored in the first byte, but the code uses the end-of-party marker in many places because it is faster to check for a FF marker than it is to keep track of numbers. The key to this glitch is to corrupt this FF marker.
 
To this end, a ????? (hex 00) is put at the top of the party, then a seventh Pokémon is moved into the party, which is possible because Bill's PC recognizes both FF and 00 as end-of-party markers, and thus thinks the player only has 0 Pokémon in the party.
 
When a Pokémon is inserted into the party with the "move PkMn w/o mail" option, it is first inserted into the species list (according to the FF end-of-party marker), then inserted into the nickname list, OT name list, and Pokémon data list in that order (according to the party count byte). The insertion into the species list bumps the FF marker to the first byte of "Party Pokémon 1 data" (the data of ?????), then the insertion to the Pokémon data list bumps it to the second Pokémon data slot, in sync with the species list.
 
Now the ????? is removed from the party by depositing it in the Day Care (necessary because it is "invisible" to Bill's PC), which removes it first from the species list (again, according to the FF end-of-party marker), then from the OT name list, the Pokémon data list, the nickname list (by shifting the entire chunk of data under the removed Pokémon, up to Pokémon slot 6, up a slot). Now, removal from the species list finds the first FF marker in the first byte of "Party Pokémon 2 data", so it corrupts "Party Pokémon 1 data" by shifting everything up a byte, and setting the last byte to FF. Then the FF marker in the first byte of "Party Pokémon 2 data" is removed.
 
Depositing the first Pokémon into the PC will similarly only corrupt its own data (which doesn't even matter, because depositing a Pokémon into the PC ''first'' copies it into the box, ''then'' removes it from the party), but when depositing the second Pokémon, there is probably no more FF mark in the Pokémon data, which means the corruption extends to the OT names, nicknames, Pokédex flags, and possibly beyond that. This is visible in the linked video, as the nicknames of the Sudowoodos become "UDOWOODO".
 
Moving the egg to the top of the party, as mentioned above, inserts into the species list and thus also causes corruption, but it just reverses the corruption caused by removing the second Pokémon (which is probably a good thing, as we are not left with more unprintable characters on the screen). Now depositing four Pokémon will corrupt again in the "shift up" direction, and this time the corruption touches the data of the egg, which is our real goal, shifting the third move up 4 bytes to become the species. (Interestingly, the reason the game allows you to deposit all four Pokémon, leaving only the egg, isn't that Bill's PC thinks you have 6 Pokémon, but that due to data corruption, the egg doesn't have 0 current HP like normal eggs do.)
 
Last but not least, we must restore the end-of-party marker to avoid any further corruption when inserting into or removing from the party. Fortunately this is as easy as ''appending'' a Pokémon into the party. This can be done by withdrawing one from the Day Care, withdrawing one from the PC, catching one... Basically, any method of adding a Pokémon to the party will do, ''except'' "move PkMn w/o mail". Since the egg (or the hatched Celebi) would be the only Pokémon in the party, it is only natural to do one of those things before giving the Celebi to the Day Care or otherwise trying to remove it from the party.
 
==YouTube video==
{{YouTube|ukqtK0l6bu0|Parfehchan}}
 
==Obtaining Mew==
In order to hatch Mew instead of Celebi, the only modification needed is to produce an egg which will know Acid Armor as it's 3rd move. This can be done by breeding two Muk at level 45. You can catch either Grimer or Muk by using Surf in front of the old man's house at Celadon City in the Kanto region, or on Routes 16, 17, & 18.
 
==See also==
*[[Shiny Celebi trick (party method)]]
[[Category:Generation II glitches]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.