ESP32 Rainbow

A ZX Spectrum single-board computer with a built-in keyboard and display

Available for pre-order

View Purchasing Options
Nov 18, 2024

Project update 2 of 6

Loading Games

by Christopher G

Hi everyone,

I hope this update finds you well and as excited about the ESP32 Rainbow as I am! It’s been fantastic to see the interest and questions pouring in. Thank you for your enthusiasm and support.

The campaign is progressing really well and we’re getting close to (or, by the time you read this, we might even have passed) our funding goal. This is a huge milestone, and it’s all thanks to your incredible support.

I really appreciate the support everyone has shown, if you’d like to help even more, please share the campaign page with your friends and on social media.

There have been some great questions so far, and one that came up recently was: How do I load games onto the ESP32 Rainbow?

This is an important topic, and I realized I didn’t cover it in detail on the campaign page.

The ESP32 Rainbow includes an SD Card slot, making it easy to load your favorite Spectrum games. Many of these classics are now available online in formats like Z80 (essentially a snapshot of the Spectrum’s RAM) or TZX (a recreation of the original tape data). One of the best resources for these is World of Spectrum, which has a huge collection of games you can download for free.

In the current implementation, Z80 files load almost instantaneously, they’re essentially just a snapshot of the Spectrum’s state at a particular moment, so they’re relatively simple to handle.

TZX files are much more interesting. The easiest way to load them is to treat them as a stream of highs and lows on the mic port and run the Spectrum emulator for the correct time periods for each pulse. In my current implementation, the emulator can run at about four times the speed of the original Spectrum, which means TZX files load about 3–4 times faster than the original tapes.

That’s not lightning-fast, but it’s certainly quicker and more reliable than loading from physical tape! Personally, I prefer using Z80 files for their instant loading, but you do miss out on the great loading screens and some of the quirky custom loaders. TZX files offer a nice hit of nostalgia without the wait (or the need to make a cup of tea while the game loads).

I’ve uploaded a quick YouTube video showing the loading of a TZX file. Interestingly, Knight Lore actually used a custom turbo tape loader - so we’ve got super fast loading of something that was already super fast!

If you want to compare the speed of the TZX loading, I’ve also recorded loading from the the audio of a tape.

I’d honestly forgotten how long it could take to load games (and this is a pretty quick one!). If you’re new to the ZX Spectrum emulator community or need help finding or loading games, feel free to reach out, I’m always happy to assist!

Progress Update

Things are moving forward on the production side as well:

Thanks again for being part of this journey with me. Your support and feedback make this project so rewarding. If you have more questions or just want to say hi, you can reach me via email or using the “Ask a question” link on our campaign page.

What was your favorite Spectrum game? Let me know, I’d love to hear about the titles that defined your Spectrum experience!

Best regards,
Chris


Sign up to receive future updates for ESP32 Rainbow.

ESP32 Rainbow is part of PCBWay Assembly Hub

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects