Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kvpb/acdb73106089c7adc448af36a29af0f7 to your computer and use it in GitHub Desktop.

Select an option

Save kvpb/acdb73106089c7adc448af36a29af0f7 to your computer and use it in GitHub Desktop.
Pokémon Gold & Silver Versions and Crystal Version best individual strength spreads

Pokémon Gold Version & Silver Version and Crystal Version
best individual strength spreads

abstract

In these notes, '${type}-type hidden power' modulates 'flawless' so that we still refer to maxed out--in terms of individual strengths--mons with a certain desired hidden power as flawless. Also, official terminology straight from The Pokémon Company or data from the games themselves is used instead of fan terms.

introduction

In modern, post-generation II Pokémon games, flawless pokémons are pokémons whose individual strengths, some kind of genetic quality of a pokémon, are all 'flawless', i. e. 31, according to the Legendary Top Pokémon Breeder from the Battle Frontier. However, individual strengths also determine the type of hidden power. Because of this, the player cannot obtain a true flawless pokémon with non-dark-type hidden power.     Since damage from confusion is calculated off the pokémon's attack stat and even more since generation VII marked by the introduction of strength sap, some also call flawless min-maxed pokémons, that is to say pokémons of which some particular individual strengths are deliberately at a minimum value, i. e. 0, e. g. 0-attack special attackers. Again, because of the way the type of hidden power is determined in generation II, the player cannot obtain true min-maxed pokémons with any hidden power type in generation II.     As such, the definition of a flawless pokémon could be extended so as to refer to a pokémon whose individual strengths tend to be min-maxed short of fully being so following what build the player wants.

Back in the days, ante-generation III, the precursors to individual strengths were called by fans determinant values. Ante-generation III individual strengths range from 0 to 15. These individual strengths are four nibbles--four-bit binary values--encoded on two bytes. Though Pokémon Crystal Version introduced the Battle Tower, thus explicitly recognizing competitive play through the games, no stats judge existed until Pokémon Emerald Version, so no official terminology was given, although debug menus of some games gave away some internal terminology. Even shiny pokémons weren't called that until generation IV---they used to be referred to rare pokémons in a debug menu of Pokémon Gold & Silver Versions and alt. color pokémons in the easy chat system of generation III games.

In these notes, we will call flawless any pokémon whose individual strengths are relevantly min-maxed according to a given compromise. Think of it as marketing depts' weasel words: although these machines suck nowadays, Apple'll call its iPhone 'the world's best smartphone by Apple', not 'the best', because they'd get sued otherwise. The 'best' may be God, or the Universe or the Way or whatever the fuck it's called in your culture. The 'world's best' is the best on Earth. The 'world's best smartphone' is the best smartphone in the world. The 'world's best smartphone by Apple' is the best smartphone by Apple in the world. Therefore, a 'shiny grass-type hidden power flawless' pokémon is a pokémon with maxed out individual strengths that confer its hidden power the grass type and make it shiny.

results

flawless pokémon

hidden power type hidden power base power attack individual strength defense individual strength attack & defense byte hexadecimal value
dark 70 15 15 0xFF
dragon 70 15 14 0xFE
ice 70 15 13 0xFD
psychic 70 15 12 0xFC
electric 70 14 15 0xEF
grass 70 14 14 0xEE
water 70 14 13 0xED
fire 70 14 12 0xEC
steel 70 13 15 0xDF
ghost 70 13 14 0xDE
bug 70 13 13 0xDD
rock 70 13 12 0xDC
ground 70 12 15 0xCF
poison 70 12 14 0xCE
flying 70 12 13 0xCD
fighting 70 12 12 0xCC

rare flawless pokémon

Since when a pokémon is alternatively colored in Game Boy Color--and unbeknownst to the player Game Boy--Pokémon games, only its ATK IS can vary, yet the value of the latter must be either 2, 3, 6, 7, 10, 11, 14 or 15, and those of its DEF, SPC and SPE IS all must be 10, a shiny pokémon can have one of only two types of hidden power: grass or dragon; and it can only have an HP IS of either 8 or 0. The lower of each pair of the eight possible values of the ATK IS grants the grass type, the higher, the dragon one. The highest values respectively are 14 and 15. And since the gender and unown form is determined in these games by IS spreads, the player also can't get a female shiny 7M-to-1F pokémon or a shiny non-I and non-V unown, but these notes aren't gonna cover any of that.

