MD201703 – The Bat-Tro (C64)

Back in the mists of time (or more accurately, last Monday) Cosine released a new demo called MD201703 – The Bat-Tro on the C64 with code and graphics by me and music by aNdy. This came about because a member of Batman Group (the same one behind Batman Forever on the Amstrad CPC – wired some of their Amiga graphics… erm, let’s say “less than wonderfully” before uploading to the C64 Scene Database. Now, I’ve been converting graphics for a very long time so, rather than just saying “those look a bit rough” or something similarly English and reserved, instead it seemed like a fun idea to instead convert one of the Batman logos myself and tart it up a bit.

And once that was done, along came the brilliant idea of turning the picture into an actual demo for release as part of the monthly demo series. That meant poor aNdy was persuaded to produce a soundtrack at the last minute, which was a cover of the first level music from Batman on the Mega Drive – I wanted something less obvious than one of the movie scores or Adam West’s theme and stumbled across Sunsoft’s game whilst looking for a double height character set to convert for the scrolling message. The final SID tune turned up soon after I asked and, despite aNdy’s protestations about minor rough edges, is great stuff.

I mentioned previously about discussing how this works so going from top to bottom… the picture is a high res bitmap but uses eight sprites (two at any point in the picture but recycled four times) in order to circumvent the attribute problems where the light green and yellow blend into other colours on the outer edges. The remaining six sprites are behind the five bats drifting over the picture and the sparkles of light which can be positioned pretty much anywhere over the logo.

The timing sensitive code is in the lower border, powering the sixteen pixel high scroller. The part of the message which is legible uses eight hardware sprites with each supplying three characters to make twenty four in total, but the “smearing” effect is where things get interesting because they’re cycle timed vertical splits of the ghost byte, three on the left side of the screen (the third zeroes the ghost byte for where the scroller starts) and two on the right. It could have been done with colour splits as well (so a raster bar behind the scroller was possible rather than the fixed green background which was quite tempting) but this method doesn’t suffer from the “twinkle” caused by midline colour register changes on a C64C or C128.

Reading that back, I’m wondering again if these descriptions include enough detail? They’re pretty much targeted at other 8-bit programmers, but should I still write in more detail about cycle timing at some point or explain what the ghost byte is… so answers on a postcard to the usual address please, and I’ll see about answering further questions in the comments as usual.

Workprint – March 2017

It’s time for another little update on things that are happening; first off I released a new monthly demo at the start of the week but… umm, sort of forgot to post about it here! That’ll appear in the next day or so – possibly including something of a “how it works” as well to sort of atone for the delay.

I haven’t settled on anything specific for MD201704 just yet – hopefully it’ll be released at a little Cosine get-together near the start of next month if that goes to “plan” – but there are a couple of prototypes which might work for that release. I’ve also had a couple of requests from other groups to code a slideshow and a BBS intro so those should be fun! Both are in the early stages at the moment and the slideshow’s artist is new to the C64 so I’m still walking him through the graphical capabilities right now, but things are going well on that front even if the poor soul is about to be introduced to one of my less than user friendly graphics conversion tools!

Yes, this post is somewhat vague and very light on screenshots but the projects themselves are somewhat nebulous at this point! It’s safe to say that there’ll be raster bars in there somewhere, though…

MD201603 (C64)

This month’s new entry into the Monthly Demo pantheon is MD201603, which was released earlier today. Programming and the character set were by me, but rather than finding an unused tune from a Cosine member, this time there is a brutal cover of the Protracker module Lost In Time from SAE’s collection Amazing Tunes 2 by new member aNdy who also did the logo and sprite graphics. He’s the person who comments occasionally on this ‘ere blog and essentially stops me from completely losing the plot.

The emphasis is once more placed on the scroller, which is a DYPP routine; that differs from MD201602‘s DYCP code by having just the one scroller but moving each pixel column independently rather than just each character column. The movement is also significantly more complicated here because, although going for the simpler single curve approach would’ve made this quite a bit less resource hungry, the double cosine movement just looked so nice!

I’ll get around to the regular “how it works” quite soon and the source code is already up at Github for those brave advemturers who want to go exploring completely unaided! Oh and don’t worry, I haven’t forgotten the simple DYCP example that some nice people asked me to write as well and that’ll hopefully get done at the weekend if all goes to “plan”!