SkoolKit

Spectrum game disassembly toolkit

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).

Cruise news

Cruise news

The Contact Sam Cruise disassembly has just seen its fourth update since I announced that it had become ‘complete’ about six months ago. Since then, I’ve documented 14 more bugs, added 9 more trivia items, composed a walkthrough guide, and filled out the list of graphic glitches. If you haven’t stopped by to look at the disassembly in a while, there’s a good chance you’ll find plenty of new stuff to peruse.

Of the bugs documented in the last six months, my favourite is probably Hiding in plain sight, in which Sam evades arrest by the zealous city cops on the beat by merely standing on the edge of a roof, in plain sight of anyone who cares to look. Of the trivia items added in the last six months, my favourite is definitely Hidden ground, which reveals an underworld (kind of) in Sam’s home city that, to my knowledge, has never been seen by the CSC-playing public before. What’s funny about it is that the very first trivia item added to the disassembly - nearly two years ago as I write this - was Hidden sky, but it didn’t occur to me until very recently to investigate the nether portions of the play area for a similar phenomenon.

Anyway, for further details of all the changes, consult the changelog. As ever, 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 of SkoolKit).

A bit about the Kit

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.