Skip to content
Techniques & Technology

Colour Clash

The Spectrum's curse

Colour clash occurred when ZX Spectrum's attribute system forced entire 8×8 pixel blocks to share foreground and background colours, creating visual artifacts when sprites crossed block boundaries.

zx-spectrum graphicslimitationspectrum 1982–present

Overview

The ZX Spectrum could display vibrant colours, but with a catch: each 8×8 pixel block shared one foreground (INK) and one background (PAPER) colour. When a sprite moved across block boundaries, it inherited the colours of whatever it overlapped. This “colour clash” defined the Spectrum’s visual character.

The attribute system

ComponentSize
Pixel data6,144 bytes (256×192 monochrome)
Attributes768 bytes (32×24 colour blocks)

Each attribute byte controls an 8×8 block:

  • Bits 0-2: INK colour
  • Bits 3-5: PAPER colour
  • Bit 6: BRIGHT
  • Bit 7: FLASH

Why it happens

When a sprite crosses attribute boundaries:

  1. Sprite pixels set in block A
  2. Sprite also overlaps block B
  3. Block B has different INK/PAPER
  4. Sprite inherits block B colours
  5. Visual discontinuity appears

Mitigation strategies

Monochrome sprites

Many games used single-colour sprites:

  • No clash visible
  • Consistent appearance
  • Knight Lore, Head Over Heels

Careful level design

Design backgrounds to minimise contrast:

  • Similar colours in adjacent blocks
  • Black backgrounds common
  • Strategic colour placement

Small sprites

Sprites smaller than 8×8:

  • Stay within single attribute
  • Limited visual impact
  • Restricts game design

Attribute-aligned movement

Move sprites in 8-pixel increments:

  • Always aligned to blocks
  • Jerky movement
  • Not suitable for action games

Notable approaches

GameStrategy
Knight LoreMonochrome graphics
CobraColoured but careful
Rainbow IslandsAccepted clash
RenegadeMasked backgrounds

The “Spectrum look”

Colour clash became:

  • Defining characteristic
  • Nostalgic aesthetic
  • Recognised style
  • Design challenge

Comparison with competitors

SystemColour system
SpectrumAttribute blocks
C64Character cells (similar)
Amstrad CPCPer-pixel colour
MSXAttribute cells

Modern perspective

Colour clash is now:

  • Deliberately recreated in retro games
  • Nostalgic visual style
  • Design constraint appreciated
  • Historical interest

See also