ZX Spectrum Graphics Editor

A browser-based suite for authoring ZX Spectrum graphics and exporting ready-to-use Z80 assembly. Pick an editor below to get started.

UDG

UDG Editor

Design User Defined Graphics — the 21 custom character slots built into ZX Spectrum hardware.

  • Each UDG is an 8×8 pixel sprite with its own ink and paper colour.
  • Canvas holds up to 21 cells (the hardware limit).
  • Exports as Z80 assembly with pixel data, attribute data, and load routines.
SPR

Player Sprite Editor

Create software sprites that are drawn pixel-accurately into screen memory — not bound to the character grid.

  • Monochrome pixel data; colour is applied at runtime.
  • Supports multiple animation frames with onion skinning.
  • Generates masks and pre-shifted variants for smooth horizontal movement.
SCR

Scene Editor

Paint a full 256×192 ZX Spectrum screen with ink and paper colours obeying the 8×8 colour-clash constraint.

  • Pencil and line tools place foreground (ink) pixels.
  • Bucket fill sets the background (paper) colour of whole 8×8 squares.
  • Exports the native 6912-byte .scr binary — load straight to $4000.
TILE

Tile Editor

Design reusable tiles — walls, floors, platforms — in 8×8, 16×16, or 24×24 pixel sizes.

  • Each 8×8 block within a tile has its own independent ink and paper colour.
  • Save tiles as .json files to reuse across multiple levels.
  • Exports pixel and attribute data as Z80 assembly with print routines.
LVL

Level Editor

Assemble full game screens by placing tiles on a grid. Build an entire multi-screen game world in one project.

  • Each screen is a standard 256×192 ZX Spectrum display.
  • Load tiles from the Tile Editor and paint them onto the canvas.
  • Exports screen maps, tile data, lookup tables, and a draw_screen routine.
CHR

Charset Editor

Redesign all 96 ASCII characters (32–127) to create a fully custom font for your game or demo.

  • Click any character in the overview grid to edit its 8×8 pixel shape.
  • Pixel shape only — ink and paper are applied at runtime by your program.
  • Exports as a compact .chr binary or readable DEFB assembly source.