Well color me old! The ZX Spectrum (affectionately known as “Speccy” or just “Spectrum” by its fans), one of the best-selling microcomputers of all time, was released 40 years ago today. Can you believe it still has a large and active community creating new content, archiving old content, and hacking on all sorts of hardware?
The Spectrum has always benefited from a massive community supporting it. Especially early on through print magazines like Sinclair User and CRASH that included game reviews, hints and tips, cheats, tutorials, programs, pokes, and more. I know that I and a lot of my colleagues got their start programming on computers like these—whether it was
10 PRINT “I AM COOL” or hacking the hex for infinite lives.
In honor of the Speccy’s 40th birthday, here’s a look at ten projects that are still going strong and keeping the magic of Spectrum alive. You won’t believe number nine!
Editor’s note: We’ve warned Lee before about these cheezy, clickbaity statements, but it was this, or a terrible joke. Something about Spectrum being a horrible name for a computer made of black plastic and gray rubber keys.
@Pacmancoder‘s aptly-named Rustzx is a cross-platform ZX Spectrum emulator written in Rust supporting
scr (screenshot), and
rom files. Yes, that’s right—that means you can play your Spectrum games on macOS, Linux, and Windows, or even type out some old programs from your archives.
No time (or permissions) to install an emulator on your machine? There’s a Spectrum emulator on the web called JSSpeccy 3 that brings the magic to life in your favorite browser. You can even embed it in your own website. As the name suggests, this is the third version of JSSpeccy—the latest version making user of newer web technologies to make those 8 colors and sounds from the beeper really POP!
What is disassembling? This is the process of taking an executable and breaking it down into a representation in some form of assembler language so that it is readable by a human.
SkoolKit provides a suite of tools to disassemble Spectrum software into it’s
skool format for further processing—making it possible to organize and annotate the code and make it browsable in HTML amongst other things. Some examples: JetPac, Chuckie Egg, The Great Escape, and more.
We’ve talked about
skool files so far. You’d thing that would have covered all of the filetypes. Nope! Txtools is a collection of command line tools for processing
tzx files, a common file format for preserving computer tapes of the ZX Spectrum, but also Amstrad CPC, Commodore 64 and more. It also supports
tsx files, but I’m pretty sure that’s not related to TypeScript.
With it you can convert your old tape recordings or
wav files to
tzx files, generate tap files for emulators and ZX Spectrum Next (read more about this later), load
tzx files into the real hardware, and much more.
Related, the zxtap-to-wav command line tool can, surprise surprise, convert your
tap files into
wav files. Why would you want to do that? Well, if you have an old MP3 player lying around, for example, an iPod Photo, an iPod Nano, or any old tablet/smartphone then you could load them up with all your favorite games. Use one of those MP3 to cassette converters and they’ll all be one tape 🤯
DeZog is a VS Code extension providing a development environment for Z80 assembly. Debugging your code today is instantly easier than a few decades ago.
The author has a video series exploring programming for the Spectrum in C and Z80 assembly that you might find interesting.
If you don’t happen to have an old Spectrum just lying around, you can always use sjasmplus, a Z80 CPU assembly language cross-compiler for Linux, macOS, and Windows packed with a ton of features—most notably, a Lua-based scripting engine.
What’s the difference between a compiler and a cross-compiler? A compiler takes high level language and turns it into machine code while a cross compiler does the same, but for machines other than the one it was written on.
If you wrote Z80 assembly many years ago, there’s a good chance you didn’t write tests. Test-Driven Development (TDD) wasn’t a thing and our code just worked flawlessly first time. Thankfully, @rhargreaves has gifted the world a tool called zx-spec that helps by providing a framework for practicing TDD.
@Utz82’s fluidcore is a 4-channel PCM wavetable player for the Spectrum’s beeper. Hardcore, metalcore, and/or mathcore fans will likely not enjoy fluidcore as much as chiptune fans. This tutorial outlines the technique used here if you’d like to experiment with it. Admittedly, it’s a bit over my head, but it sounds great! 🤘🏻
Looking for a nice retro avatar for your GitHub or social media account? How about a piece of 8-bit art to hang on your wall? @Jarikomppa’s Image Spectrumizer allows you to convert any of your images to something that looks more at home on your Spectrum’s screen—either through a GUI or the command line. There are also lots of buttons and levers to tweak the settings. This is Windows only though, I’m afraid.
After a successful crowdfunding campaign, the ZX Spectrum Next was launched in 2017—a new and updated version, compatible with software and hardware for the original ZX Spectrum, and with additional capabilities. We’re already starting to see new content arrive, for example, The Level 9 Compilation delivers lots of new text adventure games.
Keep an eye on our
#spectrum-next topic page and see how the Spectrum Next ecosystem develops.
Fun fact: Someone’s already written a utility to allow the Spectrum to communicate via HTTP. It shouldn’t be too long before we have an amazing 8-bit MMO roguelike or text adventure game 🤞🏻
Well, that’s my ten projects—thanks for reading. Until next time*!
No compilation of ZX Spectrum articles is complete without a covertape, so please allow me to draw your attention to this worthy cause, The ZX Spectrum 40th Birthday Game Mix Tape, a bundle of 40 new games for your Spectrum (or emulator).
This isn’t free, but there’s no sticky tape/gunk involved peeling it off, and your generous donations of $10USD or more will go to Special Effect, a charity that helps improve the quality of life of severely physically disabled people throughout the world through access to video games.
My personal favorite is Alien Girl. Give it a whirl.