Thinking about Uridium (C64)

Kim Justice recently posted a video about the just released Hyper Sentinel and its predecessor Uridium – I’ve been playing the former and have a few thoughts, but need to spend a little more time organising them for a post – and I’ve been making something of a nuisance of myself in the comments by, amongst other things, explaining how the background scrolling and parallax starfield work for Uridium on the C64. Whilst writing those comments I ended up coding a simpler version of my own with controls like Hyper Sentinel into the bargain, so I might as well show off demonstrate it here.

Despite the Dreadnought only being 17 character lines high that scroller is actually refreshing 21 lines of the screen from a 256 byte wide map which has been cropped down from Uridium‘s final level where it was 512 wide. The stars work in a similar way to Andrew Braybrook‘s, with two possible characters being displayed (or not if the character cell they’d be occupying as a piece of Dreadnought in it) as high resolution rather than multicolour so the points being plotted to them can cleanly counter whatever the hardware scroll register is currently up to. Braybrook’s stars are randomly placed at the start of each level whilst mine are limited to one every second character line, but it still looks okay and I could at least make it randomise the X positions.

For some reason I even got around to making the Uridimine launchers pulse using what are essentially primitive software sprites which are only being written to the colour RAM, although Rassilon alone knows if that’s how Uridium actually does it. Just for reference, where the border colour is green there’s free processing time and red indicates that my slightly clunky scroll engine is weaving it’s magic; the border also changes to pink whilst playing the music – a cover of Jason Page’s Uridium 2 loading music by Andy Vaisey – but that happens well before the visible screen actually starts so can’t be seen.

I’ve got no plans to continue this right now because it was just a doodle really, but the scroll engine started off as part of something else and the upgrades I made today might end up being passed back to that project… and I’ve literally and rather randomly just realised that what I’ve actually written here is a partial clone of Sensible Software’s Uridibad, haven’t I?!