i love flipping

SkoolKit 2.4 is now available from the usual download page. It’s been a while since I dedicated a blog post to a new version of SkoolKit, but that’s not because nothing’s been happening. On the contrary, some things have been happening. If you’ll bear with me, I’ll try to summarise the most significant and least boring changes in the six releases made since 2.2.2 came out over six months ago.

The biggest new feature is the addition of the skool2sft.py command, which can convert a skool file into a ‘skool file template’. What’s a skool file template? It’s a bit like a control file, except that it preserves the following elements that control files don’t: all ASM directives, data definition entries, remote entries, and comments that are not part of a code or data block. Put more simply, a skool file template is a skool file without the Z80 instructions; to insert the Z80 instructions, you supply a Z80 (or SNA) snapshot and run that and the skool file template through sna2skool.py. For more details, see the documentation.

Even if you don’t plan on using skool file templates, you still might find sna2skool.py’s support for them useful. For example, you could feed a snippet of a skool file template to sna2skool.py in order to disassemble a portion of a snapshot (instead of the entire thing) thus:

$ echo 'cC32768,20' | sna2skool.py -T - game.z80

This would print a disassembly (in skool file format) of 20 bytes, starting at 32768.

In other news, skool2html.py now supports multiple ref files per disassembly. So if your existing game.ref is getting large and unwieldy, you could split it up into smaller files named game*.ref for easier maintenance. And speaking of ref files, support for [Changelog:*] sections has been reintroduced, making it easier to generate a disassembly changelog page (such as the one for Skool Daze).

On the image creation front, the #UDGARRAY macro has been enhanced so that masks can be specified, and both the #UDG and #UDGARRAY macros have been enhanced so that images can be flipped (horizontally and/or vertically) and rotated.

And finally, as always, there are a few bug fixes, including one that prevents sna2skool.py from choking on ancient version 1 Z80 snapshots (which are evidently still in use by some people). See the changelog for details of the other fixes.

So that’s all the SkoolKit news for now. Time to get cracking on 2.4.1.