The best example of this is the red gyarados from the Lake of Rage in Johto in the second generation. Its IS ( n_ATK = 14; ( n_DEF, n_SPD, n_SPC ) = 10 ) are hard-coded and result in an HP IS of 0 and a grass-type hidden power. Had the red gyarados' ATK IS been set to 15, it would've gotten a dragon-type hidden power and 8-HP IS. So the player can get a better red gyarados in GSC, and retroactively RGBY, but they can't get a true flawless shiny gyarados regardless. Too bad!

hidden power type hidden power base power attack individual strength defense individual strength attack & defense byte hexadecimal value speed individual strength special individual strength speed & special byte hexadecimal value
dark
dragon 70 15 10 0xFA 10 10 0xAA
ice
psychic
electric
grass 70 14 10 0xEA 10 10 0xAA
water
fire
steel
ghost
bug
rock
ground
poison
flying
fighting

references

annexes

math

hiddenpower_type = 4 * individualstrength_attack % 4 + individualstrength_defense % 4

n type
0 fighting
1 flying
2 poison
3 ground
4 rock
5 bug
6 ghost
7 steel
8 fire
9 water
10 grass
11 electric
12 psychic
13 ice
14 dragon
15 dark

e. g. hiddenpower_type = 4 * 15 % 4 + 12 % 4 == 4 * 3 + 0 == 12 + 0 == 12 == 'psychic'

hiddenpower_power = floor( ( 5 * ( ( ( ( individualstrength_special & 0x8 ) >> 3 ) + 2 * ( ( individualstrength_speed & 0x8 ) >> 3 ) + 4 * ( ( individualstrength_defense & 0x8 ) >> 3 ) + 8 * ( ( individualstrength_attack & 0x8 ) >> 3 ) ) + ( individualstrength_special % 4 ) ) / 2 + 31 )

IS_HP = ( IS_ATK % 2 ) << 3 | ( IS_DEF % 2 ) << 2 | ( IS_SPE % 2 ) << 1 | ( IS_SPC % 2 )

glossary    

A

  • alt. color (pokémon) : generation III (Ruby Version & Sapphire Version) official synonym for shiny.

  • ATK : attack stat.

C

  • color (pokémon) : generation II (Stadium 2) official synonym for shiny.

D

  • DEF : defense stat.

  • determinant value (DV) : generation I (Red Version & Blue Version) unofficial (fan) synonym for individual value.

F

  • flawless : generation III (Emerald Version) official term for a mon with a total potential of 6 * 31, i. e. maxed out individual strengths, e. g. a Tyranitar with a value of 31 for every individual strength.

H

  • hyper-trained (HT) : generation VII (Sun & Moon) half official term for a mon, flawless or flawed, with individual strengths maxed out through hyper training.

I

  • individual strength (IS) : generation VI (X & Y) official synonym for individual value.

  • individual value (IV) : generation III (Ruby Version & Sapphire Version) fan term for determinant value.

M

  • min-maxed : unofficial personal term for a mon with , e. g. a Steelix with HP, ATK, DEF, SPA, SPD IS of 31 and an SPE IS of 0, also unofficial personal synonym for flawless.

N

  • near-flawless : unofficial personal term for a mon with almost maxed out or min-maxed individual strengths short of 1 point for any, e. g. a Charizard with HP, DEF, SPA, SPD and SPE IS of 31 and an ATK IS of 1, a Gyarados with HP, ATK, SPD and SPE IS of 31 and DEF and SPA IS of 30 or a Steelix with HP and SPD IS of 30, ATK and DEF IS of 31, an SPA IS of 1 and an SPE IS of 0.

P

  • potential : generation III (Emerald Version) official synonym for individual value.

R

  • rare (pokémon) : generation II (Gold Version & Silver Version) unofficial debug synonym for shiny.

S

  • SPC : special stat.

  • SPD : speed stat.

  • stat : generation V (Black Version & White Version) official synonym for individual value.

  • shiny (pokémon) : first a generation II (Gold Version & Silver Version) fan term for a mon with an alternative color, then a generation IV (HeartGold Version and SoulSilver Version) and then generation V (Black Version & White Version) official synonym for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment