Nodes of Yesod for the ZX Spectrum Next
The ZX Spectrum Next in the flesh! |
How it started
In May of 2017, I committed to deliver a remade version of Nodes of Yesod as part of a £620K stretch goal for the successful (the campaign raised £723,390 in total!) first ZX Spectrum Next Kickstarter campaign, something Victor Trucco (originator of both the ZX Spectrum Next design and the TBBlue predecessor) tweeted about:
How it's going
Let's talk about that.
In between May 2017 and the date of this post I have made not one but two major job changes, entailing moving between cities hundreds of miles apart. Twice. Perhaps understandably, the side-project of creating a remake of Nodes took second place to these new IRL priorities. Yeah, excuses. Pretty good ones though, as these things go.
That said, some progress has been made, and the update is that I have recently picked up the project again and will start to post the occasional update here (and on my @stevewetherill Twitter) as and when there is progress to report.
For now, here's a couple of bullet point updates (all subject to change as and when I run headlong into the brick walls that will inevitably present themselves!)
- The Spectrum Next version of Nodes will be written in C (with optimized Next Z80 assembler as and where needed). The reasons for this are severalfold, but my thinking is that 1) the Z80 source code for the original game has long since been lost, and 2) I already have high-level language versions of Nodes in Objective C++, Java (as an Applet, a J2ME Midlet, and even an unfinished but playable Android version), and Flash. In fact, I have already completed a clean port of all the Nodes of Yesod code into vanilla C, it is non-functional because none of the Next specific integration is done (input, graphics, sound, etc), but the compiled size of the binary is encouraging: it is less than 128KB of code and data, not including graphics data or audio data in Next format. Plus, the Next has fast CPU modes and graphics hardware, so I'd rather focus on delivering a complete game vs eking out every last Z80 T-state. I've done enough of that in my life, and personally find it a ton of fun, but it is not the fast track to completing a project!
- Clearly, 128KB + media data is more than a 48KB or even a 128KB Spectrum has, and so I'll need to employ memory bank switching to make this work. The good news is that using the Z88DK C toolchain, I have run successful bank switching tests using the approach outlined here. So this is good news, and the fact that all ZX Spectrum Next devices have 1MB of RAM gives me a good level of confidence that everything will fit.
- I am currently working on a custom tool to convert the Nodes of Yesod art from the various other versions I've developed back into a ZX Spectrum Next compatible format. In a way, this means that the art has come full circle, but one thing I can confirm is that I will be using per-pixel colored art for all the in-game graphics (so, no color clash) and that the game will have 2 modes, a "classic" mode (with the original ZX Spectrum look and feel, albeit without the color clash) and an "enhanced" mode featuring colorful graphics, a few little gameplay improvements including a map, giant moon worms and a save game feature. At the very least, these exist in other versions of the game I've created and will appear in the ZX Spectrum Next version if humanly possible.
- So far, I've been using a Mac exclusively for development purposes, along with the .NET version of CSpect (one of the two leading ZX Spectrum Next emulators). So far, so good. The latest version of CSpect is running great on my Macbook Pro.
Astro Charlie, ZX Spectrum Next |
Comments
Please don't make Nodes too Amiga, try to keep a bit of Speccy in the enhanced version. Maybe using only the 15 Spectrum colours (but without colour clash) as did Melkhior's Mansion so perfectly.
PS. did you ever got your Orel BK-08 to work (if I remember correctly)?