Code Notes – Planet Invasion

Since the author appears to be on something of a hiatus yet again and no posts from him equates to nothing happening here as well, your correspondent has decided to branch out with an occasional series[1] of articles taking a look at user-developed software for the C64 or perhaps other platforms and discussing how it works. And, since your correspondent is currently leaning towards the demo scene side of things, that seems as good a place as any to start.

 

Planet Invasion by The Harlow Cracking Service

A Commodore 64 demo released in 1987(?)
Programming by Freak
Graphics by Andie
Music by Rob Hubbard
Ripping by Gairy

So let’s begin dear reader with an at least relatively simple one-part demo called Planet Invasion by the Harlow Cracking Service which probably came out during 1987 (Rob Hubbard’s soundtrack for Nemesis The Warlock and this demo’s sequel Danger Zone were both released in the same year) when it was uploaded to the UK based C64-centric online service Compunet.

Planetary Invasion (C64)

The main part of the screen consists of thirty two hardware sprites with a three speed parallax scrolling effect behind them. Recycling hardware sprites is simple stuff, the display on a home computer is drawn from the top downwards so it’s just a matter of waiting until the point on screen where one iteration of a sprite finishes and moving it down to the next position before that area is due to be displayed. The three layers of movement don’t actually use the C64’s hardware scrolling, instead each area is filled with a single character which is redefined to create the motion. The scrolling message in the borders uses a similar technique with the row of sprites producing it being static whilst their definitions are redefined to move the scroller.

Speaking of which, whilst opening the upper and lower borders isn’t a documented feature of the C64 it is still easy to achieve; when the VIC-II reaches the end of the visible screen it has to turn the border on and checks to see if it needs enabling at two positions (for the default 25 and masked for smooth scrolling 24 character row modes) so making sure the machine is in the opposite mode from the one it’s looking for at both points will make the computer “forget” to put the borders in place. There aren’t any characters or bitmap graphics in that space (there is something there but it’s far more restrictive and not used here) and the area is just a vertical extension of the screen but the sprites work as normal and in this particular case there are seven in each border.

Technically speaking, Planet Invasion wasn’t a complicated demo even at the time of its release and the opening of the upper and lower borders was, despite not being covered in the programming books, already well understood and often utilised by programmers; the demo does hold together quite well despite that technical simplicity though, sporting some nice sprite definitions and an excellent choice of music.

It’s also worth noting that the Harlow Cracking Service were based in the United Kingdom so members would have been learning their craft with the same tools and documentation available to the author and possibly started during that same 1984/5 time period as well. Things like sprite splitting and redefining of characters were covered by at least some the programming books of the day and undocumented techniques such as opening the borders were initially discovered by trial and error testing of VIC-II “glitches” and passed on either by word of mouth or via other programmers disassembling existing code to see how a routine worked.

[1] “Occasional” in this case meaning “pretty much at random when the inspiration takes your correspondent”.

Advertisements
This entry was posted in Meta Discussion, Programming and tagged , , , , , . Bookmark the permalink.

One Response to Code Notes – Planet Invasion

  1. Pingback: DEBUNKING TMR’S “CODE NOTES – PLANET INVASION” | commodore64crap

Comments are closed.