Glitzer Popping: Difference between revisions

m
no edit summary
m (→‎Intro: language precision)
mNo edit summary
Line 1: Line 1:
{{cleanup}}
{{cleanup}}
{{move|Pomeg glitch data corruption}}
{{move|Pomeg glitch data corruption}}
'''Glitzer Popping''' is a subglitch of the [[Pomeg_glitch#Access_Pok.C3.A9mon_beyond_slot_6|access Pokémon beyond slot 6]] subglitch of the [[Pomeg glitch]]. As with the latter subglitch, it can only be performed natively in {{game|Emerald}} or in {{2v2|FireRed|LeafGreen}} via [[Trade|trading]] with Emerald).
'''Glitzer Popping''' is a subglitch of the {{DL|Pomeg glitch|access Pokémon beyond slot 6}} subglitch of the [[Pomeg glitch]]. As with the latter subglitch, it can only be performed natively in {{game|Emerald}} or in {{2v2|FireRed|LeafGreen}} via [[Trade|trading]] with Emerald).


By scrolling past slot 255 and below in a player's party, it allows the player to corrupt Pokémon in the Pokémon Storage System's box 1 and 2. Most of the time these become Bad Eggs, which may have glitch moves with beneficial effects such as skipping battles.
By scrolling past slot 255 and below in a player's party, it allows the player to corrupt Pokémon in the Pokémon Storage System's box 1 and 2. Most of the time these become Bad Eggs, which may have glitch moves with beneficial effects such as skipping battles.
Line 23: Line 23:


===Steps===
===Steps===
#Move the Pokémon with the suitable personality value to box 2 slot 23 or box 2 slot 24 of the Pokémon Storage System, and preferably 4  clones of the Pokémon obtained with a [[Cloning glitches#Generation III|cloning glitch]] to other places of the box. Though it is not required, it is recommended to place the clones two spaces apart from each other (e.g. in slots 23, 21, 19, 17, 15 of Box 2), and to maximize the success rate (which is low) a good "corruption initiator" (a Pokémon to "absorb" unfavourable corruptions) should be placed at positions one space left of the Pokémon (e.g. slots 22, 20, 18, 16 of Box 2). Pluses the in-game trade Plusle, with all of its moves erased except for {{m|Growl}} is an example of a good corruption initiator. Without a corruption initiator, it may take a very long time for the glitch to work; if at all.
#Move the Pokémon with the suitable personality value to box 2 slot 23 or box 2 slot 24 of the Pokémon Storage System, and preferably 4  clones of the Pokémon obtained with a [[Cloning glitches#Generation III|cloning glitch]] to other places of the box. Though it is not required, it is recommended to place the clones two spaces apart from each other (e.g. in slots 23, 21, 19, 17, 15 of Box 2), and to maximize the success rate (which is low) a good "corruption initiator" (a Pokémon to "absorb" unfavorable corruptions) should be placed at positions one space left of the Pokémon (e.g. slots 22, 20, 18, 16 of Box 2). Pluses the in-game trade Plusle, with all of its moves erased except for {{m|Growl}} is an example of a good corruption initiator. Without a corruption initiator, it may take a very long time for the glitch to work; if at all.
#Fill the party with fainted Pokémon (one of which needs to know Fly), and a Pokémon that can lose HP with a Pomeg Berry.
#Fill the party with fainted Pokémon (one of which needs to know Fly), and a Pokémon that can lose HP with a Pomeg Berry.
#Decrease the HP of said Pokémon to 1, so that its HP can fall to 0 or below (underflow to 65535 or less) with a Pomeg Berry. A Banette with Curse and odd HP can come in handy to quickly decrease the Pokémon's HP to 1.
#Decrease the HP of said Pokémon to 1, so that its HP can fall to 0 or below (underflow to 65535 or less) with a Pomeg Berry. A Banette with Curse and odd HP can come in handy to quickly decrease the Pokémon's HP to 1.
Line 55: Line 55:
By making the journalist at Slateport Poké Fan Club read the species name of a certain Glitch Pokémon, it is possible to overwrite party Pokémon data and to have an empty slot in the party. This empty slot allows the player to perform Glitzer Popping just by opening the party from the start menu and by pressing Up. This third way to perform Glitzer Popping, called Instant Pomeg Glitch, is significantly faster from the two others. <ref>[http://pastebin.com/wsYtbzpG Perform Instant Pomeg Glitch]</ref>
By making the journalist at Slateport Poké Fan Club read the species name of a certain Glitch Pokémon, it is possible to overwrite party Pokémon data and to have an empty slot in the party. This empty slot allows the player to perform Glitzer Popping just by opening the party from the start menu and by pressing Up. This third way to perform Glitzer Popping, called Instant Pomeg Glitch, is significantly faster from the two others. <ref>[http://pastebin.com/wsYtbzpG Perform Instant Pomeg Glitch]</ref>


Due to Pokémon Emerald and FireRed/LeafGreen's "dynamic memory allocation" (DMA) in which the location of memory addresses are randomized after performing tasks such as opening the Pokémon menu, the game won't always alter the correct bit in the target Pokémon's personality value and will leave the Pokémon corrupted in an unfavourable way. Corruption initiators are used so that the corruption initiator and not the Pokémon to be manipulated for a species, item or move may receive a corruption that would turn it into a Bad Egg. The glitch generally has a low success rate and should be repeated until the player receives the corruption they desire.
Due to Pokémon Emerald and FireRed/LeafGreen's "dynamic memory allocation" (DMA) in which the location of memory addresses are randomized after performing tasks such as opening the Pokémon menu, the game won't always alter the correct bit in the target Pokémon's personality value and will leave the Pokémon corrupted in an unfavorable way. Corruption initiators are used so that the corruption initiator and not the Pokémon to be manipulated for a species, item or move may receive a corruption that would turn it into a Bad Egg. The glitch generally has a low success rate and should be repeated until the player receives the corruption they desire.


The probability that the glitch corrupts a certain value or a certain PC Pokémon is generally 1/32 or 0 (depending on the surrounding value and on the location of the value ). The success rate of Pokémon Corruption can be raised to 6/32 by using 5 clones and Corruption Initiators.
The probability that the glitch corrupts a certain value or a certain PC Pokémon is generally 1/32 or 0 (depending on the surrounding value and on the location of the value ). The success rate of Pokémon Corruption can be raised to 6/32 by using 5 clones and Corruption Initiators.
Line 61: Line 61:
A Corruption Initiator ensures the good corruption of personality values (and Trainer ID) whose hexadecimal value (in 32-bit format) have a leftmost character of 0,1,2,3,8,9,A,B or of 4,5,6,7,C,D,E,F. Thus, two different Corruption Initiators are required to cover every possible personality values. Personality values (and Trained ID) of in-game trade Pokémon in Emerald always have a leftmost hexadecimal character of 0. Thus, only one Corruption Initiator (in-game trade Plusle with Growl) is required to corrupt (or double corrupt) them. <ref>[https://www.youtube.com/watch?v=hBWkshUJv_8 Obtaining both corruption initiators]</ref>
A Corruption Initiator ensures the good corruption of personality values (and Trainer ID) whose hexadecimal value (in 32-bit format) have a leftmost character of 0,1,2,3,8,9,A,B or of 4,5,6,7,C,D,E,F. Thus, two different Corruption Initiators are required to cover every possible personality values. Personality values (and Trained ID) of in-game trade Pokémon in Emerald always have a leftmost hexadecimal character of 0. Thus, only one Corruption Initiator (in-game trade Plusle with Growl) is required to corrupt (or double corrupt) them. <ref>[https://www.youtube.com/watch?v=hBWkshUJv_8 Obtaining both corruption initiators]</ref>


While in-game trade Pokémon can be corrupted with the use of Corruption Initiators, this is not true for every possible Pokémon. A Pokémon can only have its personnality value corrupted if its data responds to a specific criteria. While it is easy to have a Pokémon that does not match this criteria, it is also easy to change some of its values to make it corruptible. <ref>[https://www.youtube.com/watch?v=65e-SKeE5Ec Specific criteria for Pokémon corruption]</ref>
While in-game trade Pokémon can be corrupted with the use of Corruption Initiators, this is not true for every possible Pokémon. A Pokémon can only have its personality value corrupted if its data responds to a specific criteria. While it is easy to have a Pokémon that does not match this criteria, it is also easy to change some of its values to make it corruptible. <ref>[https://www.youtube.com/watch?v=65e-SKeE5Ec Specific criteria for Pokémon corruption]</ref>


Even though Pomeg Glitched Pokémon can be transferred to Ruby and Sapphire, Glitzer Popping cannot be performed in these games because the game does not update the amount of party Pokémon when the player opens and closes the summary of a Party Pokémon (this step is necessary to access Pokémon beyond party slot 6).
Even though Pomeg Glitched Pokémon can be transferred to Ruby and Sapphire, Glitzer Popping cannot be performed in these games because the game does not update the amount of party Pokémon when the player opens and closes the summary of a Party Pokémon (this step is necessary to access Pokémon beyond party slot 6).
Line 77: Line 77:
Each time the party Pokémon selection pointer selects a new party slot, an anti-cheating function is applied to the selected "Pokémon". If the checksum of the "Pokémon" is invalid, it is changed into a Bad Egg. This change is made by setting the Egg Status flag of the Pokémon to 1, and by setting two other bits to 1 in order to turn that Egg into a "Bad" Egg. As the blocks of data considered as party Pokémon aren't actually party Pokémon to begin with, the checksum of a selected "Pokémon" will nearly always be invalid if it isn't empty.
Each time the party Pokémon selection pointer selects a new party slot, an anti-cheating function is applied to the selected "Pokémon". If the checksum of the "Pokémon" is invalid, it is changed into a Bad Egg. This change is made by setting the Egg Status flag of the Pokémon to 1, and by setting two other bits to 1 in order to turn that Egg into a "Bad" Egg. As the blocks of data considered as party Pokémon aren't actually party Pokémon to begin with, the checksum of a selected "Pokémon" will nearly always be invalid if it isn't empty.


The Egg Status flag can be at 4 different locations in a Pokémon's data. It belongs to one of the 4 substructures of the Pokémon and these substructures are ordered depending on the Pokémon's PID (PID modulo 24); since these substructures are also crypted with the Pokémon's PID and TID, setting the Egg status flag to 1 can result in either a bit set to 1 or 0 (depending on TID xor PID). However, the two "Bad" Egg bits are at a fixed location and will always be set to 1 if the Pokémon's checksum is invalid. These bit changes are what corrupts RAM data, which can induce many good things - as this corruption only changes up to 3 bits on a block of 100 bytes, only a tiny portion of RAM data is corrupted in the process. Since one of these bits isn't on a set location and can be changed to either 1 or 0, the addresses and nature of the corruption won't be fixed too.
The Egg Status flag can be at 4 different locations in a Pokémon's data. It belongs to one of the 4 substructures of the Pokémon and these substructures are ordered depending on the Pokémon's PID (PID modulo 24); since these substructures are also encrypted with the Pokémon's PID and TID, setting the Egg status flag to 1 can result in either a bit set to 1 or 0 (depending on TID xor PID). However, the two "Bad" Egg bits are at a fixed location and will always be set to 1 if the Pokémon's checksum is invalid. These bit changes are what corrupts RAM data, which can induce many good things - as this corruption only changes up to 3 bits on a block of 100 bytes, only a tiny portion of RAM data is corrupted in the process. Since one of these bits isn't on a set location and can be changed to either 1 or 0, the addresses and nature of the corruption won't be fixed too.


Another element of randomness is added by the DMA. The DMA is a cheat-prevention script that moves the RAM addresses of a good amount of data every time the player engages in battle, enters a door, opens their Bag, and so on. The DMA changes the RAM addresses of values by translating them from several double-words. A value affected by DMA can take 32 different addresses, each separated by a double-word (4 bytes). Party Pokémon aren't affected by DMA, which means that the addresses of every party slot is constant; however, the data read on party slots beyond slot 6 is affected by DMA. Since party Pokémon data is 25 double-words long, and since the DMA translation is at most 32 double-words long, every double-word on a party slot beyond slot 6 can end up on an address where one of the bit corruptions can occur. However, as both RAM values and the addresses where corruption occur can move, interferences can easily occur between these two, that can sometimes prevent a set double-word to be affected by the Egg Flag corruption. For example, the [[Ever Grande City]] Fly location can't always be corrupted because of such an interference.
Another element of randomness is added by the DMA. The DMA is a cheat-prevention script that moves the RAM addresses of a good amount of data every time the player engages in battle, enters a door, opens their Bag, and so on. The DMA changes the RAM addresses of values by translating them from several double-words. A value affected by DMA can take 32 different addresses, each separated by a double-word (4 bytes). Party Pokémon aren't affected by DMA, which means that the addresses of every party slot is constant; however, the data read on party slots beyond slot 6 is affected by DMA. Since party Pokémon data is 25 double-words long, and since the DMA translation is at most 32 double-words long, every double-word on a party slot beyond slot 6 can end up on an address where one of the bit corruptions can occur. However, as both RAM values and the addresses where corruption occur can move, interference can easily occur between these two, that can sometimes prevent a set double-word to be affected by the Egg Flag corruption. For example, the [[Ever Grande City]] Fly location can't always be corrupted because of such an interference.


Using different strategies, it is possible to manipulate the corruption of some values and ensure that no other value in an area near them has been corrupted, allowing for a somehow pinpointed corruption. With this glitch, the PID and/or TID of PC Pokémon can be corrupted, while leaving the rest of the Pokémon's data untouched. As PID and TID encrypt the 4 substructures of a Pokémon, corrupting them will heavily change the Pokémon's checksum. The two "Bad" Egg bits corruption won't preserve the checksum, making them unusable for Pokémon corruption, but the Egg State Flag corruption can easily preserve the checksum. The Egg State Flag corruption changes the checksum by a multiple of 0x4000; as a Pokémon's checksum is coded on a word, if that multiple is even, the checksum won't be changed. Only a few things can make that multiple odd, and they can be easily prevented, making Pokémon corruption viable.
Using different strategies, it is possible to manipulate the corruption of some values and ensure that no other value in an area near them has been corrupted, allowing for a somehow pinpointed corruption. With this glitch, the PID and/or TID of PC Pokémon can be corrupted, while leaving the rest of the Pokémon's data untouched. As PID and TID encrypt the 4 substructures of a Pokémon, corrupting them will heavily change the Pokémon's checksum. The two "Bad" Egg bits corruption won't preserve the checksum, making them unusable for Pokémon corruption, but the Egg State Flag corruption can easily preserve the checksum. The Egg State Flag corruption changes the checksum by a multiple of 0x4000; as a Pokémon's checksum is coded on a word, if that multiple is even, the checksum won't be changed. Only a few things can make that multiple odd, and they can be easily prevented, making Pokémon corruption viable.