Migrating from SkoolKit 7

SkoolKit 8 includes some changes that make it incompatible with SkoolKit 7. If you have developed a disassembly using SkoolKit 7 and find that the SkoolKit commands no longer work with your source files, or produce broken output, look through the following sections for tips on how to migrate your disassembly to SkoolKit 8.

GIF images

Creating GIF images is not supported in SkoolKit 8. The #FONT, #SCR, #UDG and #UDGARRAY macros now always create PNG images. Accordingly, the following parameters from the [ImageWriter] section that were available in SkoolKit 7 are no longer supported:

  • DefaultAnimationFormat

  • DefaultFormat

  • GIFEnableAnimation

  • GIFTransparency

Skool file templates

Skool file templates are not supported in SkoolKit 8. The skool2sft.py command has been removed, along with the --sft option of sna2skool.py.

Where you might have used skool file templates with SkoolKit 7, you should now use control files instead. However, note that control files cannot preserve ASM block directives that occur inside a regular entry, and so any such directives should be replaced before using skool2ctl.py. See Limitations for more details.

[Game]

The TitlePrefix and TitleSuffix parameters are no longer supported. Use the GameIndex parameter in the [PageHeaders] section instead.

The AsmSinglePageTemplate parameter is no longer supported. Use the AsmSinglePage parameter instead.

[Titles]

In SkoolKit 7, the entry address in a disassembly page title was included in the Asm template. In SkoolKit 8, the Asm template no longer exists, and the entry address appears as a replacement field ({entry[address]}) in the Asm-b, Asm-c, Asm-g, Asm-s, Asm-t, Asm-u and Asm-w parameters in the [Titles] section.

Control directives

The B and T control directives no longer recognise the B (byte) and T (text) indicators. Use the n and c base indicators instead. For example:

B 30000,5,2:T3
T 30005,5,B3:2

should be replaced by:

B 30000,5,2:c3
T 30005,5,n3:2

sna2skool.py

The DefbMod configuration parameter is no longer supported. It could be used to group DEFB blocks by addresses that are divisible by a certain number, but the same effect can be achieved with appropriate control directives.

The DefbZfill configuration parameter is also no longer supported.

HTML templates

The HTML templates have been overhauled in SkoolKit 8. As a result, the following templates that were available in SkoolKit 7 no longer exist:

  • Asm

  • AsmAllInOne

  • GameIndex

  • MemoryMap

  • Page

  • Reference

  • anchor

  • asm_comment

  • asm_entry

  • asm_instruction

  • asm_register

  • contents_list_item

  • index_section

  • index_section_item

  • javascript

  • list_entry

  • list_item

  • list_items

  • map_entry

  • paragraph

  • reference_entry

  • stylesheet

  • table_cell

  • table_header_cell

  • table_row

In addition, the following templates have been rewritten to use the foreach and if directives, which are new in SkoolKit 8:

Finally, the signature of the format_template() method on HtmlWriter has changed in SkoolKit 8.0: the default parameter has been removed.

CSS selectors

The class attributes of some HTML elements have changed in SkoolKit 8.

The following table lists the selectors that appeared in the CSS files in SkoolKit 7, and their replacements (if any) in SkoolKit 8.

SkoolKit 7

SkoolKit 8

div.map-entry-desc-0

div.map-entry-desc-1

div.map-entry-desc

span.next-0

span.prev-0

table.input-0

table.input-1

table.input

table.output-0

table.output-1

table.output

td.asm-label-0

td.asm-label-1

td.asm-label

td.bytes-0

td.bytes-1

td.bytes

td.comment-01

td.comment-10

td.comment-0

td.comment-11

td.comment-1

td.map-byte-0

td.map-byte-1

td.map-byte

td.map-length-0

td.map-length-1

td.map-length

td.map-page-0

td.map-page-1

td.map-page

th.map-byte-0

th.map-length-0

th.map-page-0

The following table lists selectors for the classes that were unstyled (i.e. did not appear in any CSS files) in SkoolKit 7, and their replacements (if any) in SkoolKit 8.

SkoolKit 7

SkoolKit 8

span.next-1

span.prev-1

th.map-byte-1

th.map-byte

th.map-length-1

th.map-length

th.map-page-1

th.map-page

skoolkit7to8.py

The skoolkit7to8.py script may be used to convert a control file or ref file that is compatible with SkoolKit 7 into a file that will work with SkoolKit 8. For example, to convert game.ref:

$ skoolkit7to8.py game.ref > game8.ref