Skip to content
Techniques & Technology

Palette Cycling

Animation without redraw

Palette cycling created animation effects by rotating colour values rather than redrawing graphics, enabling flowing water, glowing effects, and pulsing lights without CPU overhead.

commodore-amigaibm-pccommodore-64atari-stgraphicsanimationtechnique1980–present

Overview

Change the palette, not the pixels. Palette cycling animated graphics by shifting colour indices through different values—what was blue becomes green becomes yellow becomes red, cycling endlessly. Water appeared to flow, lights seemed to pulse, and fire flickered, all without redrawing a single pixel.

The principle

Step Process
1 Design image with gradient colours
2 Assign sequential palette indices
3 Each frame, shift palette values
4 Pixels appear to move

Common effects

Effect Implementation
Flowing water Blue gradients cycling
Fire/lava Orange/red palette rotation
Glowing lights Brightness cycling
Neon signs Colour pulsing
Waterfalls Vertical flow illusion

Technical advantages

Benefit Explanation
Zero CPU redraw Only palette changes
Tiny memory No frame storage
Smooth animation Limited only by refresh rate
Multiple effects Different palette ranges

Platform implementations

Amiga

The Copper could change the palette per scanline. Colour registers live at $DFF180-$DFF1BE (32 entries × one word each). Cycling means writing the same range each frame with the values rotated by one slot:

; Rotate colours 1-7 for a "flowing" effect
; (palette[1] becomes palette[2], palette[2] becomes palette[3], etc.)
            move.w  $dff182,d0          ; Save palette[1]
            move.w  $dff184,$dff182     ; palette[1] <- palette[2]
            move.w  $dff186,$dff184     ; palette[2] <- palette[3]
            ; ... etc through palette[7] ...
            move.w  d0,$dff18e          ; palette[7] <- saved

The Copper can additionally swap palettes mid-frame for per-scanline cycling (e.g. waterfall sprite columns where each row uses a different rotated palette).

PC (VGA)

DAC register manipulation:

  • 256-colour palette
  • Direct register writes
  • Smooth transitions

C64

Limited but possible:

  • 16 fixed colours
  • Software cycling
  • Character colour attributes

Limitations

Constraint Impact
Fixed design Must plan for cycling
Colour usage Dedicates palette entries
Art constraints Limits general colour use
Directional only Can’t change shape

Famous examples

Game Effect
Monkey Island Ocean waves
King’s Quest Waterfalls
Deluxe Paint Animation tool
SimCity Water features

See also