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