Nodes of Yesod: ZX Spectrum Next – developer blog episode 1

Welcome to episode one of the Nodes of Yesod: ZX Spectrum Next developer blog. In this first episode, I'll cover "the story so far", which is basically a summary of the various Nodes of Yesod related efforts I've made in recent years, most of which were really just experiments, but several of these experiments seem to dovetail into the current effort - creating a version of Nodes of Yesod for the Next!

OK, so where to begin. The original version of Nodes was created for the ZX Spectrum back in 1985 (with versions for the C64 and Amstrad CPC). The Speccy version was written in Z80 assembler, as was typical for the day. Since then, I've created various versions of the game (for example, iOS, tvOS, Flash), but those versions use modern languages such as C++, Objective C and ActionScript, none of which are suitable for creating an updated Spectrum Next version.

Nodes of Yesod for tvOS

Arc of Yesod Unity experiment

In addition to the versions which were published, I've worked here and there on other experiments. My previous thoughts were along the lines of creating an updated (beyond the level of updates seen in the published versions) version of the game, but I've never been able to figure out the venue for such an effort.

One theme that seems to recur for example, is the idea of a smooth scrolling version of Nodes. Certainly, this would have been quite difficult on the original Spectrum machines as scrolling the screen is usually something that consumes a ton of CPU power and memory, not a great match for the humble Speccy. Still, this is something that appeals to me. 

Here's a video showing an experiment using Unity to display a smooth scrolling "Yesod" game (in this case using Arc of Yesod graphics).

Interesting as this is, it does not really help with a Next version. Or does it? Well, it might. Not that Unity is available for the Next, but the Next does now offer hardware scrolling, and hardware sprites! Still, the Unity version is not using original game maps, and I think that would be a good baseline for a Next version.

One other experiment I did was to take the original Nodes of Yesod map, and tried to come up with a tracking camera system that might allow for smooth scrolling within the confines of the original maps. See the HTML5 video grabs here for an example of what I mean.

Original Z80 disassembly

So, perhaps we can make a smooth scrolling version of Nodes for the Next? How do we start with that?

As I noted, there are versions of Nodes for various machines, but none of these codebases are suitable for targeting the Next. Another effort that I've undertaken recently is to disassemble the code from the original game. Sadly, the Z80 source code for Nodes has long since perished. That said, I am probably 90% done disassembling the original source code using IDA.

The Z80 code then, is available. The Next also has a 28Mhz mode, so perhaps using the C language becomes feasible, in combination with elements of the original Z80 code.

Given these, a plan starts to present itself. Here's what I am thinking:

  • Take the original maps
  • Retain the same main character (Astro Charlie) controls, for jumping etc
  • Implement a smooth scrolling camera, using the rails system demonstrated above
  • Add help and map functionality similar to the iOS/tvOS versions

As far as a graphics style, a set of colorful graphics was developed for the other versions, and these could be made to run on the Next; however, I am more partial to a sort of "enhanced, color-clash-less" look. It'd be something like the mockup to the right, masked graphics with a clear outline and zero attribute clash. I would be interested to hear comments on this approach.


Nodes Next mockup

For the avoidance of doubt, development of the actual Next version of Nodes of Yesod has yet to commence. That won't happen in earnest until I get access to hardware; however, in the meantime, a couple of the emulators out there are starting to support some of the Next features (sprites, scrolling) and selection and configuration of tools, along with other preparation can proceed.

In the next episode, I'll cover tool selection and start to get into more nitty gritty aspects of development. If anyone reading this has suggestions or other input for how I might tailor future updates, I'd be glad to have your comments!

Posted by Steve Wetherill



+1 for the speccy graphics look minus colour clash 🙂

Interesting reading! And what does the name “Yesod” mean, and where did it come from?

Steve Wetherill

Where the name Yesod comes from is a mystery. 🙂 The artists who worked at Odin (Stuart, Paul & Colin) came up with the name.

Gabor Marinov

+1 for the original graphics – color clash. 🙂

Richard Halford

Good read. looking forward to.your choice of dev tools.
Im really liking Zeus but the editor isn’t too hot.
Will be really interested if you are going the C route to see how well it performs at 28mhz.

It would be interesting to have an option to choose the original speccy version, another without colour clash and an enhanced Next version with scrolling

Steve Wetherill

We’ll see. I guess the original game could be included in its entirety since storage is not at a premium on the Next. 🙂

Thanks for the update. Loved the original btw, one of my favourites on the C64 (yeah I know).

Regarding the graphics I would’ve hoped for something representative of the graphical power of the Next rather than a standard spectrum minus colour clash, although I do appreciate that this requires far more effort.

Steve Wetherill

Thanks. 🙂 I do have a complete set of multicolor art (see the iOS/tvOS/Flash versions). Depending on how I approach this, could possibly support both (like the iOS etc). We’ll see.

Very nice initiative of yours to share ideas and ask for feedback about the development of the new version of your game.

Surely, I would go for leveraging the Next’s new graphic modes and possibly targeting to showcase some of these new hardware capabilities, time and needed effort permitting.

I will soon try the TvOS version to see if new ideas arise

Keep up with the good work!

Who would’ve thought after all these years you’d pick up z80 assembler and Speccy gfx!
Robin of the Woods next? 😆

Steve Wetherill

You never know …

old speccy gfx + “ambient” background Layer 2 graphics /rocks, roots, bones/ .. something like SoTB would be nice.

Steve Wetherill

Trouble is, I’ll need layer 2 for the h/w scrolling. Which would point to Speccy style parallax background. Not quite enough sprites to draw the scrolling levels using sprites alone.

OK .. than what about timex hicolor background + ULA+ palette and DMA scroll /still talking about background gfx/.

Steve Wetherill

Yeah, the Next hardware keeps evolving doesn’t it? ULA+ is definitely a possibility for additional colors, that’s true. And DMA … yeah.

or simple two layers parallax scrolling .. background with minimal movement and dimmed color scheme.

+1 for the speccy graphics look minus colour clash. Smooth scrolling sounds cool too

Leave a Reply