The ULAdigitizer Sucks "Semi-Digital" Video Out of a ZX Spectrum for Pixel-Perfect Upscaling

Sniffing the traffic to and from the Ferranti ULA lets the ULAdigitizer create a "Lumacode" signal for top-quality video.

Gareth Halfacree
6 months agoRetro Tech / FPGAs

Pseudonymous vintage computing enthusiast "c0pperdragon" has designed a board which extracts the highest-quality video possible from your classic Sinclair ZX Spectrum microcomputer — pushing out a "semi-digital" Lumacode signal for pixel-perfect upscaling on modern high-resolution displays.

"The ULAdigitizer is a small add-on board that can be installed into a ZX Spectrum microcomputer to produce a Lumacode signal," c0pperdragon explains of the compact gadget. "This signal contains all the information of the video screen in a semi-digital form that can be losslessly processed. In conjunction with an RGBtoHDMI upscaler or some other compatible device, this will create a pixel-perfect display."

Released in 1982 as the successor to the Sinclair ZX81, which was known in the US as the Timex Sinclair 1000, Sinclair Research's ZX Spectrum was an affordable, 15-color, eight-bit home computer with iconic rubber keyboard — known, more or less affectionately, as the "dead flesh" keyboard for its somewhat unpleasant finger-feel. As standard, the device outputs its video over an analog RF connection — not only requiring a TV with analog tuner to decode but also introducing no small amount of noise into the mix.

"The original video output of home computers of the 1980s is of pretty low quality," c0pperdragon explains. "Using a modern TV to display this signal normally does not make this any better. In fact it normally just exaggerates the visible noise. Also there is basically no way to improve the analog signal because of the random nature of the noise."

The ULAdigitizer aims to fix that. Seated on the board beneath the Ferranti Uncommitted Logic Array (ULA), the board uses a field-programmable gate array (FPGA) to sniff the ULA signals and regenerate the video data on the fly in c0pperdragon's "semi-digital" Lumacode format. When connected to a suitable decoding device, such as an upscaler, this becomes a pixel-perfect rendition of the picture — no noise, no blurring, just exactly what you should be seeing but was never achievable back in the 1980s.

Details on the ULAdigitizer and the Lumacode format are available on c0pperdragon's GitHub repository; assembled boards are available on Tindie at $34 each, ready for installation into a ZX Spectrum. The maker has also designed equivalents for other microcomputers, including the Commodore VIC-20, Commodore 64, and Commodore 128, and the Atari 2600/VCS games console.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles