More ZX Spectrum Nostalgia presented by Bernie Dugggs :)

Here’s a presentation given by “Bernie Dugggs” (Doug Burns) to a group @ an Oracle Users Group (I think ) a couple of years ago. Doug touches on some of the lessons learned early in his career while programming the ZX Speccy, and how those lessons are still useful today.


Posted by Steve Wetherill in Retro, Sinclair, Spectrum, 2 comments

Crosswize: ZX Spectrum. Self modifying Z80 code and the stack – a powerful combo!

The other day, I came across source code for Crosswize, a ZX Spectrum game I wrote back in the 80’s. Crosswize was written in Z80 assembly (of course), and featured a smooth-scrolling background, accomplished through a goodly amount of self-modifying code, along with the discovery that the fastest way to read and write to memory on the Z80 is to use the stack (if you can free up enough register pairs that is). The reason the stack is so fast is because the “push” instruction is encoded in only a single byte which specifies the 16 bit register pair to push (the source), and which naturally decrements the stack pointer before writing to memory when executed. Similarly, loading register pairs (using “pop”) from the stack is also fast, and that approach is also used here.

In the following code snippet (which is responsible for drawing 8 pixel rows of the smooth scrolling background), by the time the code gets to the label “push_00”, the register pairs AF, BC, DE, IY and IY have been loaded with pre-shifted bitmap data, and the register pair HL cleared. In a previous setup routine, the block of .db 0 starting @ label push_00 has been pre-populated with (using self-modifying code) a series of “push” instructions. The stack pointer (sp) is set to the byte just after the right edge of a screen pixel row. When the Z80 CPU executes the code following push_00, 16 bit values (corresponding to 16 pixels on the ZX Spectrum) are written to the screen from right to left (a push instruction first decrements the stack pointer and then writes the 16 bit value to the new location).

I had a struggle to find enough registers (as may be evident from the code), so ended up using push ix and push iy opcodes (which have an extra 0xdd or 0xfd byte prefix), so the “jp 0” at the label skip_00 is self-modified to jump into the correct spot in the buffer to allow for all combinations of 1 and 2 byte opcodes.

This code is rife with self-modifying code, a technique that is mostly obsolete today, but which was a handy tool for many Z80 coders back in the day.

ld hl, 0 ; SMC - source data
ld c, 2</code>

nop ; SMC
ld b, 8

ld sp, hl
ld hl, 0Ah
add hl, sp
pop af
pop bc
pop de
pop iy
pop ix
ex de, hl
ld sp, hl
ex de, hl
ld hl, 0 ; clear pixels

jp 0 ; SMC

push_00: ; push buffer SMC
.db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
.db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

inc d
djnz scan_00

ld de, 40BFh
dec c
jp nz, section_00
Posted by Steve Wetherill, 3 comments

Elite pulls (some) apps from iOS app store as “Bluetooth Spectrum” Kickstarter gets funded

UPDATE Sunday February 2nd, 2014: I’ve edited the excerpted Jan 30 statement from Steve Wilcox out of the paragraph below – Google the Elite website if you want to read the statement. Elite does seem to have removed essentially all of their emulated Spectrum apps from the iOS App Store (at least), for the moment. I don’t anticipate making further public statements on the issue here until it is resolved.

Further to my post two days ago regarding Elite’s (funded) Kickstarter for a Bluetooth keyboard for their Spectrum emulator apps, Elite has pulled their “ZX Spectrum: Elite Collection” iOS apps from the iTunes App Store.

At this time, Elite still has Odin games on the iOS App Store, including Robin of the Wood, Nodes of Yesod, Heartland and Arc of Yesod (in various forms).

Posted by Steve Wetherill in Retro, Sinclair, Spectrum, 2 comments

Public statement on Elite “Bluetooth Spectrum” Kickstarter

Today I added my voice to that of the other software developers who have posted on the Kickstarter comments page for the “Bluetooth Spectrum”, a Kickstarter campaign by Elite for a bluetooth keyboard add-on for Elite’s iOS/Android Spectrum emulator. The gist of it is that Elite is not paying license fees due for the “officially licensed” software which is the basis of both their emulator and the Kickstarter keyboard project.

