Skip to main content

A suite of tools for creating disassemblies of ZX Spectrum games

Project description

SkoolKit is a collection of utilities that can be used to disassemble a Spectrum game (or indeed any piece of Spectrum software written in machine code) into a format known as a skool file. Then, from this skool file, you can use SkoolKit to create a browsable disassembly in HTML format, or a re-assemblable disassembly in ASM format. So the skool file is - from start to finish as you develop it by organising and annotating the code - the common ‘source’ for both the reader-friendly HTML version of the disassembly, and the developer- and assembler-friendly ASM version of the disassembly.

Features

SkoolKit can:

  • convert a TAP or TZX file into a ‘pristine’ snapshot (using tap2sna.py)

  • disassemble SNA, Z80 and SZX snapshots as well as raw memory files

  • distinguish code from data by using a code execution map produced by an emulator

  • build still and animated PNG images from graphic data in the game snapshot (using the #UDG, #UDGARRAY, #FONT and #SCR macros)

  • create hyperlinks between routines and data blocks that refer to each other (by use of the #R macro in annotations, and automatically in the operands of CALL and JP instructions)

  • neatly render lists of bugs, trivia and POKEs on separate pages (using [Bug], [Fact] and [Poke] sections in a ref file)

  • produce ASM files that include bugfixes declared in the skool file (with @ofix, @bfix and other ASM directives)

  • produce TAP files from assembled code (using bin2tap.py)

For a demonstration of SkoolKit’s capabilities, take a look at the complete disassemblies of Skool Daze, Back to Skool, Contact Sam Cruise, Manic Miner, Jet Set Willy and Hungry Horace.

Quick start guide

SkoolKit includes fairly detailed documentation, but if you want to get up and running quickly, here goes.

To convert a SNA, Z80 or SZX snapshot of a Spectrum game into a skool file (so that it can be converted into an HTML or ASM disassembly):

$ sna2skool.py game.z80 > game.skool

To split the disassembly up into code and data blocks, you’ll need a control file.

To turn this skool file into an HTML disassembly:

$ skool2html.py game.skool

To turn it into an ASM file that can be fed to an assembler:

$ skool2asm.py game.skool > game.asm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skoolkit-8.0.tar.gz (776.1 kB view details)

Uploaded Source

File details

Details for the file skoolkit-8.0.tar.gz.

File metadata

  • Download URL: skoolkit-8.0.tar.gz
  • Upload date:
  • Size: 776.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for skoolkit-8.0.tar.gz
Algorithm Hash digest
SHA256 1005412f998b6ed5f984eef81c7f5382aec33e7e3567a2a498ef3d3b8c5e8d18
MD5 1dcac7c0b5014c9d7e6e741316a35b96
BLAKE2b-256 87fb397f1b6c1a6bb6a8b4f2f6e05ce2f52a626e288104a616115f85a86eb00e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page