Playing Radius (CPC)

Because I’ve been asked to contribute a technical comparison of the two machines for a book (speaking of which, I really should get the final touches done to that over the weekend), this week I’ve been playing quite a large selection of games for both the C64 and Amstrad CPC. All well and good, except that for some bizarre reason the title that has grabbed the majority of my attention isn’t something decent on both machines like Mission Genocide or even on just the one…

On the C64, Radius is an almost archetypal budget label scrolling shoot ’em up; it doesn’t recycle the eight sprites at all and has some three colour scrolling trundling past in the background, all the graphics are okay but could have been better (considering one of the graphics people involved was Rob Whittaker, they’re actually on the disappointing side) and the budget didn’t quite stretch to commissioning a decent soundtrack so there’s just spot effects and the classic “hum” on the titles page. But despite not standing out from the crowd in any particular aspect and having been geared very squarely on the unforgiving side of the difficulty fence (memorising the enemy waves is an absolute must and there are some extremely cheap deaths hidden in the waves) it isn’t really a bad game as such, just rather nondescript.

And on the cosmetic level at least, Jason Falcus’s Amstrad CPC conversion of Radius looks fairly similar – the sprites are a little smaller than the C64 versions, granted, but the backgrounds are there and AY equivalents of the SID sound effects are pretty much present and correct… but then it starts to scroll and words like “jerky”, “shuddering” or even “argh, my eyes they burn make it stop” (perhaps just screaming would save time) honestly aren’t going to do this thing even the slightest amount of justice. It’s almost as though the C64 game is being emulated on the Amstrad and the result works at around one fifth of the regular speed – it’s slowed down to around the point where more attuned gamers can probably count the frames off as they’re updated. Yes, I know that horizontal scrolling isn’t exactly something the CPC is famed for of course, but even considering that the bloody thing is utterly dire… so my still playing the damned thing is probably conclusive proof that I’m a bloody masochist.

Bizarre tangents

One of my more annoying traits as a programmer (and I suspect generally) is that I’m easily sidetracked – so after a couple of weeks writing Atari 8-bit code and getting quite a bit of a game going, the last couple of days have been spent learning the basics of Z80 and trying to write a software sprite engine for the Spectrum!

I’ve always had quite a bit of respect for Speccy coders, but actually sitting down with an assembler and prodding at the thing myself has emphasised just how limited a set of resources they’re having to work with. Even my simple four sprite routine is on it’s fifth or sixth iteration (optimisations have included moving the code out of contended RAM and unrolling quite a bit of it) and it doesn’t even handle X positioning yet I’ve got a few ideas to try later to improve it further…

But I can’t right now since I’m posting this with my (t)rusty old Blackberry as I head to the eye clinic at Jimmy’s… not that I’m implying that two days of working with the Spectrum has affected my eyesight or anything, of course!

Project time!

After several weeks of generally arsing around with random sprite engines, I’ve finally settled on an actual project and since it’s me we’re talking about, it’s going to be a horizontally-scrolling shoot ‘em up. It’s currently a sprite engine (which has been disabled for the screenshot below because it’s running on test data – I haven’t bolted together the graphics converter for that job) and an LMS-based scrolling background:

The look of the backgrounds has been inspired by Red Max on the A8 (where “inspired by” can probably be interchanged with “ripped off wholesale from”) and I haven’t settled on what the sprites’ll look like yet but have a few vague ideas.

Right now the player movement and firing are in, the basics of the attack wave driver tick over nicely and the player can collide with or shoot down the little darlings, so the most immediate jobs are to get that sprite converter up and running, draw some objects and bolt a handler into the code. And at some point it’ll need a name!