Do it yourself space station

Battle Eagle has been rewritten a little since the last update, so here’s a newly-grabbed screenshot…

…to demonstrate the newly-implemented colour-per-object extension to the sprite rendering engine. Previously there needed to be a gap between waves when a colour transition was to take place, but that’s been scrapped in favour enemies and their explosions being able to select a base colour when it spawns. The only trade offs are that the background colour change for the main playfield has to happen a scanline early (and finishes a scanline late just to keep everything symmetrical) and the extra CPU load for the object colours has finally tipped things over the edge so I might need to drop the in-game music option; the test tune is causing things to very occasionally overrun and drop a frame and I just don’t feel happy with that happening even when it’s infrequent.

A couple of bugs have also been knocked out of the engine including one that completely spannered the enemy movement timings – it went unnoticed until now because the test data had accidentally been masking the issue!

Avoiding headaches

As mentioned previously, I’ve been working on a scrolling shooter called Battle Eagle that uses the Atari 8-bit’s 4:1 ratio graphics mode and those graphics conversions were being done manually; well, that finally became too painfully repetitive so a couple of hours last night were spent automating the process. The result is a simple tool called GTIAFont which loads a Windows bitmap, yanks a 32 by 64 pixel area from the top left corner (which equates to a 16 by 8 character area after the pixels are expanded from 1:1 to 4:1) and shovels out raw binary data ready for use by the assembler.

But that’s not all because GTIAFont has another trick up its sleeve! Previously I was dumping the same converted GTIA font data into Char Pad 1.0 and, because it uses either one or two bits per pixel and the data was four bits, the tile editor looked like this…

…and, although you could sort of make out shapes, placing characters into the tiles was time consuming trial and error with a large topping of guesswork. So GTIAFont‘s second output option takes the GTIA data and converts it to dithered four colour graphics to dump into Char Pad! The results don’t look astounding of course, but they’re far more coherent to the point where the tiles look like this…

…and I don’t have to worry about going cross eyed after half an hour of level building any more!

This should be fun…

So, whilst Hammer Down is “parked” (if you’ll excuse the truly appalling pun), I’ve been putting some time into another project; Battle Eagle is a vertically scrolling shoot ’em up for the Atari 8-bits and looks like this:

As far as I’m aware, this is the first action game on the machine utilising a 80×192 pixel character-based GTIA mode for the actual playing area (there are a couple of games and previews using the same resolution including Koronis Rift, but they’re using bitmapped screens) and the player and four enemy objects are two horizontally expanded hardware sprites each so they match the 4:1 pixel ratio.

There aren’t any tools for building these graphics so changing just one character involves editing it in a bitmap editor, manually converting the sixteen greyscale image into bit patterns, firing the results through my incomplete bitmap to 8-bit graphics converter (which only supports high resolution images right now which is why the bit conversion is required), loading the created character set into the old version of Char Pad I prefer for level construction and, basically, squinting at the resulting mess that forcing a for bits per pixel graphics set into a two bits per pixel editor causes whilst trying to work out what goes where. The sprites are only a little quicker to modify, with a custom-written converter taking a Windows bitmap and churning out Xasm-compatible source code.

At the moment there’s quite a bit of test data still in there including just one background map, a single enemy animation and a borrowed RMTtune by Miker so there’s still a huge amount of work ahead, but hopefully it’ll be finished in time for the ABBUC competition’s deadline.