SkoolKit

Spectrum game disassembly toolkit

LSBs and MSBs

Note: The ASM selector has been removed. To obtain ASM versions of the skool disassemblies, use SkoolKit.

The refactored ASMs have arrived. Actually, they arrived a few days ago, but I’ve only just got round to announcing them here. You can get them from the Skool ASM selector by selecting the third option in the ‘Bug fixes’ drop-down: ‘More (refactored ASM)’.

So what is a refactored ASM? It’s one containing modifications to some of the routines (and a few data blocks) to make them less sensitive to the LSBs and MSBs of their start addresses and more amenable to relocation. Why is that a good thing? Well, it means that the gaps between routines can be removed, and extra instructions can be inserted (to fix bugs that could not otherwise be fixed) - without breaking anything (hopefully). The refactored ASMs would also be a better base from which to start modifying the games or adding new features: the unrefactored ‘pristine’ ASMs are probably a little too rigid and fragile for that.

However, my efforts at refactoring may have introduced new bugs, so playtesting of these ASMs is strongly encouraged. In fact, if it were in my power, I would make it required by law. But it isn’t in my power, so I’ll just have to ask nicely instead. Please playtest these refactored ASMs! To make it easy for you, each download from the Skool ASM selector (there’s that link again) contains a TAP file right next to the ASM, so you have no excuse not to load it in an emulator and get to work. I mean play. Please again?

ORGs and ASMs

Note: The ASM selector has been removed. To obtain ASM versions of the skool disassemblies, use SkoolKit.

The HTML versions of the Skool Disassemblies are all well and good for browsing, but less than useful for the hacker who wants to try something a little more adventurous than the odd POKE here and there. I get that. I really do. So for that hacker (and others like him), let me present the Skool ASM selector.

The Skool ASM selector (there’s the link again for good measure) lets you choose a game (Skool Daze or Back to Skool), a case (UPPER or lower, as in ‘LD A,(HL)’ v. ‘ld a,(hl)’), an indentation (a TAB or two spaces at the start of each instruction-bearing line), and whether to include bug fixes (Yes or No). When these selections have been made, a download link will appear. Click it, and the zip archive that springs forth is guaranteed to contain an ASM file that matches your criteria.

Feed the ASM file into an assembler (such as pasmo), and the result will be something that matches the original game, byte-for-byte - except for the bug fixes - in all the important places. But that’s boring, so get hacking on that ASM and make it your own!

Later I’ll release ASMs that have been ‘refactored’, meaning that routines have been amended so that they can be moved around without breaking stuff; this ‘refactoring’ will allow the hacker (and me) to remove the unused bits between (and inside) routines, and fix bugs that are not amenable to a short sequence of POKEs. Data blocks will, by and large, be left alone, though; too many routines in the Skool games depend on data blocks being in very specific locations. Stay tuned.

Piles of tiles

Tiles. 2618 of them, to be exact. Not ceramic, but graphic. In the 8x8 pixel block Speccy sense. That’s what you’ll find in the latest release of the Skool Disassemblies: every tile - the ones used for the skool background, and the ones used for the game characters - presented with information on how the game engine looks it up and where the graphic data itself is stored.

But if you don’t care much for tiles - especially 2618 of them - don’t worry. Some newly found bugs and trivia items have been added, too.

See the changelog for all the details of what’s new, the home page if you want to start browsing now, or the downloads page to grab a copy of the disassemblies for local/offline browsing. (And given the size of the tiles pages, using a local copy is probably a wise choice.)