Watching VSP&IK+ (C64)

We’ve got another piece of C64 scene history today, the Mean Team’s VSP&IK+ from 1987. This is another of those demos from the “Wild West” period when programmers were as much concerned if not more so with getting their latest creations out there and the name is pretty much self-explanatory; the IK+ part comes from the music by Rob Hubbard and Paul “Dokk” Docherty picture which were both being taken from the game of the same name, whilst the VSP refers to it being the first instance of Variable Screen Positioning, a hardware “feature” similar to but much harder to implement than the more common Flexible Line Distancing – FLD to its friends – which was in common use around that time.

This technique is sometimes referred to as DMA delay because that’s essentially how it works, waiting for a badline where the C64 fetches screen data and fooling the VIC-II into waiting for a fixed amount of cycles before that fetch actually takes place by setting the vertical scroll register to a value that won’t see it happen, then changing back to one where it will later in the line. One cycle equates to the width of a character so waiting five cycles will push the screen right by that many characters and it’s possible to travel an entire screen width, with the data wrapping around onto the start of the next line, something this demo masks by changing the attribute data. VSP-based scrolling is how games like Mayhem In Monsterland can move their backgrounds so quickly.

I remember seeing VSP&IK+ for the first time on a friend’s C64, casually thinking “oh that’s nice and smooth” in passing as it started up and the picture slid smoothly in from right to left and then staring in disbelief as it snapped back in the other direction at far too great a speed to merely be a double buffered bitmap scroller – we already knew about FLD and understood how it worked but this was nothing short of witchcraft at the time! It still makes me smile now despite knowing how the routine works and having my own examples.