Stercore 64 (C64)

Time to push another release off the C64CD pile and this time it’s Stercore 64 which is a scrolling shoot ’em up for the C64 that is an almost direct port from the Spectrum version that was released last week. There’s very few tweaks apart from a SID rendition of the original beeper soundtrack for which I can only apologise on a loop during play and the backgrounds being tweaked for the C64 palette. Oh, and it gained a “64” at the end of the title just like publishers used to do in the early 1980s.

After those changes and the higher resolution of the C64’s screen in the display mode being used it’s pretty much the same game, hammering along at ludicrous speed just like the original by moving the attribute data to scroll the background – this is now an unrolled loop which replaces the LDIR commands in the Spectrum code – and rendering all of the moving objects for the player, bullet and enemies to the bitmap with software. It was quite a pleasant surprise to find that, although my Z80 software sprite routine isn’t exactly optimal, the 6510-powered equivalent kept up with it and I didn’t have to spend any serious time optimising the C64 code to get it running at the same speed.

Before sitting down with the assembler I considered doing a re-imagined version of the game for the C64 which took advantage of the hardware sprites and how their background priorities work with multicolour characters – have a look at the game Implosion, the sprites can pass between background elements without software-based clipping – but eventually decided to keep things as close as possible to the original in part for the programming challenge that route presented. For anyone who fancies digging around further, there’s source code at GitHub.

4 thoughts on “Stercore 64 (C64)

  1. I’ve still not downloaded a Speccy emulator to play the ‘original’ yet, but the C64 version looks almost identical and tears along at a similar (same?) speed.

    Nice! I’ll give this a blast tonight!

  2. I’m normally better than it might appear in the video, my excuse being that I had to concentrate on capturing the footage or something! [Sheepish grin =-]

Leave a Reply

Your email address will not be published. Required fields are marked *