SkoolKit

Spectrum game disassembly toolkit

Au clair de la mulberry bush

Name those tunes

Time for a new release of the Skool Disassemblies. As always, you can browse them online, or download a copy for offline viewing. And also as always, if you’d like to build the disassemblies yourself (including ASM versions that can be fed into an assembler), then SkoolKit will do the trick.

As the veteran disassembly-watchers among you will already know, the Skool Disassemblies are now in maintenance mode: I have no new features planned, but I will fix errors or document new bugs, pokes and trivia as they come to light. For this particular maintenance release, I have documented more graphic glitches, and added a couple of trivia entries about the tunes that play in the skool games. For details of all the changes since the last release, see the changelog.

Also remember that SkoolKit includes a disassembler, and provides some support for creating HTML and ASM disassemblies of other Spectrum games. An incomplete disassembly of Contact Sam Cruise is already bundled, alongside an even more incomplete disassembly of Manic Miner.

The fidgety frog

Where's Sam Cruise?

Just a quick note to inform the disassembly-watchers among you that a new version of the Skool Disassemblies is out. As usual, you can browse them online, or download a copy for offline viewing. And also as usual, if you’d like to build the disassemblies yourself (including ASM versions), then SkoolKit has what you need.

The Skool Disassemblies are now in maintenance mode, which means I have no new features planned, but I will fix errors when I spot them. I’ll also document new bugs, pokes and trivia entries that come to light or mind. Speaking of which, there is one new trivia entry in this update: The apprehensive amphibian.

Don’t forget that SkoolKit provides some support for creating disassemblies of other Spectrum games, and includes an incomplete Contact Sam Cruise disassembly. I’ll probably get back to that when I’ve finished the current round of changes to Pyskool.

SkoolKit: The road to 1.1

SkoolKit 1.0 was released 28 days ago. Today, version 1.1 was released. Get your copy from the SkoolKit page (which conveniently includes a description of SkoolKit and some download links).

So what has changed since 1.0? Well, if I may liken the time taken and the work done between these two releases to a road, then that road was littered with bugs that were kicked aside into the ditch, and new features that were scooped up and taken home. Thus, that road is now safe and clear for you, the SkoolKit consumer, to take without fear of puncturing tyre or foot.

Having stretched and exhausted the somewhat dubious road metaphor, let me get into the details.

Most of the bugs were in the disassembler, sna2skool.py. In 1.0, it disassembled some instructions incorrectly, failed to recognise some other instructions (and disassembled them as DEFBs), or otherwise produced disassemblies that would not assemble back to something identical to the source snapshot. All those bugs (the ones I know of, at least) have been fixed.

As for the new features, well, sna2skool.py once again hits the headlines. It gained the ‘-g’ option (to generate a control file for a snapshot using basic static code analysis), the ‘-t’ option (to show ASCII text in the comment fields, thus making it easier to spot messages), and the ‘-s’ option (to specify the disassembly start address). It also now inserts comments at each routine entry point listing the callers of (or jumpers to) that entry point, making it easier to flick between related sections of code.

Elsewhere, skool2html.py gained the ability to write pages other than the disassembly files and memory maps (such as ‘Pokes’ and ‘Bugs’) for a skool file specified by the ‘-f’ option. Demonstrating this ability, SkoolKit now includes an incomplete disassembly of Contact Sam Cruise, for which skool2html.py will write a ‘Play area’ page, an ‘Animatory states’ page, a ‘Trivia’ page, and others. Elsewhere again, a sample control file for Manic Miner (manic_miner.ctl), and a utility script for converting skool files into control files (skool2ctl.py), have made their way into SkoolKit.

And last but not least, the Skool Disassemblies were updated to version 20100225. As usual, that version is available for browsing online, or you can obtain a pre-built copy here for offline browsing.

To sum up: even if I do say so myself - which I do - it’s worth upgrading to SkoolKit 1.1.