CLAY

A cycle-accurate ZX Spectrum emulator for the 48K, 128 and +3. Clay emulates the Z80 and the ULA in full detail, including memory contention and the floating bus, so timing-sensitive code behaves as it does on real hardware, from multicolour effects to games that sync to the display by reading the bus. On the +3, DSK disks load and can be written to.

Over the years the Spectrum community has written many test programs to expose emulator bugs, and Clay passes the important ones: Patrik Rak's Z80 test suite and timing tests, Mark Woodmass's contention, floating bus and interrupt tests, Peter Helcmanovsky's block instruction and interrupt tests, and the ULA timing tests. It also emulates snow, the flickering garbage a Ferranti ULA puts on screen when a program points the interrupt vector at the lower 16K. The real machines do it, so Clay does too, but you can switch it off.

Clay loads SZX, Z80 and SNA snapshots, TAP, TZX and PZX tapes, DSK disks on the +3, and M3U playlists for games that come on several tapes or disks, so you don't have to swap them by hand. Tapes can start playing on their own, load instantly through a ROM trap, or play at high speed.

The beeper and the 128's AY-3-8910 are synthesised band-limited and mixed together, each with its own volume control. There is also keyboard and Kempston joystick input, a border you can resize or turn off, save states, and battery-backed saves.

Available on Windows, Linux, macOS, Android, iOS, and WebAssembly. Clay is written in plain, portable C11 with no unusual dependencies, so porting it to game consoles is straightforward. Contact us if you are interested.

Retro City Skyline

Clay in Action

Unmodified commercial games running on Clay.

Exolon running on Clay
Exolon © 1987 Hewson Consultants
Firelord running on Clay
Firelord © 1986 Hewson Consultants
Head Over Heels running on Clay
Head Over Heels © 1987 Ocean Software
Manic Miner running on Clay
Manic Miner © 1983 Bug-Byte Software

Clay Options

Third-Party Software