Logo

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.

Author: Cammy
Last updated: June 22, 2026

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:

DVControls
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).

See: Initial Setup Options

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
  • wColorVaryDVs stores the 3 DV bytes used for calculations
  • wColorVarySpecies, wColorVaryForm, and wColorVaryShiny track context
  • The VaryColorsByDVs function 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...