“For me, the goal has been to encourage a new generation of bedroom coders,” says legendary games developer Jim Bagley, who is among a group of Spectrum fans behind the project. Jim has been programming games professionally for the past 31 years and is a key member of the specnext.com team dedicated to bringing back the ZX Spectrum.
With 3113 Kickstarter backers handing over £723,390 in cash, many others potentially share that dream.
Work has certainly progressed well. “When the Next was first announced three years ago, it was intended to be a normal Spectrum with an SD card and a Raspberry Pi Zero as an extender,” Jim explains. “Raspberry Pi was going to be used to add extra features such as hardware sprites and hardware scrolling so that newcomers would find it easier to code the computer and get the wow factor of getting something running instantly on the screen.”
During the Kickstarter campaign, however, a large field-programmable gate array (FPGA) was announced for the Next – a configurable integrated circuit which allowed the hardware sprites, scrolling, and other advanced features to be incorporated within the machine itself. “It freed up Raspberry Pi Zero to do something else,” Jim says. So the developers began to play around.
Load and run
One of the initial ideas was to recreate the feel of loading a game from tape – generating the series of scratchy, beepy, high-pitched noises which could be heard as a program was ingested into the computer. On the original hardware, this was accompanied by a loading image slowly building on the screen and animated stripy borders.
Rather than have Next users connect a cassette deck, the developers had a cunning plan. “We thought it would be a good idea to have commands sent back and forth between the Next and Raspberry Pi Zero,” Jim says. This developed into a tool allowing a TZX file (a format that stores an exact copy of a ZX Spectrum tape) to be uploaded from an SD card to Raspberry Pi Zero. By sending it back down to the new-gen Speccy through an audio-in pin, the Next would be fooled into thinking it’s loading a cassette. “It gives the original feeling of loading from tape,” Jim affirms.
Are you there, SID?
Having a Raspberry Pi Zero accompanying the Next has also enabled other audio delights. A Sound Interface Device (SID) emulator has been developed that allows audio created for Commodore’s SID programmable sound generator chip to be played on the Next.
It will also be possible to enjoy Atari ST audio files and tunes created using music trackers on the Commodore Amiga. “We can send the audio through a GPIO pin and it goes straight to the FPGA, where it’s mixed with the audio of the Next,” Jim explains. To achieve all of this, the developers have used DietPi to create a new OS called NextPi. “It remains a fully functioning Raspberry Pi Zero that is running at the same time as the Next, but we wanted the Next to be more in control.”
The most recent extra use for the Next’s Raspberry Pi Zero is the ability to connect the latter to its own display. “It’s possible to send screens to Raspberry Pi Zero so that you can have a dual screen,” Jim says. “This means you could have a game being played on the Next, with a global map or stats shown via Raspberry Pi Zero.”
The team is now looking to get USB controllers to work via Raspberry Pi Zero, allowing them to be read by the Next. “We’d also like Raspberry Pi Zero to help with 3D maths so you can take vertices, have them rotated, and passed back,” Jim says. In the meantime, the team is readying the new computer for a January release and a new Kickstarter is being planned for those who didn’t pledge the first time around. We’re certainly looking forward to seeing where it – and RaspberryPi – goes next.
Raspberry Pi loading
1. Games in the file format TZX – a tape format used for preservation purposes – need to be saved on to an SD card and inserted into the ZX Spectrum Next.
2. A game can then be selected via the Next computer’s built-in Browser mode. Raspberry Pi Zero will be instructed to load the game’s data from the SD card.
3. Raspberry Pi Zero sends the data back to the ZX Spectrum Next as audio and this generates the once-familiar loading noise and loading screen ahead of the game running.
Looking for some more retro gaming joy? You could always: code your own retro games console, build your own retro game with PICO-8, indulge in an entire issue of The MagPi dedicated to retro gaming or this incredible hardback 'Code The Classics' guide, brand-new from Raspberry Pi Press for a more £12?