Building A ZX Spectrum Using Only New Parts

Ah, the Sinclair ZX Spectrum. A popular computer in Britain and beyond, but now rather thin on the ground. If you can’t find one, fear not, for now—you can apparently build a new one with new parts! [TME Retro] is here to demonstrate how.

Before you get excited, no—Sinclair has not risen from the dead. Instead, it’s simply down to the state of the retrocomputing community. There are enough reproduction parts and components out there for the ZX Spectrum that it’s now possible to assemble the whole computer from new bits. You can get new cases and new mechanical keyboards, and a 100% compatible motherboard in the form of the Harlequin board. The latter even reproduces the unobtainable Spectrum ULA glue logic chip in raw logic!

It’s neat to see the ZX Spectrum live on decades after the production lines ground to a halt. We’ve seen similar feats achieved with the legendary Commodore 64; you’d think we had enough of them given they were the best-selling computer of all time. Video after the break.

Continue reading “Building A ZX Spectrum Using Only New Parts”

ESP32 Powers Single-PCB ZX Spectrum Emulator

When word first got out that the Chinese board houses were experimenting with full color silkscreens, many in our community thought it would be a boon for PCB art. Others believed it would be akin to cheating by removing the inherent limitations of the medium. That’s not a debate that will be solved today, but here we have an example of a project that’s not only making practical application of the technology, but one that arguably couldn’t exist in its current form without it: a single-PCB ZX Spectrum emulator developed by [atomic14].

There basics here are, well, they’re pretty basic. You’ve got an ESP32-S3, a TFT display, a micro SD slot, and the handful of passives necessary to tie them all together. What makes this project stand out is the keyboard, which has been integrated directly into the PCB thanks to the fourteen pins on the ESP32-S3 that can be used as touch sensor input channels. There are issues with detecting simultaneous keypresses, but overall it seems to work pretty well.

Continue reading “ESP32 Powers Single-PCB ZX Spectrum Emulator”

The ZX Spectrum Takes To The Airwaves Again

A perk of writing for Hackaday comes in the vast breadth of experience represented by our fellow writers. Through our colleague [Voja Antonić] for example we’ve gained an unparalleled insight into the cutting edge of 8-bit computing in 1980s Yugoslavia, of his Galaksija home computer, and of software being broadcast over [Zoran Modli]’s Ventilator 202 radio show.

We’re strongly reminded of this by hearing of the Slovenian Radio Študent broadcasting the classic Slovenian ZX Spectrum text adventure game Kontrabant 2, at the behest of the  Slovenian Computer History Museum. It’s been four decades and a lot of turbulent history, but once again 8-bit code will be heard on FM in Europe.

Some of our younger readers may never have experienced the joy of loading software from cassette, but in those days it represented a slow alternative to the eye-wateringly expensive floppy drives of the day. The software was represented as a serial bitstream translated into tones and recorded on a standard cassette recorder which was standard consumer electronics back then, and when played back through a speaker it was an ear-splitting sound with something in common with that of a modem handshake from a decade or more later. This could easily be transmitted over a radio station, and a few broadcasters tried experimental technology shows doing just that.

We haven’t heard from any listeners who managed to catch the game and run it on their Spectrum, but we hope that Slovenia’s retrocomputing community were out in force even if Audacity and a n emulator replaced the original hardware. Given that more than one hacker camp in our community has sported radio stations whether legal or not, it would be nice to hear the dulcet tones of 8-bit software on the airwaves again.

Meanwhile if cassettes are too cheap for you, feast your eyes on Sir Clive’s budget storage solution.

Thanks [Stephen Walters].

Pi Pico Gets A ZX Spectrum Emulator

The Pi Pico is a capable microcontroller that can do all kinds of fun and/or useful things. In the former vein, [antirez] has ported a ZX Spectrum emulator to the Pi Pico.

ZX2040, as it is known, is a port of [Andre Weissflog’s] existing ZX spectrum emulator. It’s designed for use on the compact embedded Pi Pico platform, using ST77xx TFT displays. To that end, it has a UI optimized for small, low resolution screens and minimal buttons. After all, very few Pi Picos come with a full QWERTY keyboard attached.

Certain hacks are necessary to make it all work; the chip is overclocked to get things humming fast enough. The emulator also runs upscaling or downscaling in realtime as needed. This allows the emulator to run with a variety of displays, almost none of which are a direct match for the ZX Spectrum’s original resolution of 256×192 pixels.

