Stadium's Color Changing Pokémon
Why Some Pokémon Look Different in Stadium
When playing or watching footage of either of the Stadium games, or even the original Japanese-exclusive Stadium, you may have noticed that NPC trainer's Pokémon have strange nicknames and appear to be slightly off in color from how they're supposed to look. Or, if you've used the Transfer Pak to import your own Pokémon from the Game Boy games, you may have even noticed your own Pokémon changing color. You aren't seeing things - nicknamed Pokémon in the Stadium games change color!
The amount of color change, or hue shift, is determined by running some math on the Pokémon's nickname with the ID number and name of its trainer, and using the numerical result to slide hue within the Pokémon's defined hue range. Generally, but not always, Kanto Pokémon have a wider range of possible hues, potentially due to the introduction of shinies in generation 2. Less saturated Pokémon also tend to have a much larger hue range to compensate for their lack of vivid color.
All of this results in the nicknamed Pokémon you use during your playthroughs being given a slightly unique appearance. They're special and won't look like any other normal Pokémon of that species!
How Stadium Changes Pokémon Colors
The Stadium games use the HSL color model when handling hue shifting, and even shiny colors in Stadium 2. HSL stands for hue, saturation, and lightness, which can be represented visually like the scales below. All of these values put together make up a full spectrum of color.
Hue, from left to right, can be represented as 0 to 360 degrees of color. Non-shiny nicknamed Pokémon are technically capable of being hue shifted anywhere from -180 to +180 degrees, though most of them have pre-determined lower and upper limits much smaller than that. Negative degree values slide the Pokémon closer to the left (warmer colors) and positive degree values slide the Pokémon closer to the right (cooler colors). Their saturation and lightness values do not change.
Shiny Pokémon, aside from a few exceptions where special textures are used instead of HSL sliding, have their colors defined by shifting the Pokémon's colors in potentially all three HSL values, though saturation and lightness are not always used. This explains why so many Stadium 2 shinies look strange in comparison to their sprite counterparts - a simple color change is being applied to the default model instead of a full texture swap! The range of possible saturation and lightness changes in the Stadium games is pretty wide, though it's separated into a numerical range of 0 to 17 (or -8 to +8, including 0 for no change), causing large jumps in appearance when incremented. Even when nicknamed, shiny Pokémon do not further slide hue, and as such all shinies of the same species will look identical to each other.
An example, using Vaporeon, is shown below. The ones labeled Minimum and Maximum Hue represent the lower and upper limits that Vaporeon can hue slide to respectively, the numerical values of which are written next to the image captions.
Default Vaporeon
Minimum Hue Vaporeon (H -20)
Shiny Vaporeon
Maximum Hue Vaporeon (H +50)
The Hue Shifting Math
This section could not have been possible without the efforts of Fëanen Atreides, who was the first person to reverse engineer the formula for hue shifting. Feel free to check out his original write-up here if you would like! Thank you very much!
If you're not much of a math fan, feel free to skip to the next section.
As mentioned previously, the amount a nicknamed Pokémon changes color by is determined by running some math against the Pokémon's nickname and the trainer's ID number and name. You may be wondering how math is possibly done on the trainer name and Pokémon nickname considering those are made up of letters and symbols instead of numbers, and that's where Extended ASCII encoding comes in!
Each letter or symbol (also known as characters) in the Stadium games is stored and represented as hexadecimal values. This is a simplified explanation, but essentially this means a string of characters, like a Pokémon nickname, are actually numeric values within the game's code, and are just translated into letters for display to the user. The Game Boy games use a unique encoding system, but the Stadium games just use Extended ASCII, a common encoding system, with slight alterations to accommodate for the unique PK, MN, ♂, and ♀ symbols.
Below is a table of every legal character that can be used in Pokémon names or trainer names and their corresponding hexadecimal values. The character is written above the value. Numbers are also included because NPC trainers can have Pokémon with numbers in their nickname, but the player is not actually able to use those characters themself.
A | B | C | D | E | F | G | H | I | J | K | L | M |
---|---|---|---|---|---|---|---|---|---|---|---|---|
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 4D |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
4E | 4F | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 5A |
a | b | c | d | e | f | g | h | i | j | k | l | m |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 6A | 6B | 6C | 6D |
n | o | p | q | r | s | t | u | v | w | x | y | z |
6E | 6F | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 7A |
× | ( | ) | : | ; | [ | ] | PK | MN | - | ? | ! | |
20 | D7 | 28 | 29 | 3A | 3B | 5B | 5C | BC | BD | 2D | 3F | 21 |
♂ | ♀ | / | . | , | Ä | Ö | Ü | ä | ö | ü | ||
A9 | BE | 2F | 2E | 2C | C4 | D6 | DC | E4 | F6 | FC | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
Before we can determine the hue shifting value, we have to determine the combined Name Value, or NV, of the trainer ID, trainer name, and Pokémon nickname. The NV represents the amount these details factor in to the final hue shifting value. Note that the Stadium games haven't been fully decompiled and while the results are accurate, the following steps are a likely approximation at the internal math.
To explain the process for finding the NV, an example situation will be used. Assuming the trainer ID is 24943, the trainer name is "AYANO", and the Pokémon's nickname is "JELLY", perform the following steps:
- Convert the trainer ID to hexadecimal. Separate the resulting hexadecimal value into two bytes. (24943 = 61 6F)
- Convert the trainer name to hexadecimal, where each character is one separate byte. (AYANO = 41 59 41 4E 4F)
- Convert the Pokémon's nickname to hexadecimal, where each character is one separate byte. (JELLY = 4A 45 4C 4C 59)
- Add all of these hex bytes up individually. (61 + 6F + 41 + 59 + 41 + 4E + 4F + 4A + 45 + 4C + 4C + 59 = 3C8)
- Cut off the last two digits of the resulting sum. This is the NV. (3C8's last two digits are C8. C8 is the NV.)
With the NV figured out, the hue shifting value can be found as well! In addition to the NV, the Pokémon's lower and upper limits of possible hue shifting must be determined as well, represented as "Min" and "Max". For the purpose of the calculation, both should be positive integers. You can use the provided dropdown below to check for these values.
Min: 20 | Max: 30
Continuing off the previous example, let's assume that JELLY is a Quagsire, which has a minimum value of 30 and a maximum value of 15. Now the following steps can be done:
- Find the full hue range of the Pokémon by simply adding the minimum and maximum together. (30 + 15 = 45)
- Find the portion of a Pokémon's range that a single NV represents by dividing the range by 255. (45 / 255 = 0.176...)
- Find the default palette value by dividing 255 by the range, and then multiplying that by the minimum. (255 / 45 = 5.666..., 5.666 * 30 = 170)
- Convert the NV to decimal for the next step. (C8 = 200)
- Using all of the above values, we can find the hue. Subtract the value from step 3 from the NV, then multiply that by the value from step 2. Sometimes the result will be positive, sometimes it will be negative. (200 - 170 = 30, 30 * 0.176 = 5.294...)
- Round to the nearest integer for the amount of hue shift. (5.294 = 5. The amount of hue shift is +5.)
And that's it! Tools to automate this lengthy process if you're curious about your NV/hue shifting values but don't want to do the whole calculation yourself can be found on the Stadium Hue Previewer page.
Practical Usage
The hue shifting feature happens to have a use for shiny hunting eggs. As mentioned earlier, shinies do not hue shift at all and are always consistent. This is notable because Stadium 2 treats "EGG" as a nickname when a Pokémon is still in its egg, causing eggs to hue shift like any other Pokémon... except shinies!
This means it's possible to collect eggs en masse, preferably with Dodrio GB Tower for the ability to play at 3x the speed, then exit to the Lab to scroll through boxes of eggs until one appears at the default tan color. There is a caveat to this however: some Pokémon have very little range they can hue shift, and that applies to their eggs as well, meaning the difference between shiny and non-shiny eggs may as well be imperceptible. To assuage this issue, you can use the Shiny Egg Hue Previewer to see what colors your eggs will be, and optionally get a list of optimal trainer IDs to get maximum hue shift.
Additionally, you can find more information on shiny hunting eggs in generation 2 over on the DV Breeding for Shinies page. Shininess while breeding is based on genetics in generation 2, and in fact without the proper set up, eggs will never be shiny, so definitely learn more about it before attempting a hunt like this!
A Special Case of Smeargle
Smeargle, aptly named the Painter Pokémon in the Pokédex, has paint-like fluid coming from its tail that it uses to mark, or paint, its territory. The differently colored Smeargle paint is represented in Stadium 2 as well - on top of the usual hue shifting, the painted pawprint marking on its back and the paint on the tip of its tail can be red, green, or blue. These colors change to teal, purple, and orange respectively when Smeargle is shiny.
The calculation to determine the Sub ID is based on Smeargle's DVs. The HP DV is not used in the calculation, only Special, Defense, Speed, and Attack in that order. Take for instance a Smeargle with a Special DV of 3, Defense DV of 11, Speed DV of 15, and Attack DV of 7. The Sub ID can then be solved as follows:
- Write the DVs as hexadecimal in the proper order. In this case, 3, 11, 15, and 7 would be written as 3, B, F, 7, or 3BF7 when put together.
- Divide the combined hexadecimal value by 9 - the remainder is the Sub ID. In this case, the remainder and therefore the Sub ID is 6.
- The Sub ID can also be determined by converting the combined hexadecimal value to base 9 and then chopping off the last digit. For instance, 3B57 is 23046 in base 9, the last digit of which is 6.
Alternatively, you can use the calculator below to determine Smeargle's Sub ID.
Please input Smeargle's DVs.
A list of all of Smeargle's colors can be seen below. Click the "SHOW SMEARGLE ANIMATIONS" button to view a table of GIFs of all the color combinations. It's important to note that due to shininess in generation 2 being based on DVs, it is only possible for shiny Smeargle to have a Sub ID of 2, 3, 4, 6, 7, or 8, but the impossible Sub IDs of 0, 1, and 5 are still represented below regardless as if they were possible.
Sub ID | Tail (Normal) | Back (Normal) | Tail (Shiny) | Back (Shiny) |
---|---|---|---|---|
0 | Red | Red | Teal | Teal |
1 | Green | Red | Purple | Teal |
2 | Blue | Red | Orange | Teal |
3 | Red | Green | Teal | Purple |
4 | Green | Green | Purple | Purple |
5 | Blue | Green | Orange | Purple |
6 | Red | Blue | Teal | Orange |
7 | Green | Blue | Purple | Orange |
8 | Blue | Blue | Orange | Orange |
Archive of All Hue Shifted Pokémon
It would be logistically impossible to list GIFs of every single Pokémon with every single possible hue shifted value here, but the hue shifting feature can be fully visualized over at the Stadium Hue Previewer page, which dynamically changes Pokémon colors as accurate to the Nintendo 64 as possible. Check it out if you want to mess with the color slider or find out what color your Pokémon would be in the Stadium games!
Credits
Thank you to the following people and resources for assistance with creating this tool:
- Fëanen for his research on Stadium 2's hue shifting feature, which was completely invaluable and the basis of this project!
- Tama Hero for being the first person to bring the Stadium 2 breeding method to my attention with her YouTube video on the subject, causing me to look into all this in the first place.
Last updated 10/9/23. Page created.