Oldest Style (C64)

With musical accompaniment from the long-suffering Andy Vaisey, I pushed my first entry into the CSDb Intro Creation Competition for 2018 out of the door today. It’s a piece rather evocatively titled Oldest Style because there’s a logo with a $D016 wave effect and two areas with inverted graphics and raster-based colour changes beneath them, so it really isn’t doing anything special… but there’s still something unusual going on under the hood and that sort of counts, right?

First a little back story; when I were a lad, raster-coloured text was a new, exciting thing and the titles page of Andrew Braybrook’s game Alleykat was the first example I remember seeing on the C64. But as a novice programmer I simply didn’t understand the hardware well enough to code a working routine myself and my first instinct was to have a loop checking the current raster position by reading $D012 and, when it changed for the start of a new line, updating the relevant registers.

The problem with that technique are the badlines where new screen data is being fetched by the VIC-II; I didn’t know about them at the time so my routine worked for seven scanlines but would hiccup on the eighth, missing it completely. Waiting for every second scanline to get two pixel high splits worked without issue and a couple of the older parts in Sometimes including the tech tech actually do this, but I discovered how everyone else was doing raster bars around that time as well so switched to using a more sensible method for the rest of the demo.

So a few weeks ago I was, as is often the case, procrastinating and found myself reminiscing about that original routine and how clunky the idea was… before wondering if it’s actually possible to do what I hadn’t managed in the 1980s. The most “sensible” solution was to unroll the loop and the final result after quite a bit of testing has been pared down to just five commands that are repeated for every scanline where a register is being split – there’s source at GitHub for those wanting a delve around and the splitter code has been farmed off into a series of include files for easier reading – so one line of the logo has this code;

	LDA #$04
	CPY $D012
	BNE *-$03
	STA $D016
	INY

There’s some self modification updating the majority of those LDA commands to make the logo wobble and change the colours behind the static text, which was done because there aren’t enough cycles to read that data directly – I did try and it just wouldn’t behave, missing it’s timing by a frustratingly small amount – so one drawback of this method has been the size of the code and getting it and everything else into the first 16K of the C64’s memory. If we were to actually use this intro there are a couple of spaces left for a linker after the music but not much else and I’ve already got data decompressing directly to the screen in order to save space…

Workprint – November 2018

So my plans for releasing last weekend went… well, badly. Ongoing illness and me never being at my best this time of year aside, the main reason is that my ability to plan ahead is at best negligible and what little “skill” is actually there will often be completely overpowered by industrial quantities of procrastination. Plan A was started but was too ambitious so ran out of steam and the switch to a more realistic Plan B simply arrived too late in the day to be viable. It’s probably telling that my last contribution to X was For Teh Win in 2006 – back when I was more able to pull all-nighters if needed – where the actual workload was smaller since it ran from a single file and I didn’t do the graphics…

It’s not that I didn’t get anything done though because some code was written and indeed linked, so what I’m “planning” to do now is consolidate Plan B and another project that’s been on the back burner for ages into one, easily manageable demo with the intention being to push the results out of the door in time for the C64 competition at Forever next year since there’ll be a joke in there which should hopefully work with that audience… because if you can’t be top of the pops for technical expertise and haven’t really got the conviction to carry off something thematic, try going for the laugh.

Anyone who hasn’t looked at the releases from X’2018 should give them a go, there were twenty one demos and six 4K intros in total (as well as a couple more demos released outside the competitions and a metric bucketload of music and graphics entries) with even the just-for-fun entries like the one from Poo-Brain – only the second C64 release from the newly-minted C64 division of a usually Windows-based group – being enjoyable to watch.

As an unexpected but happy Wednesday morning addendum, I’ve just noticed that the CSDb Intro Creation Competition is back for 2018 as of Monday. The closing date is on the 6th of January 2019 so that’s a solid two months of coding time and participants can enter up to three intros. I’ve thrown my hat into the ring for a couple of previous instances so it’s the well that Macro Sleep, Refix 2017 and Koalatro sprang from as well as C64CD release Clonetro. I think there’s a few existing ideas knocking around amongst my workfiles so, once things are back on a more even keel, I’ll have to start dusting them down to see where I stand.

An odd start to the day

My demo project has been put on hold because I’m not really well enough to continue working on it right now; the decision was made for a couple of reasons yesterday morning and since then I’ve slept far too much and gained a rather persistent headache that’d make the Queen swear like a sailor so it seems it was a good call even if I didn’t realise at the time. Next Tuesday is the regular workprint post, so I’ll go into a little more detail about where things stand during that in the usual, vague manner.

I was feeling pretty down after making that call yesterday, but today I awoke to find a pending comment on yesterday’s post which just contained a link to the GameFaqs forums; each game in their database also gets a dedicated message board area and, for some reason I may never get my head around, the one for my C64 shoot ’em up Warflame seems to have become a general purpose discussion area with over 3,300 threads at the time of writing, some of which date back to 2012. Topics just on the first page right now include a couple of long-running threads about American animation and Anime along with gaming-related discussions on Dead By Daylight, Overwatch and the recent Spiderman game, but it seems that absolutely anything goes and, apparently, has done for over half a decade now.

So yes, that’s a thing… and part of me is absolutely delighted that such chaos is being perpetrated in my name – or at least the name I made up – without my even being aware of it, but I’m not sure about accepting the invitation to stick my head around the virtual door because they’ll either worship me as their god or more likely organise a lynching and I’m not massively keen on either option! Still, thanks to the commenter who gave me the link and hello if you got here from the “I found the creator of Warflame” thread.