Glitzer Popping: Difference between revisions

m
no edit summary
mNo edit summary
Line 5: Line 5:
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.


The glitch is notable as a means of producing a glitched [[Egg]] which can be hatched. The player can manipulate the Egg to contain any valid Pokémon and various [[glitch Pokémon]]. Additionally, using a technique known as "double corruption", one can create an unhatched Pokémon in the Pokémon Storage System with multiple characteristics (Item, Moves, Species, IVs, Origin, etc) that they desire.
The glitch is notable as a means of producing a glitched [[Egg]] which can be hatched. The player can manipulate the Egg to contain any valid Pokémon and various [[glitch Pokémon]]. Additionally, using a technique known as "double corruption", one can create an unhatched Pokémon in the Pokémon Storage System with multiple characteristics (Item, Moves, Species, IVs, Origin, etc.) that they desire.


In addition to Pokémon data, Glitzer Popping can corrupt [[Pokémon Day Care|Day Care]] data, [[Pokémon Contest|contest]] data, map data (NPCs with their location and script address), flag data (story, trainers, events), bag quantity data, PC item data, Battle Frontier data, Trainer data (name, ID, SID) and Secret Base items.
In addition to Pokémon data, Glitzer Popping can corrupt [[Pokémon Day Care|Day Care]] data, [[Pokémon Contest|contest]] data, map data (NPCs with their location and script address), flag data (story, trainers, events), bag quantity data, PC item data, {{gdis|Battle Frontier|III}} data, Trainer data (name, ID, SID) and Secret Base items.


==Name==
==Name==
Line 14: Line 14:
==Method==
==Method==
===Requirements===
===Requirements===
#A Pokémon who gained 1 or more health points with a single HP Up. That would mean it would lose 1 of more HP when fed a Pomeg Berry; for example a level 100 Pokémon with 10 HP EVs or more would lose two health points when fed the Pomeg Berry, but a high level Pokémon (from [[Sky Pillar]], [[Victory Road (Hoenn)|Victory Road]], [[Artisan Cave]], any Legendary, etc) can work as well.
#A Pokémon who gained 1 or more health points with a single HP Up. That would mean it would lose 1 of more HP when fed a Pomeg Berry; for example a level 100 Pokémon with 10 HP EVs or more would lose two health points when fed the Pomeg Berry, but a high level Pokémon (from [[Sky Pillar]], [[Victory Road (Hoenn)|Victory Road]], [[Artisan Cave]], any Legendary, etc.) can work as well.
#At least three Pokémon, one of which needs to be a fainted Pokémon with the move {{m|Fly}}, and a different fainted Pokémon.
#At least three Pokémon, one of which needs to be a fainted Pokémon with the move {{m|Fly}}, and a different fainted Pokémon.
#A Pokémon with a suitable personality value that should preferably be [[Cloning glitches#Generation III|cloned]] multiple times. After the glitch, most of this Pokémon's data will be permuted depending on its personality value (e.g. EVs data becoming species data, species data becoming attacks data, etc).
#A Pokémon with a suitable personality value that should preferably be [[Cloning glitches#Generation III|cloned]] multiple times. After the glitch, most of this Pokémon's data will be permuted depending on its personality value (e.g. EVs data becoming species data, species data becoming attacks data, etc.).