The comments section of the Kickstarter project can be found here.

See this World of Spectrum forum post for more background.

For convenience, my comments are reproduced here:

After watching this Kickstarter campaign evolve, reading the public statements in this comment section from several Spectrum developers who maintain that they have not received payment for games licensed to Elite for the ZX Spectrum emulator (or indeed, that their games have been used without permission at all), and after private email communications from several of these developers (six individuals actually, developers of well known and loved Spectrum titles), I felt it time to make my own public statement.


1. Paul McKenna & myself entered into a licensing agreement with Elite in December 2010 for the Odin Computer Graphics titles. Paul is the owner of the Odin intellectual property and my business partner, and I was the lead programmer on many of Odin’s games, such as Nodes of Yesod, Robin of the Wood, Heartland and others. Steve Wilcox is our contact at Elite. The agreement covered 9 titles, Heartland, Hypaball, Nodes of Yesod, The Plot, Robin of the Wood, Sidewize, Arc of Yesod, I.C.U.P.S and Crosswize, which were to be included in Elite’s ZX Spectrum emulator product for iOS and other devices.

2. We received (initially voluntarily, but later upon my prompting) royalty statements from Elite showing sales of the Odin titles. Eventually these statements dried up completely.

3. Over time, it became clear that royalties due under the agreement (which were to be paid within 30 days of the end of each calendar quarter) were not being paid. It is now over three years since this agreement was signed and to date no royalties have been paid. This is despite numerous requests, several of which have been acknowleged (by way of an email response) by Steve Wilcox, the most recent exchange being in December 2013.

4. At the present time, Elite is still offering the licensed Odin content for sale in various forms on the iOS app store (for example, Robin of the Wood: ZX Spectrum, Robin of the Wood HD: ZX Spectrum, and the Odin Computer Graphics pack which is an in-app purchase for the ZX Spectrum Elite Collection emulator, and which features Nodes of Yesod, Robin of the Wood and others).

5. This Kickstarter campaign has raised over $100,000 (ยฃ65,000) on the back of “officially licensed” software; however, I understand that in the cases of at least 6 individual developers, as communicated both publicly here and through private correspondance with each individual, the fees due under those “official licenses” have in fact not been paid. In another case I understand there is in fact no agreement in place at all (see Steve Crow’s comment below). To put a finer point on this, if you don’t pay the license fees, you’re not an official licensee.

In summary:

So much for the facts. I would encourage all backers of this Kickstarter to consider the information I have provided carefully as they decide whether to support this Kickstarter. I’ve been working as a game developer continuously for the last 30 years, I’ve worked on many major software titles, have a good reputation in the industry and have no personal motivation to misrepresent this situation.


Posted by Steve Wetherill in Retro, Sinclair, Spectrum, 1 comment

Projectyle Review on French site GrosPixels!

Projectyle Box Art

I recently came across a review of Projectyle at the French site The site is in French, here’s a link to an English version of the review courtesy of Google Translate. It’s an interesting take on the game, and mentions another game that shipped just after Projectyle called, “Adrenalynn” that I will need to go an check out since the screenshot looks so similar!



Posted by Steve Wetherill in Amiga, Atari ST, Projectyle, Retro, 2 comments

Spectaculator for Android now available!

As the title says, Spectaculator,ย the leading Sinclair Spectrum emulator for PC and iOS, is now available for Android devices.

This also means that for the first time ever, the Odin Computer Graphics catalog is now officially available for Android!

Click the image below for the Spectaculator for Android on Google Play:

Posted by Steve Wetherill in Retro, Sinclair, Spectrum, 0 comments

Odin Computer Graphics Anthology available for Spectaculator on iOS!

I’m pleased to announce that the “Odin Computer Graphics Anthology” is now available for in-app purchase on the iOS version of Spectaculator – the leading Spectrum emulator for iOS (and Windows). The following games are included:

  • The Arc Of Yesod (1985)
  • Crosswize (1988)
  • Heartland (1986)
  • Hypaball (1986)
  • I.C.U.P.S. (1986)
  • Nodes Of Yesod (1985)
  • The Plot (1988)
  • Robin Of The Wood (1985)
  • Sidewize (1987)

