SkoolKit

Spectrum game disassembly toolkit

Be in the loop

2 bytes, 1 word

SkoolKit 4.2 has been released. Copies are available, as predictably as ever, from the download page, the Python Package Index, or the Ubuntu PPA.

Of all the new features that find themselves in 4.2, I think I’d have to rank control directive loops as the mainest. Have you ever been working your way through the bits and bytes of a data block, and suddenly realised that they are arranged in a repeating pattern, such as 20 groups each containing two bytes followed by a word? If so, that moment of inspiration was probably quickly followed by a feeling of frustration at having to type out 20 groups of control directives that differ only in their addresses. Well, in 4.2, the ‘L’ (loop) directive comes to the rescue. It can repeat the control directives in an address range any number of times you wish - automatically adjusting the addresses for each repetition, of course. So rather than typing out 20 groups of control directives, you can type a single ‘L’ directive instead.

In the shadow of the ‘L’ directive lurk the table, table_cell, table_header_cell and table_row HTML templates, and also the list and list_item HTML templates. Since HTML templates were introduced in version 4.0, SkoolKit’s dirty little secret was that there were still snippets of hard coded HTML buried in the codebase, specifically in the areas of table-building and list-building. Not any longer, though. Now the format of tables and lists is also under your direct control. Add the relevant [Template:table*] or [Template:list*] sections to your ref file, and you are sorted.

Getting back to control files, the second mainest new feature there is that the location of @ignoreua directives can now be preserved. Before 4.2, SkoolKit assumed that a @ignoreua directive preserved in a control file applied to the following instruction-level comment. But now, by the use of a suitable suffix on the @ignoreua directive’s address, it’s possible to specify that it applies to an entry title, an entry description, a register description section, a mid-block comment, or a block end comment instead.

And that’s about it for the mainest of the main new features. For details of the other changes since 4.1.1, there is always the changelog. Grab SkoolKit 4.2 today, and stay in the loop.

Miner updates

Room 47

Just a quick note to inform the Willy watchers among you that the Manic Miner disassembly and the Jet Set Willy disassembly have been updated, and those updates are available now, from this very website.

The updates are mostly new trivia entries, such as the one about room 47 in Jet Set Willy. Really, this trivia entry should have been in the original release: calling the disassembly ‘complete’ without mentioning the unusedness, emptiness and inaccessibility of room 47 somewhere on the Trivia page was audacious, if not downright dishonest. Anyway, the omission has now been rectified, so all is good.

In addition, both manic_miner.skool and jet_set_willy.skool can be converted to ASM files (by skool2asm.py) without producing any warnings, and jet_set_willy.skool also contains @bfix directives for those bugs that have known, simple fixes.

And that’s about it. See the changelog page for each disassembly for details on the new trivia entries, and the download page to grab copies for offline viewing.

Manic Mnemonics

Manic Miner

Hot on the heels of the Jet Set Willy disassembly, here is The complete Manic Miner RAM disassembly (Bug-Byte version). Just like the Jet Set Willy disassembly, it began life as a bare-bones example control file bundled with SkoolKit (though much longer ago, back in February 2010). And just like the Jet Set Willy disassembly again, I recently decided to extract it, flesh it out, and release it separately. As you can see.

It should also come as no surprise that the disassembly - which, I might mention in passing, leaves no byte unannotated - comes with bugs and trivia pages. Although the bugs page barely escapes the ignominy of being called the ‘bug’ page, since there are only two bugs documented on it. But never mind - there’s a decent amount of trivia to make up for it, and there are a few POKEs too.

Getting back to the ‘just like the Jet Set Willy disassembly’ theme again, I would guess that most of the content of this disassembly is already familiar to the Manic Miner fans among you, but do take a look anyway, and let me know if you spot any mistakes (or any more bugs to document).

And finally: if you want a copy of the disassembly for offline viewing, you can get one here.