Color Variation - How DVs Affect Sprite Colors
Explains the color variation mechanic in Polished Crystal, where each Pokémon's DVs (IVs) subtly shift their sprite palette colors. Learn how HP affects red, Attack affects green, and more.
Introduction
Have you caught two of the same Pokémon and noticed their colors look slightly different? You're not imagining it!
Color Variation is a toggleable feature (enabled by default) that makes each Pokémon's sprite colors unique based on their DVs (the Polished Crystal term for IVs). Two Woopers with different stats will have subtly different blue tones.
This mechanic is inspired by Pokémon Stadium, which had similar color variations for Pokémon.
Source: engine/gfx/vary_colors.asm
Is It a Bug?
No. Color variation is an intentional feature. If you see two Pokémon of the same species with slightly different hues, it's working as designed.
This is not:
- A shiny Pokémon (shinies have dramatically different colors)
- A regional form (like Paldean Wooper)
- A sprite glitch or rendering error
How It Works
Each Pokémon sprite palette has two main colors: a "lite" (highlight) color and a "dark" (shadow) color. Each color has red, green, and blue channels.
Your Pokémon's six DVs directly control these six color channels:
| DV | Controls |
|---|---|
HP | Light Red |
Attack | Light Green |
Defense | Light Blue |
Speed | Dark Red |
Sp. Atk | Dark Green |
Sp. Def | Dark Blue |
The Formula
Each DV (0–15) shifts its corresponding color channel by a small amount:
shift = (DV & 0b0011) - ((DV & 0b1100) >> 2)
This results in shifts of approximately ±3 color units on a 0–31 RGB scale. The game clamps values to stay within valid bounds.
In practice, this means:
- DV 0: No change
- DV 1–3: Slight increase
- DV 4–7: Moderate decrease
- DV 8–11: Mixed effects
- DV 12–15: Slight decrease
Special Cases
- DV = 2: Forces a +4 shift (stronger increase)
- DV = 8: Forces a -4 shift (stronger decrease)
- Smeargle: Has special handling for its paint colors
Source: engine/gfx/vary_colors.asm
Visual Impact
The color shifts are intentionally subtle. You won't see a blue Pikachu, but you might notice:
- Two Woopers with slightly different blue tones
- A Charmander that looks slightly more orange or red
- A Bulbasaur with a greener or bluer tint
The effect is most noticeable when comparing two Pokémon side by side.
Toggling Color Variation
At Game Start
When starting a new game, you can disable color variation in the Initial Options Menu (Page 2).
Default Setting
Color variation is enabled by default.
Source: data/options/default_options.asm
Interaction with Shinies
Color variation applies to both regular and shiny Pokémon. A shiny Pokémon will have its shiny palette varied by DVs, so two shiny Pokémon of the same species may also look slightly different.
Technical Details
For those interested in the implementation:
- Palette data is stored in WRAM bank 5
wColorVaryDVsstores the 3 DV bytes used for calculationswColorVarySpecies,wColorVaryForm, andwColorVaryShinytrack context- The
VaryColorsByDVsfunction applies all six channel modifications - Individual functions (
VaryRedByDV,VaryGreenByDV,VaryBlueByDV) handle each channel
Source: ram/wramx.asm, engine/gfx/vary_colors.asm
FAQ
Why do my two Woopers look different?
Their DVs are different, which causes their color channels to shift differently. This is color variation working as intended.
Can I make two Pokémon look identical?
Only if they have identical HP, Attack, Defense, Speed, Sp. Atk, and Sp. Def DVs. Since DVs are randomly generated, this is unlikely.
Does this affect gameplay?
No. Color variation is purely cosmetic and has no impact on battles, stats, or any game mechanics.
Is this in other Pokémon games?
Pokémon Stadium had a similar feature. Modern mainline games do not have DV-based color variation, though Pokémon GO has size variations.
Notes
- Color variation was inspired by Pokémon Stadium's palette variations
- The feature can be toggled in the Initial Options Menu
- DVs directly control RGB channels — it's not random
- Both regular and shiny Pokémon are affected
- Smeargle has special handling for its paint spot colors
Was this useful?
Loading votes...
