SkoolKit

Spectrum game disassembly toolkit

Two-dot-two-dot-two

setup.py install

SkoolKit 2.2.2 is now available from this download page. Why am I gracing the release of what is merely the second revision of the 2.2 series with a blog post? Well, it’s the first time that SkoolKit’s version number has been of the form X.X.X. And I never got round to gracing the release of 2.2 with a blog post, for which I feel bad. Sorry 2.2. I’m trying to make up for that.

Now, I could just send you over to the changelog for a summary of what’s new since 2.1, but that would make for a short and almost pointless article (in addition to being lazy). So instead I’ll request that you stay here for a bit and read on.

Since 2.1 was released, skool2asm.py and skool2html.py have gained the ability to produce output in lower case, upper case, hexadecimal, or decimal, regardless of the format of the source skool file. sna2skool.py, too, can now produce lower case disassemblies (it could already do upper case, hexadecimal and decimal). And skool2asm.py, skool2ctl.py and skool2html.py can read from standard input, which allows you to chain commands and therefore (for example) disassemble a snapshot to ASM format without producing an intermediate skool file:

sna2skool.py game.z80 | skool2asm.py - > game.asm

Next: SkoolKit can now be installed as a Python package using the supplied setup.py script; unit tests (for people who like that kind of thing) are included in the tests directory; man pages are included in the man directory; and developer reference documentation has been added (providing instructions on how to run the unit tests and build the documentation and man pages from source).

Next: the load code, save code and start code skool files for Skool Daze, Back to Skool and Contact Sam Cruise have been tweaked to make them usable with skool2asm.py. So if you’ve been itching to use Back to Skool’s tape saver routine but couldn’t be bothered to type it out, 2.2.2 is your friend.

And finally: bug fixes. Quite a few, actually. Here I will point you to the changelog for full details.

That’s about it. Please tune in again when 2.3 is released. (Or 3.3.3. We’ll see.)

SkoolKit 2.1: Better than hex?

Better than hex?

SkoolKit 2.1 is now available from this very website. Get your fresh copy from the ever-present download page.

Now, as the title of this article asks in abbreviated form: What could be better than hexadecimal support in SkoolKit? I couldn’t think of an answer to that question, so I made support for hex the top item on the SkoolKit TODO list the past few weeks. What that means is that you are no longer tied to using decimal addresses in your disassembly. The disassembler, sna2skool.py, can now produce a hexadecimal skool file, and both skool2html.py and skool2asm.py will work just fine with it. So if you’re the kind of hex-headed disassembly-monger for whom $8000 is immediately more meaningful than 32768, you should be smiling inside at this point. Go and get SkoolKit 2.1 now!

In other news, SkoolKit is now more un-Skool-game-centric than ever. Specifically, all the skool macros that were useful only in the Skool Disassemblies (such as #MSG, #BOX and #TAP) are gone, their effects now being achieved by the use of generic macros (such as #R and #UDGARRAY). In addition, all the ref file sections that were useful only in the Skool Disassemblies (such as [Lessons]) and [Characters]) are gone too. No longer will you be distracted by a bunch of skool macros and ref file sections that will never be of any use in your ‘Stonkers’ or ‘Infection’ disassembly (or whatever).

As is traditional when SkoolKit’s version number is X.Y (with no .Z on the end), the Skool Disassemblies have been updated. And as is also traditional, you can browse these disassemblies online, or download a copy for offline viewing, or download SkoolKit and build a copy yourself. Also, don’t forget that the incomplete Contact Sam Cruise disassembly is still in progress. With any luck, I’ll be able to call it ‘complete’ some time this year.

Cruise 'n' the web

Fairfax 7162

The incomplete Contact Sam Cruise RAM disassembly, with which I have have teased the audience by (a) mentioning its inclusion in SkoolKit, and (b) mentioning updates to it in the recent SkoolKit changelogs, is now up, online, in a browsable HTML form, at this very website.

However, unlike its cousins - the Skool Disassemblies - the incomplete Contact Sam Cruise RAM disassembly really is, as its name unambiguously indicates, incomplete. In other words, it is a work in progress. It also probably contains many inaccuracies and outright errors that will need fixing over time. Any members of the audience wishing to see a full reverse engineering job of Microsphere’s classic private eye game will have to exercise patience, and lots of it. You have been warned.

In the meantime, bug reports for the disassembly itself, and suggestions for content on the Bugs and Trivia pages (or any other pages) are welcome. If you’d like to build the disassembly yourself from the comfort of your own Python-endowed computer, grab SkoolKit; version 2.0.3 (released today) includes the source skool and ref files for the current online version.