Luck manipulation

From Glitch City Wiki
Revision as of 17:55, 15 August 2010 by >Torchickens
Major glitches of the Pokémon series


Arbitrary code execution

0x1500 control code arbitrary code execution (Crystal) | Cart-swap arbitrary code execution | Generation I custom map script pointer | Generation I invalid meta-map scripts | Generation I item ("8F", "ws m", "-g m", "5かい", "てへ" etc.) | Generation I move ("-", "TM42") | Generation I Trainer escape glitch text boxes | Generation II bad clone | Generation II Burned Tower Silver | Japanese Crystal Pokémon Communication Center SRAM glitches | Coin Case glitch | Generation II glitch Pokédex sortings | Pikachu off-screen glitch ACE | OAM DMA hijacking | Pikachu glitch emote | Generation III glitch Pokémon summary | Generation III glitch move animation) | Remote code execution | TM/HMs outside of the TM/HM pocket | ZZAZZ glitch Trainer FC


No further extensions

Cloning | Item duplication glitch (Generation I) | Pokémon merge glitch ("Q Glitch", Generation I) | Time Capsule exploit | Bug-Catching Contest data copy glitch (Generation II, Japan only) | Berry glitch | Battle Tower Lati@s glitch (Generation III) | (Mimic) Transform Rage glitch (Generation IV)

Transform held item glitch (Generation IV, Japan only) | Mimic glitch (Generation IV, Japan only)


Buffer overflow techniques

99 item stack glitch | LOL glitch | Rival LOL glitch | Instant LOL glitch | RAM LOL glitch | Out of bounds LOL glitch | blockoobLG | Instant encounter infinite chain glitch | LGFly | Super Glitch (Generation I) | Party remaining HP glitch | Super Glitch (Generation III) | Text pointer manipulation mart buffer overflow glitch | CoolTrainer♀-type move | Double distort CoolTrainer♀ corruption | Yami Shop glitch | Party Pokémon box data shift glitch | Unterminated name glitch item instant encounter (Japanese Red/Green)


Item stack duplication glitch (Generation I)

