Watching Future Shock (C64)

One of the things I personally missed out on as a C64 owner in the United Kingdom during the 1980s was online service Compunet – the potential phone bills alone meant I stood no chance of begging my parents for access – but I did at least have a school friend Philip Chan whose family could afford it. Before I got involved in the scene and mail trading, Philip’s modem, a compilation called The Best Of Compunet purchased from the company’s stand at a show in London and the regular section on demos in Zzap! 64 were our only connection to the nascent demo scene of the mid 1980s and, along with an eclectic mix of downloaded productions, Philip also uploaded some of my early “efforts” for others to see.

Future Shock was one of the demos on The Best Of Compunet – I didn’t have a disk drive at the time so was loading from cassette – and stood out as impressive stuff; there was Mat’s multicolour version of the moodily lit Amiga picture doing the rounds at the time in computer magazines and an original soundtrack composed by Demon, all pulled together by Psy The Hero’s code which put a scrolling message in the upper border and a couple of cycling logos in the lower. But there was a little surprise waiting for first time watchers; when Future Shock starts up the little monitor is showing a teensy version of Avril Harrison’s iconic King Tutankhamun picture but, at when certain point in the music is reached, that changes out for a cute little boing ball bouncing around the Amiga’s screen.

Despite taking a pop at the format once in one of those aforementioned uploads I adore the classic Compunet bog standard demo, just look at Koalatro or MD201604 for example and there’s over a dozen other prototypes in my work folders all trying different things with the scroller or picture. A lot of that love originates from watching Future Shock in the mid 1980s and, although there are scores of other great examples of this trope on the C64 such as XESS 1 – Rendezvous by XESS, the Commandos’ Official Warhawk or Transputer Demo – the latter which brings back a few hazy memories of watching Tomorrow’s World as a teenager – and Metal Bar 2 by Borderzone themselves which puts the scroller into the side borders, Future Shock has always stood out to me as a well designed, solidly executed whole and still does to this day.

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.

Watching Five To Five (Atari 8-bit)

I’m not actually sure when Five To Five was released; there’s a YouTube video which says 1989 in the description and one visitor to Pouet commented about watching it in 1990, but there’s no date on any of the archives I usually grab Atari 8-bit files from. It’s a single-parter produced by Polish game developers Mirage Software – again according to the aforementioned YouTube description, it was put out as a preview for a game that wasn’t actually released – and features solid graphics, a brilliant piece of music by Jakub Husak and some clever use of the Atari 8-bit’s video hardware.

There’s a couple of effects of note, specifically the oscillating snake picture in the middle of the screen and a moving chessboard at the bottom; the latter is simple enough and works in the “traditional” manner which games like Trailblazer employ, having a series of triangles defining the shape and changing two colour registers for each row of squares, making the gaps wider between those colour changes near the bottom of the effect and narrower at the top.

The main effect is also relatively simple in technical terms but the implementation is what sells it; the shape of the Atari 8-bit’s screen is handled by a series of instructions called a display list and these commands can specify which mode is being used for each line of the screen, if horizontal or vertical fine scrolling is enabled and, most importantly in this case, where in memory to start fetching graphics data. There’s one of these memory selection commands for every scanline of the effect and the addresses following them are rewritten based on a sine curve. This technique wasn’t new and had already been used in the past to manipulate the display in programs like Jeff Minter’s Colourspace but the trapezoid frame around the picture adds to the overall effect, making appear to be moving in 3D.

This second screenshot is a glimpse behind the curtain for both effects that appears during the fraction of a second long pause between the display list being enabled and Five To Five‘s main code kicking in. The top of the snake picture is there without any distortion applied – the rest of the image is of course in memory after that part finishes, but the display list doesn’t have instructions to display it – so the shape of the frame more obvious and those triangles I mentioned that are used for the chessboard are visible as well.