Workprint – June 2019

With Stercore XD released last weekend I’m sort of between projects… well okay, a hopefully final re-mastering of Hammer Down needs attention so I will have to give it a little thought at some point, but for various reasons I’ve been struggling more than a little with motivation on that one. Part of the problem is that every update to the code is a balancing act now and, even when that goes well, the changes also see me refreshing the greetings list which scrolls past on the titles page which is at best an uncomfortable process due to the data format I settled on to in a vain attempt to keep the size down.

So since I’m procrastinating there’s a chance that I’ll actually listen to the part of me which is constantly shouting “let’s make a new shoot ’em up” like a seven year old existing almost exclusively on a diet of E numbers. Right now that high-pitched, overly excited voice in my head reckons that a single screen blaster would be fun to do and I’ve got some unfinished business on that front anyway from when I started a “cover version” of a small game called Death Dealer that was intended for release on cartridge back when RGCD were limited to 16K. Perhaps it’s time to resurrect that project whilst perhaps wedging in some backgrounds or adding more complex waves to improve the longevity?

That would go some way towards bridging the gap in C64CD’s “narrative” too. My original plan was for the games to evolve over time almost like a newly-minted coder picking up skills between releases; I started out with a single screen gallery shooter – a reworking of the first assembly language game I coded as a beginner myself – and planned to build up the complexity with each game, but Stercore XD broke that sequence by leaping ahead a large distance.

With all of that said though, I’m reasonably sure that previous paragraph wasn’t just me trying to find excuses to work on another shoot ’em up.

Stercore XD (C64) released

The start of a new month sees a new C64 game from yours truly… well, “new” in the sense it’s a reworking of something I released last year under the C64CD label. Stercore XD is a horizontally scrolling shoot ’em up and I’m sure my regular fan has just passed out in shock at such an out of character move on my part. Sarcasm aside, I might as well wibble on a bit about technical details since the game isn’t exactly a complex beast with an engaging back story.

The screen scrolls at five pixels a frame – a little slower than the original Stercore on the Spectrum or the direct C64 port which are moving at eight pixels – and uses a wider map which leaves gaps for tidy background colour changes. That map is 2,340 tiles wide, making the background around 240 screens in total and it all barrels past in a little shy of five minutes during play. Since Stercore XD has been squarely aimed at the RGCD competition it needed to run from a 16K cartridge, so the bulk of the game is compressed with Exomizer but the unrolled chunk of background scroll code required to move two and a half times what the Spectrum is dealing with was generated on start up.

Stercore had player and enemy objects passing between two layers and this has been faithfully replicated with hardware sprites in Stercore XD, relying on the hardware sprite priority register and using a similar approach to games like Implosion, Dan Dare or Shadow Skimmer. One background layer is always the background colour the character mulitcolour which that doesn’t get priority over the sprites, the other layer uses the remaining multicolour and character colour, with the latter mostly being used to add dark and light detail. This technique is accurate to half pixels and requires no processor overheads for masking but does require a lot of extra juggling when drawing the graphics.

After that it’s got a slightly extended and tweaked version of the original theme tune which was just an extra half pattern from the original Autotracker-generated tune used to “create” the original Stercore music and, more importantly to the gameplay, there’s a simple attack wave driver which was repurposed from Super Hyperzap. As is usually the case there’s source code – and in this case, work files for those wanting to understand the sprite priority thing – over at GitHub for folks wanting to prod around, although that source isn’t my tidiest piece of work even after it was “sanitised”!

Admiring the Vista

I’m taking a couple of weeks off from the Saturday posts. Specifically, there wasn’t one yesterday because I was prodding around inside my old Dell PowerEdge SC1430 server and trying to get the RAM cooling fan working without any ear-piercing squeals. Dell used a proprietary 5 pin connector on this fan and the cheapest I found online was £25, which feels more than a little excessive and nobody around that price range had it in stock anyway. So I instead took matters into my own hands, which involved removing a wire guard, peeling the sticker off the hub and squirting generous quantities of lithium grease into the little hole. The machine has been running for nearly a day since said bodge was applied and appears happy, so apparently that’s a job well done and the next task is tidying some loose ends and cleaning some crap out of the other fans.

Whilst delving around in one of the local charity shops a few days ago I stumbled across… a boxed, beta release of Windows Vista! The case proclaims it to be part of the Customer Preview Program and it shipped with two DVDs for 32- and 64-bit installs. When booted there’s a watermark on the desktop saying it’s an evaluation copy of Windows Vista Beta 2, gives the build number 5384 and plays Windows XP sounds for events, all of which I know because… well, I installed the 32-bit version on a spare laptop for gits and shiggles.

Unsurprisingly so for something that’s both a beta and Vista it’s very flaky, but some of the problems were fairly extreme for something released to the public; closing the lid suspended the machine which was fair enough but it got stuck making a sound when resuming that only stopped when another played and, after one routine reboot, the login screen completely forgot how to keyboard. I didn’t install any drivers for the wireless network hardware but it couldn’t see the LAN either, so my “plan” to download Chrome and write this post on the Vista install itself fell by the wayside… oh, and it’s a timed beta that I got installed by setting the system clock to late 2006 because the manual said it’d expire at the start of June 2007.

Being curious and resetting the clock back to 2019 whilst writing this post got me a window on boot saying that “your activation period has expired and Windows is no longer working” that didn’t go away when the clock was pushed back again; that’s understandable sure, but it also seems to have completely broken the install since that screen wants to get online to validate any option I select and can’t due to a distinct lack of LAN connection. Instead it just sits there for a few minutes, throws up an “authentication failed” dialog, then rinses and repeats whilst trying to shut down gets it stuck on the “logging off” screen. Oops…