Generation I expanded items pack (Glitch Rocket HQ maps, Map FE (English and non-English European Yellow) | Map script pointer manipulation (arbitrary code execution | Map script pointer item ball manipulation) | Text pointer manipulation (arbitrary code execution | Item ball manipulation | Mart buffer overflow) | Trainerless instant encounter glitch


Bad clone glitch (Generation II)

????? party overloading (Type 0xD0 move glitch | ????? map corruption | Celebi trick | Celebi Egg trick | Shiny Celebi trick | Glitch move map corruption | Overloaded party map corruption | Glitch Unown (Glitch Unown map corruption) | Duplicate key items glitch (Infinite items and item creation, Expanded Balls pocket (Wrong pocket TM/HMs, Glitch Pokédex categories))


Closed menu Select glitches (Japanese Red/Green)

Dokokashira door glitch (International) | Fossil conversion glitch (international) | Second type glitch | Skip to Level 100 glitch | Trainer mutation glitch | Walk through walls (International) | Lift glitch | Badge describer glitch


Pomeg glitch (Generation III)

Pomeg data corruption glitch ("Glitzer Popping") | Charm glitch


Voiding (Generation IV)

Tweaking

Broken escalator glitch (Japan only) | Elite Four door glitch (Japan only)


2x2 block encounter glitches (Generation I)

Left-facing shore tile glitch (in-game trade shore encounter trick, Old man trick, Trade link up shore encounter trick, Fight Safari Zone Pokémon trick) | Viridian Forest no encounter grass tiles glitch


Glitch City

Safari Zone exit glitch | RAM manipulation | Out of bounds Glitch City (Generation II) | Slowpoke Well out of bounds corruption (French Gold/Silver/Crystal)


Large storage box byte shift glitch

Storage box remaining HP glitch | Generation I max stat trick


Pikachu off-screen glitch

Trainer corruption glitch


SRAM glitches

Generation I save corruption | 255 Pokémon glitch | Expanded party encounter table manipulation (Generation I) | Send party Pokémon to a new game (Generation I) | Generation II save corruption | Mailbox glitches | Mystery Gift item corruption | Trainer House glitches


Trainer escape glitch

Death-warp | Ditto trick | Experience underflow glitch | Mew trick | Text box ID matching | Meta-map script activation


Walk through walls

Ledge method | Museum guy method | Rival's effect | Select glitch method (International Select glitch method), Brock Through Walls


Surf down glitch

Grass/rock Surfing glitch (Spanish/Italian only) (adaptions: Submerge glitch (international)) | 8 8 (0x7C) grass/rock surfing glitch (English Red/Blue))

(view, talk, edit)
This article is a summary page for different variations of a glitches, etc. when talked about as a whole.

In software and most computer games, a pseudorandom number generator is used to handle events which rely on some form of luck. This applies to (as of now) all of the Pokémon games and is used to generate a value which can determine whether for example if the player encounters a shiny Pokémon at an approximated chance of 1 in 8192.

As its name suggests, the pseudorandom number generator is not truly random in the sense that the game or software will depend on a set of constant, initial values known as the 'state' and the 'random seed'. For this reason, several players have manipulated the pseudorandom number generator to generate a random seed which would give him or her a shiny Pokémon.

How pseudorandom number generators are used in the Pokémon games

Two pseudorandom number generators exist in Pokémon Diamond and Pearl.

The first pseudorandom number generator manages the encryption of Pokémon data in the save file (also known as the hidden ID number), the generation of the Personality Value, the Individual Values of a wild Pokémon, the species of wild Pokémon when encountered in a particular area and for determining the lottery number.

The second pseudorandom number generator creates a value, determining the species of a Pokémon swarm, the species of Pokémon found in the telescopes within the Great Marsh and the Pokémon found in the Trophy Garden. The algorithm specifically ensures that Mystery Gift Pokémon and a Manaphy hatched from an Egg from Pokémon Ranger is not shiny. This pseudorandom number generator instead uses the algorithm (0x6C078965 * Seed) + 0x1, where 0x6C078965 is the integer 1822919013 and 0x1 is the integer 1.

Before the pseudorandom number generator is used the game will use generate a 'random' number based on the value of a qword (known as the random seed or 'seed state'). The seed can range from any value between 1 and 4294967295 and is usually generated after the player chooses 'Continue' on the title screen, except in Pokémon Emerald. The random seed changes depending on variables which are 'almost random', such the game clock time or the amount of recent coin tosses. To determine a 'random' number the game will then use the algorithm (0x41C64E6D * Seed) + 0x6073, where 0x41C64E6D is the integer 1103515245 and where 0x6073 is the integer 24691.

A glitch in the pseudorandom number generator process of Pokémon Emerald and Pokémon Platinum

A glitch in Pokémon Emerald and Pokémon Platinum has meant that a random seed will no longer change after the player selects Continue, therefore this has made catching shiny in-game event Pokémon more predictable. If a player does not encounter a shiny Pokémon the first time he or she can soft-reset and it will be presumable that the random seed would have remained the same after exiting the title screen, hence it is easier to track changes to the random seed.


Abuse of the pseudorandom number generator to generate the characteristics of a hatched Pokémon in Pokémon Platinum

Several players have taken advantage of the fact that a different random-seed will not be generated in Pokémon Platinum when the player selects 'Continue' on the title screen and will only depend on other main game variables such as game time. In this way, the random seed is more predictable and can be tracked via a game-altering device or knowledge of the relevant pseudo-random number generation algorithm and an additional algorithm determining how the random seed changes after performing simple actions like tossing a coin on the Coin Toss Pokétch application.

Requirements:

  1. The player will need the Happiness Application for his or her Pokétch (the sixth application).
  2. The player will need the Coin Toss Application for his or her Poketch (the fifteenth application).
  3. Parents to produce the Pokémon Egg should either be ready in party or in the box.
  4. Five Pokémon should be in the party.
  5. A clock to be synchronized with the DS clock.
  6. The player needs to be on a patch of grass and should save the game.
  7. A Pokémon with Sweet Scent.
  8. Any type of Pokéball, preferably the player should have a few of them incase he or her fails to catch the Pokémon.
  9. Knowledge of a SID (Shiny Identification) which will allow the player to obtain a Shiny Pokémon (through calculation the player can use the SID of a shiny Pokémon which he or she already knows.

Method:

  1. Select the fifth Pokétch application (a summary of the player's party and their current hitpoints) and reset the game.
  2. Note the time in hours and minutes after selecting Continue.
  3. Use Sweet Scent and catch the Pokémon that appears.
  4. Through the use of an equation, estimate the Individual Values of that Pokémon by taking into account its stats, its nature and its Effort Values (those should all be zero if first captured)
  5. Perform a relevant amount of coin flips based on information about the date, the time in hours and minutes, the Pokémon's nature, the Pokémon's ID and the Pokémon's SID.
  6. Deposit the parents into the Day-Care center.
  7. The Egg which hatches should be shiny.


Rumors of increasing the initial catch rate of Pokéballs

Main article: Glitch Myths

There have been rumors that if the player holds the B button before throwing a Pokéball it will apparently increase the chances of catching that Pokémon; however those rumors have been proven to be false.


External Links

[1] - A player manipulates the pseudorandom number generator so that he or she can hatch a shiny Cyndaquil.

[2] - A calculator to help players find the SID of a Pokémon, and the relevant amount of coin tosses required for the next Pokémon egg to be shiny.

[3] - An article on Wikipedia about pseudorandom number generators in general.