Saturday, April 23, 2022

Celebrating 40 years of ZX Spectrum

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.

1. ZX Spectrum emulator written in Rust

Screenshot of Treasure Island Dizzy being played in Rustzx.
Treasure Island Dizzy, my nomination for the best video game and character ever created loaded into Rustzx.

@Pacmancoder‘s aptly-named Rustzx is a cross-platform ZX Spectrum emulator written in Rust supporting tap (tape), sna (snapshot), 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.

Did you know? The Internet Archive has a healthy supply of Spectrum games, and magazines like Sinclair User and Crash.

2. Play games and write basic in your browser

Screenshot of Jetpac being played in a web browser.
The original ZX Spectrum version of Jetpac being played on the web. The gameplay still holds up today!

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!

3. Old school, cool tools for disassembling Spectrum software

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.

Animation showing No. 5's take on disassembly.
If you grew up with a Spectrum, you’ll probably understand this reference / seemingly random animated GIF.

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.

Fun fact: The Great Escape was also recently ported to C by @dpt. You can read more about the process of Reverse Engineering The Great Escape if you’re interested.

4. Power tools for your tapes

We’ve talked about tap, sna, scr, rom, and 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 🤯

Image of a cassette adapter.
I can actually remember when these things were considered “cutting edge” technology.

5. Write and debug Z80 assembly in VS Code

Animation showing the DeZog VS Code extension
Feel right at home and step through your code with ease in VS Code.

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.

6. It’s compilation time!

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.

7. Testing your assembly code 🔴 ❤️ 🟢 🟢 💚

Screenshot showing passing and failing tests.
I assert that this is cool.

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.

8. Compose chiptune music

@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! 🤘🏻

9. “Spectrumize” your images

Screenshot showing a photographed being transformed into the correct dimensions and colors for display on a Spectrum.
My face coming to a loading screen near you.

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.

10. New adventures with Spectrum Next

Screenshot of Scapeghost for the ZX Spectrum Next
Scapeghost for ZX Spectrum Next.

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*!

* next time being August this year for the 40th anniversary of the the Commodore 64, and April 2024 for the 40th anniversary of the Amstrad CPC 464 of course.


Bonus cover tape: 40 new games for your Spectrum, Spectrum Next, or emulator ❤️ 💛 💚 💙

A ZX Spectrum loading screen showing a "spectrumized" audio cassette.

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.

Screenshots of the games included in the ZX Spectrum 40th Birthday Mix Tape
Screenshots of the games included in the ZX Spectrum 40th Birthday Mix Tape


from Hacker News https://ift.tt/UY8J0Xs

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.