Code is on Github for the curious, including a great run down from [antirez] on everything that makes it tick. If you want to play ZX Spectrum games on a keychain, you’d do well to start here. There are other projects to emulate it on the Pico, too! Video after the break.

Continue reading “Pi Pico Gets A ZX Spectrum Emulator”

Illustrated Kristina with an IBM Model M keyboard floating between her hands.

Keebin’ With Kristina: The One With The Transmitting Typewriter

Image by [SrBlonde] via Hackaday.IO
Okay, so we’re opening with more than just a keyboard, and that’s fine. In fact, it’s more than fine, it’s probably the cutest lil’ ZX Spectrum you’ll see today.

[SrBlonde]’s wonderful micro Spectrum project has only the essential inputs, which makes for an interesting-looking keyboard for sure. Inside you’ll find an Orange Pi Zero 2 board loaded with Batocera so [SrBlonde] can play all their favorite childhood games on the 5″ IPS display.

Something else that’s interesting is that the switches are a mix of blues and blacks — clickies and linears. I can’t figure out how they’re distributed based on the numbers in the components list, but I could see using clickies on the alphas and linears everywhere else (or vice versa). At any rate, it’s a great project, and you can grab the STL files from Thingiverse if you’re so inclined.

Continue reading “Keebin’ With Kristina: The One With The Transmitting Typewriter”

Playing ZX Spectrum’s Manic Miner On The Arduino Uno

Composite output shield with audio driver and controller inputs for Arduino Uno (Credit: Scott Porter)
Composite output shield with audio driver and controller inputs for Arduino Uno (Credit: Scott Porter)

Although it seems many have moved on to 32-bit MCUs these days for projects, there is still a lot of fun to be had in the 8-bit AVR world, as [Scott Porter] demonstrates with a recent Arduino Uno project featuring his game engine running a port of the Manic Miner game that was originally released in 1983 for the ZX Spectrum. For the video and audio output he created an add-on board for the Uno that creates a composite signal using two resistors, along with an audio driver circuit and control inputs either from the onboard buttons or from a NES controller. Audio can be sent either over the composite output or via the audio jack.

A demonstration of the game is provided in a number of videos on [Scott]’s YouTube account, which shows off a few levels, at 256×256 resolution. It contains all 20 original levels, with a few quality of life upgrades with animation. It also features original music, which may or may not work for you, but music can be turned on or off in the main menu. Compared to the 3.5 MHz Z80 MPU in the ZX Spectrum, the 16 MHz AVR of the Uno is a lot beefier, which raises the hope that a color version like the ZX Spectrum one is also in the future, even if it may require an add-on board with a framebuffer. As [Scott] notes, the weakness of the Uno is that the ZX Spectrum has significantly more RAM, which limits what can be done.

Thanks to [256byteram] for the tip.

Continue reading “Playing ZX Spectrum’s Manic Miner On The Arduino Uno”

A ZX Spectrum Raytracer, In BASIC

[Gabriel Gambetta] knows a few things about ray tracers, being the author of Tiny Raytracer, a raytracer written in just 912 bytes of JavaScript. As a long-time fellow sufferer of the UK-designed ZX Spectrum, could these two love affairs be merged? Could the Tiny Raytracer fit on the ZX Spectrum? In BASIC? The answer is an affirmative, albeit with our beloved speccy’s many limitations.

Ray tracing with only 15 primary colours

The story starts with [Gabriel]’s Computer Graphics From Scratch (CGFS) raytracer algorithms and an existing code base that was ported to the ZX Spectrum’s very limited BASIC dialect, using VSCode for editing, BAS2TAP to generate a tape image file (essentially an audio track) and executed with FUSE. With the toolchain sorted, [Gabriel] adds just enough code to deal with the ray intersection equations of a sphere, and renders a three-sphere scene to a 32×22 pixel colour image, taking a mere 15 minutes of runtime. Fellow sufferers will remember the spectrum had a 32×22 block attribute array (or colour array) with two colour values for foreground and background pixels. Each attribute block contains 8×8 pixels, each of which could be foreground (on) or background (off.) The next stage was then to expand the code to handle pixels as well as blocks, by simply expanding the raytracing to the full 256×176 resolution, and for each block simply determine the two most common colours, and run with those for the whole block. It sort of works, in a very spectrum-esq ‘attribute clash’ kind of fashion.

Continue reading “A ZX Spectrum Raytracer, In BASIC