The [[in-game trade]] Pokémon "Seasor" the {{p|Horsea}} and "Dots" the {{p|Seedot}} are ideal for the glitch because they work and always have the same personality values; 0x0000007F and 0x00000084 respectively. These Pokémon may be used to convert 'EVs into Growth' (see article [[Pokémon data substructures in Generation III]], with the Attack EV representing the most significant byte of the [[List of Pokémon by index number (Generation III)|Pokémon's index number]] and the HP EV representing the least significant byte (e.g. 151 HP EVs and 0 Attack EVs would result in a {{p|Mew}}).
The [[in-game trade]] Pokémon "Seasor" the {{p|Horsea}} and "Dots" the {{p|Seedot}} are ideal for the glitch because they work and always have the same personality values; 0x0000007F and 0x00000084 respectively. These Pokémon may be used to convert 'EVs into Growth' (see article [[Pokémon data substructures in Generation III]], with the Attack EV representing the most significant byte of the [[List of Pokémon by index number (Generation III)|Pokémon's index number]] and the HP EV representing the least significant byte (e.g. 151 HP EVs and 0 Attack EVs would result in a {{p|Mew}}).
Line 45: Line 45:
The Eon Ticket, AuroraTicket, and MysticTicket, if held by a storage box Pokémon, cannot be taken and used to travel to an event island, as the flag must also be set. However, Glitzer Popping may rarely activate an NPC on the second floor of a Pokémon Center who will give an Eon Ticket while activating the flag. Additionally a derivative of Glitzer Popping known as the Pokémon news reporter glitch can be used to set the flags, by sending the 104th Pokémon into battle, checking that it has specific attributes (which will be random) and letting its HP drop to a specific value.
The Eon Ticket, AuroraTicket, and MysticTicket, if held by a storage box Pokémon, cannot be taken and used to travel to an event island, as the flag must also be set. However, Glitzer Popping may rarely activate an NPC on the second floor of a Pokémon Center who will give an Eon Ticket while activating the flag. Additionally a derivative of Glitzer Popping known as the Pokémon news reporter glitch can be used to set the flags, by sending the 104th Pokémon into battle, checking that it has specific attributes (which will be random) and letting its HP drop to a specific value.


Some Key Items for Ruby/Sapphire/Emerald or FireRed/LeafGreen obtained this way can be traded and used during the main story to skip certain parts. (Poké Flute, Tea, Silph Scope, HM01 Cut, Rainbow Pass, Mach Bike & Acro Bike, Go-Goggles, etc)
Some Key Items for Ruby/Sapphire/Emerald or FireRed/LeafGreen obtained this way can be traded and used during the main story to skip certain parts. (Poké Flute, Tea, Silph Scope, HM01 Cut, Rainbow Pass, Mach Bike & Acro Bike, Go-Goggles, etc.)


====Notes====
====Notes====
Line 74: Line 74:
When the player scrolls up from Quit, they are accessing Pokémon beyond slot 6. The first up press moves the selected Pokémon to party Pokémon 255, the second up press moves the selected Pokémon to party Pokémon 254, and so on.
When the player scrolls up from Quit, they are accessing Pokémon beyond slot 6. The first up press moves the selected Pokémon to party Pokémon 255, the second up press moves the selected Pokémon to party Pokémon 254, and so on.


Selecting Pokémon beyond slot 6 causes the game to select blocks of {{wp|Random-access memory|RAM data}} and treat them as party Pokémon data (with a size of 100 bytes). The 255th party slot ends up being over PC Pokemon data (around Box 2, Slot 23 for Emerald and Box 3, Slot 1 for FireRed/LeafGreen), and scrolling up will go over Day Care data, Pokémon Contest data, map data (NPCs with their location and script address), flag data (story, trainers, events), bag data, PC item data, Battle Frontier data, Trainer data (name, ID, SID...), and other data, in that order.
Selecting Pokémon beyond slot 6 causes the game to select blocks of {{wp|Random-access memory|RAM data}} and treat them as party Pokémon data (with a size of 100 bytes). The 255th party slot ends up being over PC Pokémon data (around Box 2, Slot 23 for Emerald and Box 3, Slot 1 for FireRed/LeafGreen), and scrolling up will go over Day Care data, Pokémon Contest data, map data (NPCs with their location and script address), flag data (story, trainers, events), bag data, PC item data, {{gdis|Battle Frontier|III}} data, Trainer data (name, ID, SID...), and other data, in that order.


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.
Line 108: Line 108:
It was also discovered by luckytyphlosion that sending out Bad Eggs into battle by having all fainted Pokémon in the party allows access to "[[Super Glitch (move)|Generation III Super Glitch]]" moves which can be used for tricks such as skipping Trainer battles and capturing Trainer Pokémon; and importantly that it is possible with the glitch to obtain regular Eggs which can be hatched.
It was also discovered by luckytyphlosion that sending out Bad Eggs into battle by having all fainted Pokémon in the party allows access to "[[Super Glitch (move)|Generation III Super Glitch]]" moves which can be used for tricks such as skipping Trainer battles and capturing Trainer Pokémon; and importantly that it is possible with the glitch to obtain regular Eggs which can be hatched.


The mechanics relating to what makes the regular Eggs appear, and what determines their species, moves and other attributes were not known until werster and Sanqui did additional research into the glitch in early May on Twitch and the Glitch City Laboratories forums. They concluded that it is not the Pokémon's main data that changes per se, but the personality value itself; and that the Bad Egg/Egg occurrences are related to a change of one bit in the Pokémon's personality value.<ref>[http://forums.glitchcity.info/index.php?topic=6868.msg195147#msg195147 - Glitch City Laboratories forums - Personality value change details by Sanqui]</ref> Furthermore they discovered that data from the Pokémon's data substructure such as move IDs could be converted into species IDs, depending on the Pokémon's former personality value.<ref>[http://forums.glitchcity.info/index.php?topic=6868.msg195144#msg195144 - Gen III: Access Pokémon beyond the sixth slot sub-glitches. - Glitch City Laboratories forums - Conversion and substructure modification details.]</ref>
The mechanics relating to what makes the regular Eggs appear, and what determines their species, moves and other attributes were not known until werster and Sanqui did additional research into the glitch in early May on Twitch and the Glitch City Laboratories forums. They concluded that it is not the Pokémon's main data that changes per se, but the personality value itself; and that the Bad Egg/Egg occurrences are related to a change of one bit in the Pokémon's personality value.<ref>[http://forums.glitchcity.info/index.php?topic=6868.msg195147#msg195147 - Glitch City Laboratories forums - Personality value change details by Sanqui]</ref> Furthermore, they discovered that data from the Pokémon's data substructure such as move IDs could be converted into species IDs, depending on the Pokémon's former personality value.<ref>[http://forums.glitchcity.info/index.php?topic=6868.msg195144#msg195144 - Gen III: Access Pokémon beyond the sixth slot sub-glitches. - Glitch City Laboratories forums - Conversion and substructure modification details.]</ref>


TheZZAZZGlitch documented on May 14 that the cause of the corruption after scrolling was ironically one of the game's anti-cheating mechanisms. In this mechanism, every time a Pokémon is selected, the game verifies its integrity and if the Pokémon is deemed invalid, then the game changes its data by setting bit 0, 1 and 6 at varies places in its "Miscellaneous" substructure but when the player selects Pokémon from beyond slot 6, the game attempts to validate the data of a non-existent "Pokémon"; hence altering 'out of bounds' data such as stored Pokémon in the PC.
TheZZAZZGlitch documented on May 14 that the cause of the corruption after scrolling was ironically one of the game's anti-cheating mechanisms. In this mechanism, every time a Pokémon is selected, the game verifies its integrity and if the Pokémon is deemed invalid, then the game changes its data by setting bit 0, 1 and 6 at varies places in its "Miscellaneous" substructure but when the player selects Pokémon from beyond slot 6, the game attempts to validate the data of a non-existent "Pokémon"; hence altering 'out of bounds' data such as stored Pokémon in the PC.