Extending the Kit

By | June 19, 2012

I AM A P.I.When SkoolKit 1.0 was released (in January 2010), I hadn’t given much thought to making it useful for producing disassemblies of games other than Skool Daze and Back to Skool. Indeed, in the ‘What is SkoolKit?’ section of the documentation, I described it as ‘The Skool Disassemblies in DIY or kit form’ (hence, in case you ever wondered, the name). And many of the documented skool macros and ref file sections were specific to the Skool games, too. It wasn’t really until version 2.0 (in November 2010) that I started thinking seriously about turning SkoolKit into a generic disassembly-creating tool, and only by version 2.1 (in April 2011) had I finally got rid of all the Skool-specific stuff.

Which brings us to version 3.1, released today and available for download from the aptly named download page. Taking support for non-Skool games to the next step, SkoolKit now has a public API that can be used to extend its functionality, thus enabling you – the potential producers of Stonkers, Infection and Laser Squad disassemblies out there – to implement your own skool macros (yes, they’re still called skool macros, for old times’ sake), and read your own custom ref file sections with custom names (made up by you) for custom purposes. For more details on what’s possible and how, see the documentation on extending SkoolKit.

In other news, support for the #CALL, #REFS, #EREFS, #PUSHS, #POKES and #POPS macros in ASM mode has been added, which means that skool2asm.py won’t choke on skool files that contain them. So now the only skool macros not supported in ASM mode are the image-creating ones: #FONT, #SCR, #UDG and #UDGARRAY. Which, I hope you will agree, makes sense: it’s hard to insert an image in a plain text ASM file.

And finally, if you’ve ever considered using SkoolKit to create a Spectrum game disassembly but were put off by the sickly pastel colours in the default CSS file, then be put off no longer. SkoolKit 3.1 includes a dark theme CSS file: skoolkit-dark.css. Quite literally, it is the exact inverse of the traditional skoolkit.css. To try it out with the Manic Miner disassembly (for example), just add the following section to examples/manic_miner.ref (included with SkoolKit):

[Paths]
StyleSheet=skoolkit-dark.css

or leave the ref file as it is and use the handy new ‘-c’ option of skool2html.py when building the disassembly:

skool2html.py -c Paths/StyleSheet=skoolkit-dark.css examples/manic_miner.ref

Either way, you can now revel in the darkness.