Tool Development…

Now that the original Frak! source files are in a usable form, the first substantial step would be to wrangle all the graphics into a format that, say, Gimp can use.

However, given that 1984 was long before almost all graphics file formats had been invented :-), I – along with just about everybody else back then – used my own graphics file format. I even wrote my own sideways ROM file editor (called ViewShape) to edit these graphics files.

Missing Metadata

But… there’s a problem. Back in the BBC Micro’s filesystem, each file had a small block of metadata, that included its filesize, its load address, and its execution address. If you typed *CAT or *. or *INFO on the command line, the Beeb would display that metadata. Cleverly, my shape editor used the load address and execution address fields to store the width and height of the image (strictly speaking, the highest xco and yco, so width-1 and height-1).

The problem (not so cleverly after all, alas) was that when the files got converted (back in 1991, *sigh*), only the filename and contents of the file got snapshotted. And so all the other metadata got lost. So I have graphics data, but no width/height information. 🙁

Moreover, to save space, lots of the Frak! graphics were composed of multiple individual pieces. For example, the jungle level used a number of different log shapes formed from combinations of thin log sections: while Trogg himself was formed of different body shapes and leg shapes etc. So lots of the composite graphics will need to be programmatically reconstituted from the source code.

So, my starting point here is that I’m very probably going to need a chunky hand-rolled tool to get all the graphics in a “flat” modern format that can be worked with.

Eclipse + msys64

For a tool development IDE, rather than use Python, I thought I’d be a little more old-school and install Eclipse and GCC, simply because you can debug it trivially. (I was briefly tempted to use BBC BASIC, but then thought better of it, sorry Richard!)

Installing Eclipse and the latest msys64 was a breeze, though I had to remember to use pacman -S to install gcc, make and git. With all that in place (and adding a line to the path), Eclipse found the toolchain ok and Everything Just Worked. 🙂

Which was nice.

So now I have source files, graphics files (admittedly without metadata, but 35 years on, that’s not too shabby), and a tool development environment that uses the latest gcc release. We have lift-off! 🙂

Leave a Reply

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