SkoolKit

Spectrum game disassembly toolkit

Disassemblies 3000

Flashing K

A few weeks ago, SkoolKit 3.0 was released, bringing with it a new image library that could create PNGs somewhat faster and smaller than SkoolKit 2.x ever did. Now it’s the turn of SkoolKit 3.0.1 (available from the download page, of course), which brings with it the ability to create GIFs as well. “Why would I want to use SkoolKit to create GIFs when it can already create PNGs?” I imagine you asking. Well, in addition to plain old GIF files, SkoolKit 3.0.1 can create animated GIFs too, which are handy for capturing Spectrum screenshots that contain flashing cells. That said, if you’d prefer to create animated PNGs in APNG format (which are natively supported only by Firefox and Opera, as far as I know), SkoolKit can do that too.

To mark this inaugural animation-capable release of SkoolKit, I’ve also ported the Skool Daze, Back to Skool and Contact Sam Cruise disassemblies to SkoolKit 3 (and released those ports). In the process of porting, I replaced their boring, static loader/saver screenshots with animated GIFs that show a flashing cursor. (Exciting, eh?) In addition, I made some performance tweaks that the interested reader can now test for himself. Here are the disassembly build time stats (again, on my old but trusty development machine) for SkoolKit 3.0.1 versus SkoolKit 2.x:

Disassembly 3.0.1 2.x (PIL) 2.x (gd)
Skool Daze 4.4s 5.9s 8.0s
Back to Skool 5.1s 8.2s 12.1s
Contact Sam Cruise 12.3s 33.5s 51.5s

As you can imagine, the quality of my life has improved considerably now that I can build the CSC disassembly in only 12 seconds instead of 51, and with animated loader/saver screenshots to boot.

One more thing: SkoolKit 3.0.1 includes example control and ref files for Jet Set Willy, which now sit alongside the example control and ref files for Manic Miner (Bug Byte version). So if you want to build an unannotated disassembly of JSW in HTML or ASM format, I suggest you download 3.0.1 today.

SkoolKit 3000

SkoolKit 3.0

SkoolKit 3.0 has just been released and is available from the ever-present download page. The observant reader may notice that 3.0 is a whole major version number bump (from 2.5, in case the unobservant reader was wondering). Let me assure the observant reader, however, that the version number bump is not merely a frivolous attempt at attention-grabbing. For SkoolKit 3.0 is the first version of SkoolKit, ever, that will work with Python 3.x. So if you’re one of those people whom it pains to have a version of Python 2.x installed just so they can use SkoolKit, SkoolKit 3.0 may be the analgesic you’ve been waiting for.

In addition, SkoolKit 3.0 has its own image creation library; it no longer requires (or supports) gdmodule or PIL. This time, let me assure the concerned reader that SkoolKit is better off for this change. I have carefully optimised the library for Spectrum graphics and PNGs, with the result that it is faster and produces smaller image files than SkoolKit 2.x. For the curious, here are some stats on the build times (on my development machine) for the HTML versions of the most recent releases of the Skool Daze, Back to Skool and Contact Sam Cruise disassemblies when using SkoolKit 3.0 versus SkoolKit 2.x:

Disassembly 3.0 2.x (PIL) 2.x (gd)
Skool Daze 5.0s 5.9s 8.0s
Back to Skool 5.9s 8.2s 12.1s
Contact Sam Cruise 23.0s 33.5s 51.5s

And here are some stats on the total image file size (in bytes) for those same disassemblies:

Disassembly 3.0 2.x (PIL) 2.x (gd)
Skool Daze 261,426 1,677,213 356,037
Back to Skool 276,891 1,788,654 378,232
Contact Sam Cruise 566,702 1,767,657 719,542

I would encourage the sceptical reader to repeat these experiments and convince himself that the stats are correct, but I haven’t released versions of the Skool Daze, Back to Skool and Contact Sam Cruise disassemblies that are compatible with SkoolKit 3.0 yet. All in good time, though.

So there it is. Having rescued SkoolKit from Python 2.x-induced obsolescence, I must now get to work on 3.0.1.

A tiling problem

A tiling problem

Back in version 20091021 of the Back to Skool disassembly - which was the first version to include disassembly pages for data blocks - it was noted that play area tiles 1, 11, 21 and 30 in base page 144 are not used. Now that was all well and good, but it did leave the reader at least wondering what those tiles look like, and possibly also whether they had ever been used while the game was in development. Which is where version 20120201 of the Back to Skool disassembly comes in, and, more to the point, the new trivia entry Bottomless boxes. Be sure to take a look if you’ve spent the last two years scratching your head over the mystery of those unused tiles.

So, yes, in case it’s not been made clear yet, a new version of the Back to Skool disassembly has been released. In addition to the aforementioned investigation of unused tiles, this new release includes an explanation of the significance of the curiously named Q values. And the startup code has been moved back into the main skool file, which means that the ASM version of the disassembly now gives the option of changing the characters’ names. Such are the main changes since the previous release; for further details, consult the changelog.

Anyway, as always, you can browse the entire disassembly online, or download a copy for offline viewing, or build it yourself from the source skool and ref files included in the offline copy (for which you’ll need at least version 2.4.1 of SkoolKit).