Scottish Highlands & Islands Travelogue

Something a little different for this site, this video series follows our 2-week Scottish Highlands and Islands adventure from October 2018. Join us as we visit the islands of Mull, Iona, Harris, Lewis and Skye, and drive parts of the NC500!

Posted by Steve Wetherill

Northern British Sayings #14: Coit, or Cooat?

A coit (koyt) is a coat. Except when it is a cooat (koo-at).

I think coit is a Barnsley pronunciation, cooat would be a Sheffield one.

Thoughts in the comments?

Posted by Steve Wetherill in Sheffield, Yorkshire Slang

Northern British Sayings #13: Giorr, Gerroff and Shurrup

Growing up with my two younger sisters, these three “words” would often occur, especially when we, all three of us crammed into the back seat of the family car, would embark on a trip to faraway destinations such as Whitby, Bridlington or Scarborough.

Giorr (gee-orr, with a hard “g” as in give): Give over. Stop it. Desist.

Geroff (pronounced as written, hard “g” as in get): Get off. Let go. Give that item back.

Shurrup (as written): Shut up. Be quiet.

Often these would be used together in the form of, “giorr, gerroff and shurrup”, or stop it, give it back, and be quiet. Perhaps when one sibling was tantalizing another by taking away a toy or belonging and then teasing with it.

For your further exploration, more links to the Yorkshire seaside towns mentioned above follow!

Posted by Steve Wetherill in Sheffield, Yorkshire Slang

Northern British Sayings #12: Kecks

Kecks (or keks, or kex) are, trousers. Pants. A gentleman's lower garment.

Accordingly, underkecks are underpants. But sometimes kecks are underpants too.

Interestingly, in South Yorkshire at least, "pants" generally refers to underwear, underpants.

It's unclear where this word originates, possibly a derivative of knickers?

It seems doubtful that the Barnsley town of Kexborough, where I lived for a while, has anything to do with trousers.

Posted by Steve Wetherill in Sheffield, Yorkshire Slang

Nodes of Yesod – iOS, quick update

At this stage, all known issues are resolved. The game now runs in universal app mode, meaning that it’ll run full screen on any iOS device. The new version supports iOS 10 and up, and is now localized into French, German & Spanish.

All that remains is to complete testing, and prepare the submission to the iOS App Store. I expect to be able take care of all of that this week, and assuming the new version passes Apple approval, it should be on the App Store by end of week (~Oct 14).

Then, back to the Spectrum Next version. 🙂

Posted by Steve Wetherill in iOS, Nodes Of Yesod, Retro, Sinclair, Spectrum

Nodes of Yesod: iOS – surprise update

At the prompting of a couple of readers of this blog, I’ve been reviewing the changes necessary to allow Nodes of Yesod for iOS to run on iOS 11. The good news is that it is now running (in the simulator at least). There are several issues I’ll need to fix, but it’s looking like I may be able to release an update for iOS 11. I’ll update here as and when I make more progress.

Screenshot from simulator below.

Simulator Screenshot

Posted by Steve Wetherill in iOS, Retro

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

As promised in the previous episode, in this (brief) update I'll delve into the tool selection process and talk a little about the setup I'm using for Spectrum Next development. First of all, I unashamedly admit that I am a Mac user. Nothing against Windows, or other OS choices, it's just something that I have gravitated to over the years, via iPhone development in the first instance, but also through working in the SF Bay Area tech bubble for the past several years. While there are a lot of great Mac development tools available, it seems that most (not all!) Spectrum development tools are for other operating systems, Windows primarily. I'm not a big fan of running virtualization software such as Parallels, Fusion or Virtual Box as these (in my experience) tend to be resource hogs (though I do use Virtual Box now and then, and it does have the attractive property of being free - that is to say Open Source Software). For the most part these days, in order to run a particular piece of Windows software on Mac, I've been using CrossOver, which is basically a bundled version of Wine for Mac and Linux (note that while Wine itself is open source, CrossOver is not). From the Wine site, 

Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.

In my experience, CrossOver works pretty well for most development tools, including the paint package ProMotion, and the Windows based Spectrum/Z80 assembler/emulator/debugger Zeus.

I really like Zeus, and the fact that it is a self-contained IDE for Spectrum development; however, even though Zeus has implemented a few of the extended hardware functions of the Spectrum Next (as of this writing, version 3.66 supports the Next hardware sprites), it is not the most up to date Next development environment. In a way, this makes sense, because many of the Next features are still "settling" in terms of final specs. Still, as I am committed to completing an updated version of Nodes of Yesod for the Next launch, I need something a little more current.

So, if not Zeus, what else? Well in terms of emulators there is ZEsarUX (which I can never pronounce, or remember how to spell - sorry Cesar!) which has some Next support and which'll run native on Mac. What I need though is an assembler, and the best one I have found so far is in the CSpect package, which as of this writing is at version 0.5. CSpect is a Windows based emulator/debugger that comes with an assembler, SNasm, which is tailored to the Next, and which is truly on the bleeding edge for feature parity with (and in some cases ahead of!) the Next. Importantly for me, this combination runs quite nicely in CrossOver on the Mac.

That's it for this update. In the next update I'll talk more about setting CSpect up to run with CrossOver and the Sublime Text editor on the Mac, along with the z80asm Sublime plugin.

Posted by Steve Wetherill in Retro, Sinclair, Spectrum, Z80, ZX Spectrum Next

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 in Retro, Sinclair, Spectrum, Z80, ZX Spectrum Next

Nodes of Yesod: ZX Spectrum Next – developer blog episode 0!

ZX Spectrum Next

As has been noted on the ZX Spectrum Next site, I am creating a version of Nodes Of Yesod for the ZX Spectrum Next!

Nodes Of Yesod was announced as a stretch goal for the very successful Kickstarter campaign for the ZX Spectrum Next, and will be made available to all backers of the ZX Spectrum Next (the Kickstarter blasted through all the stretch goals!).

More updates as they come, I’ll get the first developer blog entry online as soon as possible, check back soon!

Posted by Steve Wetherill in Retro, Spectrum, ZX Spectrum Next

ZX Spectrum 256 Byte Coding Competition

Here’s my entry for a recent Z80 Assembly Programming On The ZX Spectrum Facebook group coding competition.

The challenge was to come up with a game in 256 bytes without using ROM routines for the ZX Spectrum. Here’s my entry, “Infinite Blocky Runner“.

Source code is here. Some of the other entries to the competition were strong, all source code as well as playable demos may be found at the FB group (unsure if available off-group).

At the very least, this effort fits in (exactly) 256 bytes. I know of a couple of issues (the progress bar at the top will probably wrap in odd ways, should you progress far enough). There’s no audio, no difficulty progression, but you can at least die and restart. 🙂

I should add that I’ve embedded JSSpeccy, the JavaScript ZX Spectrum emulator here in order to run the game. On my laptop running Chrome, performance is not good. Seems to work OK elsewhere, so YMMV (let me know in comments if problems).

Press a key to jump. Enjoy. 🙂

Posted by Steve Wetherill in Assembler, Retro, Sinclair, Spectrum, Z80