Demo Factory 2018 (C64)

Okay, so between writing the first draft of Saturday’s post rambling about the development of Demo Factory and actually pushing it out to the world I found myself pondering ways to rework it and… well, sort of accidentally wrote a complete, upgraded version! Demo Factory 2018 has been through a few iterations since that first build, but the final code was finished in the early hours of this morning. The music this time is from the game Ninja Rabbits and was composed by Sean Connolly, whilst the general layout of the screen was based on the original 1976 release with some tweaks to add new features. After that, everything else was pretty much built from scratch.

In some respects at least this version works in the same way as the original Demo Factory, relying on the C64’s hardware-based sprite to background priority register for the disks – that’s why one of the character multicolours is black in both versions, those parts of the graphics can never have a higher priority than the sprites so the moving floppies are actually passing in front of those parts of the background – but the sprite-based part of the scroller has to work differently, with the left hand character being a sprite that’s being masked in software so it can pass behind the black part of the pipe regardless of the letter’s current colour.

Although there’s one highlighted effect running in the box labelled “VFX” there are also two starfield-like routines, the animating “SFX” cone and a couple of other, smaller elements which are mostly being refreshed every frame – the moving arrows are shifted every second frame because they don’t look as pretty moving faster and things like flashing lights change only when needed – and that lot are all handled with either character redefinition or simply changing the screen or colour RAM. The only hardware sprites in use are the eight floppies which are either on or sitting by the lower conveyor, the last three characters of the scroller as it falls from the upper belt and one expanded sprite which displays the character that’s just about to appear for the scroll.

I did consider saving Demo Factory 2018 for the CSDb intro competition if it happens this year – the highest byte of memory used is $3FFF since the upper and lower borders are open and the ghostbyte needed to be zeroed so the code is small enough and it does technically feature a logo – but it feels more appropriate to put it out now alongside my fevered ramblings about the original. The source code has been cleaned up and can be squinted at courtesy of GitHub for those who might be so inclined.

Unexpected Brexit consequences

So there I was working on some reviews for Retro Gamer and generally minding my own business the other day when an email rocked up from 123 Reg, the company I use for domains; that isn’t uncommon and they send notifications when renewals are due and the odd “how to improve your SEO” thing that I’ve never bothered reading, but this time was different…

We are writing to inform you that EURid (European Registry for Internet Domains) has decided that anyone without an EU postal address will no longer be able to own a .eu domain name once the UK leaves the EU.

EURid will therefore be terminating all .eu domain names registered to UK addresses on one of two dates.

Which is a bit of a bugger really… and the earliest date for this happening is March 2019 if the UK should stupidly decide to crash out of the EU without any deal in place. In my case, I’ve only got – I’ve always insisted it’s pronounced “kickstart you” to anyone who cared enough to actually ask – which has been my homebrew URL shortener for the last eight or thereabouts years which came about because I’ve built up what I consider to be a reasonably healthy mistrust of “free” online services and the domain was on offer for a quid and I was collecting TLDs at the time.

I’ve already migrated everything to a new home, registering over the weekend and spending some of yesterday knocking the non-fatal but still slightly annoying bugs out of my PHP in the process – in that respect EURid have done me a favour really, the chances of that work getting done otherwise were pretty slim – but this evening is being spent sorting out the rest of the relocation and trying to remember where there are external links pointing towards it. And trying not to forget anything important.

I’m sure some people will accuse EURid of being “petty” but I don’t blame them since this is actually no different than .US suffixes only being available to people or companies with at least demonstrable ties to the United States; I wouldn’t expect to be allowed one of those TLDs unless I met the relevant criteria and, since Brexit is literally the United Kingdom exiting the European Union, this makes complete sense. I do, however, blame the “Brexiteers” though…

Workprint – August 2018

As noted a few times recently, I’ve cycled over into “demo mode” and have been working on… well, something that I’ll be keeping quiet about for a little while yet until it properly gets past that stage where it could be changed or indeed completely reinvented on a whim. Generally speaking though, my intention is to have something ready for X’2018 in early November – assuming we have a representative to take it along – and have a cluster of prototype routines along with some other ideas I’ve been meaning to try and a folder of logos because everybody loves logos… right?

Things have been going slowly but surely so far – today alone I somehow managed to metaphorically paint myself into a corner on two different occasions with what should’ve been relatively simple code, either choosing a less than sensible place to store things or simply running out of memory altogether – and, because it’s been a painfully long time since I worked on anything that wasn’t a onefiler, last week saw me sitting down and trying to get my head around cruncher and loader integration with some of the more recent iterations of popular tools with very little joy… at least until I discovered lft’s Spindle that is.

Spindle is, in essence, a back engine for demos which deals with loading and decompressing of data to the point where the user doesn’t need to be involved; no fighting assemblers to build loader or decruncher code, no messing around with building disk images of data, just document the files being used and the order they’re needed via a script file which is then run through Spindle to automagically get a working disk image out the far end. There are caveats of course – a couple of places in memory have to be avoided, something else I bumped into today – but having to do things just a teensy bit differently is worth it for the results.

Main project aside, there’s also been a little time spent generally doodling both with graphics and ideas for effects and a couple of forays onto other platforms; something might come of the latter if they survive testing on real hardware – in both cases the code was for a platform I don’t actually own right now, so that’s something of an issue – but at the very least it was all good practice.