How ZX Spectrum+ Handled Multi-Color Graphics Per Cell
The Sinclair ZX Spectrum+ utilized a unique attribute-based system for color graphics that defined hues within fixed 8x8 pixel blocks rather than individual pixels. This article explores the technical limitations of this architecture, known as attribute clash, and explains how the machine managed ink and paper colors within a single character cell to render images despite hardware constraints.
To understand the graphics capabilities of the ZX Spectrum+, one must first look at its screen resolution and memory organization. The machine displayed a bitmap resolution of 256 by 192 pixels. However, unlike modern systems where every pixel can hold independent color data, the Spectrum+ divided the screen into a grid of 32 by 24 character cells. Each of these cells contained 64 pixels arranged in an 8x8 square. While the bitmap data determined which pixels were on or off within these squares, the color information was stored separately in an attribute map.
Each 8x8 character cell was assigned a single byte of memory known as the attribute byte. This byte controlled the color properties for the entire block of 64 pixels. The byte was broken down into specific bits that defined the foreground color, known as Ink, and the background color, known as Paper. There were eight available colors for each, including black, blue, red, magenta, green, cyan, yellow, and white. Additionally, bits were allocated for brightness and a flash effect, allowing for blinking attributes.
The critical limitation of this system was that only two colors could exist within any single 8x8 character cell at one time. If a graphic element required a third color within that specific block, the hardware could not display it. Instead, the existing Ink or Paper color would overwrite the desired hue, causing colors to bleed into adjacent areas where they did not belong. This visual artifact became famously known as attribute clash. It was the defining characteristic of Spectrum graphics and often resulted in colored borders around moving sprites or jagged color transitions in detailed images.
Despite this restriction, developers employed various techniques to mitigate the visual impact of the color limitation. Artists would carefully align graphics so that color changes occurred along the boundaries of the 8x8 cells rather than through the middle of them. Some software utilized monochrome graphics for detailed sprites to avoid clash entirely, while others used the brightness bit to simulate additional shades. Although the ZX Spectrum+ featured an improved keyboard over its predecessor, its graphics architecture remained identical, cementing this unique method of handling multi-color graphics as a hallmark of the platform’s legacy.