Hop on over to now and check it out!

Posted by Steve Wetherill in Retro, Sinclair, Spectrum, 0 comments

Projectyle Music โ€“ Devils cover by Flavien Morel

Time for another Projectyle cover by Flavien Morel (Benighted Soul)!

Check out the Devils theme – this version has a more layered arrangement than the original, and makes changes to the overall chording, giving a different feel to the melody lines. I like this one a lot. ๐Ÿ™‚

Posted by Steve Wetherill in Amiga, Atari ST, Music, Projectyle, Retro, 0 comments

Command & Conquer Sole Survivor: The World’s First MOBA. And, Sound FX Easter Egg

The First MOBA!

Try to imagine a game, a game based upon a popular RTS. In this game, instead of placing buildings and creating hordes of units, you would control a single unit. There would be no structure creation of any kind, though there could be armed defense towers placed in the map at strategic locations. During the game you could perhaps collect power-up items to increase armor, movement speed, weapon damage. This would be an online-only game, fought between two sides. At the start of each game, maybe players could pick the unit they want to control for that game.

No, I am not talking about Defense of the Ancients (DOTA). That was a mod for Warcraft 3 released in 2003. I am talking about Command & Conquer: Sole Survivor, a game released by Westwood Studios back in 1997 (6 years before DOTA!), which was essentially a giant mod of Command & Conquer, released at retail as a standalone product.

At the time, C&C Red Alert had shipped, C&C Tiberian Sun was in development, and Westwood wanted to try a small experimental game based in the C&C world where each player basically control one C&C unit in a massive battle between Nod and GDI. For what it was, the game had its moments, though it ultimately failed to catch on commercially (and was not without design balance issues, though capture the flag mode could be fun). Free-to-play had not been invented by the mid-90’s, and I think most people (including many at Westwood) just didn’t see the point of Sole Survivor as a retail release.

Audio Easter Egg

The game featured music by the legendary Frank Klepacki and had a full sound treatment by the very capable audio department at Westwood. The development team built into the game the ability to swap out the included sound effects and replace them with ones of your own. By way of an example, yours truly dutifully created a set of sounds, which happen to be all electric guitar squiggles, licks and riffs. This stuff was included with the retail CD release of the game, and I’ve collected the samples and included them for your listening … pleasure … below. All the growls, squeals, twiddles and other noises are played on my trusty Yamaha SG style guitar (which is still my main guitar), and recorded through my DigiTech FX pedal. I think I piped this straight into the line-in jack on my PC and used the Windows sound recorder to capture the recordings. It probably took an hour or so to record the lot of these.

As you might imagine, once enabled, the effect was rather chaotic and comical. It sounded like Saturday morning at the guitar store where all the kids try to outdo each other with the new riffs they just learned. ๐Ÿ™‚ I’m not sure the audio department @ Westwood were really ever told about the inclusion of this stuff in the game. Sorry guys.

Posted by Steve Wetherill in Music, Retro, 4 comments

Flimbo’s Quest Atari ST: Music!

Here’s some more Atari ST music, this time from the System 3 game, “Flimbo’s Quest”.

My company, Eldritch the Cat, did the conversion of Flimbo’s Quest from the Amiga to the Atari ST. Mark McCubbin, Marc Wilding and myself did the porting, and I did the music player and music. The music I think is somewhat derivative of the Amiga version of the game, and I forget exactly what might be original and what might be based on the Amiga. I suspect that the Atari ST music was composed by listening to the Amiga and then coming up with something similar. So, I am not taking total credit for the original composition, it’s probably a mixture of things. There’s no friendly YouTube video available for this stuff and I have not yet taken the time to grab samples from the ST emulated version of the game, so for now here is this MP3 collection courtesy of (there are three pieces, back to back, in the player):

This music was created in Quartet, and then played back with my custom Quartet player.

Posted by Steve Wetherill in Atari ST, Music, Retro, 2 comments