RNG Manipulation involves using software to manipulate the random numbers that determine well... everything that can be determined by using random numbers, including the stats of Pokemon. This means it's possible to use these types of software to generate flawless/near flawless/shiny Pokemon to your heart's content. (if you know how to do it, that is)
Here's more detail given from Smogon if you're interested: https://www.smogon.com/ingame/rng/emerald_rng_intro
Question becomes, where do you stand on this? Do you think this is fair? Is this a form of cheating? Discuss away.
Here's more detail given from Smogon if you're interested: https://www.smogon.com/ingame/rng/emerald_rng_intro
Spoiler:
Ironically, it is currently impossible to create a software random number generator that generates random numbers. The best these types of random number generators (or RNGs for short) can hope for is to output numbers that appear to lack any sort of pattern. In the world of Pokémon, these numbers are used to determine the outcome of any action that should be inherently "random", from which way a non-player character should turn, to whether or not a Pokémon is frozen, to the IVs and natures of wild Pokémon. All Pokémon games from Ruby and Sapphire onwards use a certain formula to generate these pseudo-random numbers.
Each time a game boots up, or is soft reset, a number known as a "seed" is plugged into this formula, in a process fittingly known as "seeding". The seed gets its name because all of the other pseudo-random numbers "grow" out from this seed. Since true random numbers cannot be generated, any given seed will always output the same numbers in the same order. Therein lies the foundation of Emerald's RNG.
Instead of choosing a different seed each time the game boots up (and by extension, a different sequence of pseudo-random numbers), Emerald always sets its seed as 0. This means that every time the game starts, the same numbers are always output in the same order. In an attempt to hide this, Emerald asks its RNG to spit out numbers at a considerable pace; approximately 60 times per second. Each of these instances is known as a "frame".
A frame is an instant that holds all the "random" numbers given by the RNG. These numbers are then used to decide whatever they are asked to; if you are near an NPC, the frame dictates which way they turn. If a Pokémon is frozen, the frame decides whether or not it will thaw. If a wild Pokémon is encountered, the frame decides what its nature is, and how its IVs are distributed.
Since all the numbers are generated in the same sequence, frames will always occur at the same time, each time you reset the game. That means if you take a certain action at the same time after the game loads, the outcome will always be the same. Think of this like pausing a movie; the action that is shown on the screen is the same each time you pause in a specific place. However, since the movie's frames move very quickly (it is a motion picture after all), it is difficult to always pause in the same place.
Unlike a movie, you cannot alter the pace of Emerald's RNG by choosing to rewind or fast-forward, but the basic analogy holds. By taking an action to create a wild Pokémon on a certain frame, you will always get the IV spread of that frame. By extension, the spreads of Eggs and legendary Pokémon can also be manipulated by calling upon the RNG to set them on a certain frame. It is difficult to stop on a specific frame, as they are passing by at a rate of approximately 60 per second, but if you do, you will always get the results associated with that frame.
We can convert the frame into a time by dividing it by 60. By aiming to create a Pokémon at the time a frame with a desirable spread occurs, you can obtain almost any Pokémon you want. It is a simple matter of waiting for a frame to occur, then giving an input to create a spread. This is how you can eventually manipulate Emerald's RNG to create your dream Pokémon.
The one downside to Emerald's RNG is that you may have to wait a while for a frame with a good spread to roll around. In fact, a flawless spread on a wild or legendary Pokémon can take weeks to occur, thus it is all but impossible to obtain. Nonetheless, very good spreads can be found within the first hour and a half of the game's time, after hundreds of thousands of frames have advanced. In the case of Pokémon hatched from Eggs, it is possible to hatch a completely flawless Pokémon with less than an hour's wait.
How do you obtain a flawless Pokémon? It depends on how the Pokémon is created; the same frame yields different spreads depending on how a Pokémon is generated by the game. There are three categories of Pokémon: bred Pokémon, method 1 Pokémon, and wild Pokémon. Bred Pokémon are self-explanatory; these are the Pokémon you hatch from Eggs "mysteriously" found at the Day Care. Method 1 Pokémon mostly occur in set locations, such as the invisible Kecleon, or Rayquaza. Wild Pokémon are the critters that lurk in the tall grass, and other such places. Each category of Pokémon has a different way of manipulating the RNG to give you the spread you want, but they all have things in common. Read on to learn the basics of RNG manipulation, then check out each respective section to learn the specifics on manipulating different Pokémon to get the spreads you want.
Each time a game boots up, or is soft reset, a number known as a "seed" is plugged into this formula, in a process fittingly known as "seeding". The seed gets its name because all of the other pseudo-random numbers "grow" out from this seed. Since true random numbers cannot be generated, any given seed will always output the same numbers in the same order. Therein lies the foundation of Emerald's RNG.
Instead of choosing a different seed each time the game boots up (and by extension, a different sequence of pseudo-random numbers), Emerald always sets its seed as 0. This means that every time the game starts, the same numbers are always output in the same order. In an attempt to hide this, Emerald asks its RNG to spit out numbers at a considerable pace; approximately 60 times per second. Each of these instances is known as a "frame".
A frame is an instant that holds all the "random" numbers given by the RNG. These numbers are then used to decide whatever they are asked to; if you are near an NPC, the frame dictates which way they turn. If a Pokémon is frozen, the frame decides whether or not it will thaw. If a wild Pokémon is encountered, the frame decides what its nature is, and how its IVs are distributed.
Since all the numbers are generated in the same sequence, frames will always occur at the same time, each time you reset the game. That means if you take a certain action at the same time after the game loads, the outcome will always be the same. Think of this like pausing a movie; the action that is shown on the screen is the same each time you pause in a specific place. However, since the movie's frames move very quickly (it is a motion picture after all), it is difficult to always pause in the same place.
Unlike a movie, you cannot alter the pace of Emerald's RNG by choosing to rewind or fast-forward, but the basic analogy holds. By taking an action to create a wild Pokémon on a certain frame, you will always get the IV spread of that frame. By extension, the spreads of Eggs and legendary Pokémon can also be manipulated by calling upon the RNG to set them on a certain frame. It is difficult to stop on a specific frame, as they are passing by at a rate of approximately 60 per second, but if you do, you will always get the results associated with that frame.
We can convert the frame into a time by dividing it by 60. By aiming to create a Pokémon at the time a frame with a desirable spread occurs, you can obtain almost any Pokémon you want. It is a simple matter of waiting for a frame to occur, then giving an input to create a spread. This is how you can eventually manipulate Emerald's RNG to create your dream Pokémon.
The one downside to Emerald's RNG is that you may have to wait a while for a frame with a good spread to roll around. In fact, a flawless spread on a wild or legendary Pokémon can take weeks to occur, thus it is all but impossible to obtain. Nonetheless, very good spreads can be found within the first hour and a half of the game's time, after hundreds of thousands of frames have advanced. In the case of Pokémon hatched from Eggs, it is possible to hatch a completely flawless Pokémon with less than an hour's wait.
How do you obtain a flawless Pokémon? It depends on how the Pokémon is created; the same frame yields different spreads depending on how a Pokémon is generated by the game. There are three categories of Pokémon: bred Pokémon, method 1 Pokémon, and wild Pokémon. Bred Pokémon are self-explanatory; these are the Pokémon you hatch from Eggs "mysteriously" found at the Day Care. Method 1 Pokémon mostly occur in set locations, such as the invisible Kecleon, or Rayquaza. Wild Pokémon are the critters that lurk in the tall grass, and other such places. Each category of Pokémon has a different way of manipulating the RNG to give you the spread you want, but they all have things in common. Read on to learn the basics of RNG manipulation, then check out each respective section to learn the specifics on manipulating different Pokémon to get the spreads you want.
Question becomes, where do you stand on this? Do you think this is fair? Is this a form of cheating? Discuss away.