Stercore (Spectrum)

There’s another C64CD release drifting it’s way around the interwebs this evening. Stercore is a no-nonsense, scrolling shoot ’em up for the Sinclair ZX Spectrum with 48K or more RAM which was developed by yours truly a little while ago with the intention being to enter it into the venerable CSS Crap Game Competition because, well, it’s pretty darned crap! The code languished for a quite while after being mostly completed and was finally pushed out of the door and into the wild after a quick wash and brush up.

Everything should be moving at a constant 50 frames a second during play – my DivIDE is currently in need of either a major service or more likely replacing so I didn’t get a chance to try it on real hardware before release, but it doesn’t appear to be dropping frames under emulation – and the backgrounds whip past at a dizzying eight pixels a frame since it’s all built from attribute cells rather than graphics data. Because it would probably be impossible to play at this speed if there were background collisions there isn’t anything to smack into, but parts of the landscape scroll over both the player and their assailants so a close eye needs to be kept to make sure enemies aren’t not lurking behind something.

There’s even some beeper-powered “music” on the title page which was composed by a Python script called Autotracker and then forced kicking and screaming into Beepola. For the sake of maintaining the 1980s budget game aesthetic, the Wham! The Music Box style sound driver was selected when compiling the music rather than going for any of the more complicated routines available and there are also some appropriately beep-laden sound effects during play as well.

This is my first complete assembly language game for the Spectrum and yes, that’s very apparent even without delving through the source code at GitHub – it’s recommended that anybody brave enough to do that wears hazmat gear or at the very least a good quality wetsuit and breathing apparatus – and, although I can accurately make the claim that Stercore has been written in 100% machine code, it really isn’t “pure machine code” as some people used to claim on their cassette inlays. Oh no, this is the dirty, impure stuff that our parents would warn us about as children…

Workprint – July 2018

Things have been a little rough of late with everything being topped off with our thirteen-year-old dog King passing away on the 7th of June – he arrived here at the start of 2005 as a small, six week old bundle of fluff. I haven’t really been in a fit state for much of anything since then – I pretty much kept up with Retro Gamer and tried “powering through” and sticking to my blog schedules but only managed about half of the “planned” posts – and I was even quieter than usual on social media which is something of an achievement I suppose? I’ve just realised whilst writing this that it happened almost a month ago, but I’m still getting the occasional wobble when it would have been his dinner time…

I haven’t done much code since then, but the bulk of what I’ve written during that period has been “busy work” to keep my mind occupied more than anything else. Vallation hasn’t seen any attention because I didn’t dare sit down with anything that complicated where I could easily lose concentration halfway through modifying something important and leave myself with a steaming mess to knock the bugs out of later… I’m perfectly capable of doing things like that often enough as it is without any external encouragement!

One of the distractions was writing a game for the Spectrum for release under the C64CD brand. It’s pretty much done apart from needing quite a bit more level data, but now it’s that close to complete I’m sort of committed to finishing it as an entry for the venerable CSS Crap Game Competition. It’s crap in the sense that it’s incredibly simple as a game and my Z80 is shockingly bad to the point where I’m considering a disclaimer when the source goes up to Github warning people that it’s not there as a “learning tool” unless being used as an example of how things really shouldn’t be done. That doesn’t stop me being almost perversely proud of it for some reason?

Playing Lightfarce (Spectrum)

I’ve never really been a fan of Mastertronic’s platform shooter Zub; some of this comes from having played it first on the C64 – which isn’t a perfect conversion of the original – but even when revisiting the original on the Spectrum over the years it just feels empty, in part because the developers were working to a strict deadline and didn’t have the time to get it finished to their own satisfaction. But one thing it does have going for it at least in the Spectrum 128K incarnation is an Easter egg called Lightfarce, a parody of a certain similarly-titled blaster which had just been released and was gathering quite a bit of media attention.

There’s nothing to write home about in Lightfarce on the originality front; it has big objects moving around and multi-level parallax scrolling but the action is incredibly simple, with enemies pootling down the screen and the player having to either blast or dodge them because collisions will sap some of their shield. Everything updates at quite a sedate pace but, due to the quite erratic movement of the nasties, keeping the ship safe from harm is tricky and can get the adrenalin pumping when there are only a few hits left on the energy gauge. The craft wraps around horizontally – completely disappearing off one side before reappearing on the other – which can occasionally prove helpful whilst trying to avoid collisions, but there aren’t any weapon power-ups or items that restore shield power.

There’s a beefed up version called Zarjas – a misspelling of “zarjaz”, the catchphrase of 2000AD’s editor Tharg which publishers Reaktor would later “borrow” wholesale – which was given away on Sinclair User’s covertape a few years later; the colour schemes have changed and it now sports a titles tune and loading picture, but more important than those cosmetic tweaks is the gameplay which has been rebalanced for the worse, making the enemies less predictable and allowing them take more health away from the player on contact. I get that they had to “rebrand” Lightfarce once it stopped hiding behind Zub‘ skirts, but just swapping the name out and wedging in the tune before going to the pub for the rest of the day would’ve been fine. If they absolutely had to alter the gameplay for some reason, just changing the movement pattern for one enemy type would’ve worked better.

Lightfarce was knocked out in an afternoon, I suspect as a diversion for coder John Pickford in order to avoid burnout from the crunch of finishing the game it was buried within, and free to anyone who’d paid their three quid for Zub. It was never going to set the shoot ’em up world on fire of course, but is still technically neat with those large sprites and the parallax, with the action being a forgettable but fun distraction for the player. For me personally, this little game is more entertaining than the bigger product it was bundled with or indeed some later Mastertronic efforts like Speed Zone. Zarjas is the same in most respects, but both it and Lightfarce have pretty sensitive collision detection so the former is significantly more frustrating overall to play and less enjoyable as a result.