Migrating from SkoolKit 5¶
SkoolKit 6 includes some changes that make it incompatible with SkoolKit 5. If you have developed a disassembly using SkoolKit 5 and find that the SkoolKit commands no longer work with your skool files or ref files, or produce broken output, look through the following sections for tips on how to migrate your disassembly to SkoolKit 6.
#BUG, #FACT, #POKE¶
The #BUG, #FACT and #POKE macros are not supported in SkoolKit 6.
However, they can be brought back into service by using suitable @replace
directives to convert them into equivalent #LINK macros. For example:
@replace=/#BUG(#[a-zA-Z\d$#]+(?![a-zA-Z\d$#(])|(?![#(A-Z]))/#LINK:Bugs\1(bug)
@replace=/#BUG(?![A-Z])/#LINK:Bugs
The first directive replaces #BUG macros that have no link text parameter
(as in This is a #BUG#bug1.); it may be omitted if all the #BUG macros
in your disassembly have a link text parameter. The second directive replaces
#BUG macros that do have a link text parameter.
The corresponding @replace directives for the #FACT macro are:
@replace=/#FACT(#[a-zA-Z\d$#]+(?![a-zA-Z\d$#(])|(?![#(A-Z]))/#LINK:Facts\1(fact)
@replace=/#FACT(?![A-Z])/#LINK:Facts
And for the #POKE macro:
@replace=/#POKE(#[a-zA-Z\d$#]+(?![a-zA-Z\d$#(])|(?![#(A-Z]))/#LINK:Pokes\1(poke)
@replace=/#POKE(?![A-Z])/#LINK:Pokes
#EREFS, #REFS¶
The #EREFS and #REFS macros are not supported in SkoolKit 6.
A near equivalent to the #EREFS macro can be defined by using the
@replace directive thus:
@replace=/#erefs\i/#IF(#neref\1);;the routine#IF(#neref\1>1)(s) at #FOREACH(EREF\1)||n|#Rn|, | and ||;no other routines;;
@replace=/#neref\i/0#FOREACH(EREF\1)(n,+1)
and used like this:
; This entry point is used by #erefs32769.
A near equivalent to the #REFS macro can be defined by using the
@replace directive thus:
@replace=/#refs\i/#IF(#nref\1);;the routine#IF(#nref\1>1)(s) at #FOREACH(REF\1)||n|#Rn|, | and ||;no other routines;;
@replace=/#nref\i/0#FOREACH(REF\1)(n,+1)
and used like this:
; Used by #refs32768.
[PageContent:*]¶
[PageContent:*] sections are not supported in SkoolKit 6; instead, the
PageContent parameter in the [Page:*] section should be used.
If you have a [PageContent:*] section consisting of a single line, then
bring that line into the PageContent parameter of a corresponding
[Page:*] section. For example:
[PageContent:MyPage]
#CALL:myPageContents()
can be replaced by:
[Page:MyPage]
PageContent=#CALL:myPageContents()
If you have a [PageContent:*] section consisting of more than one line,
then add a [Page:*] section (or update an existing one) with a
PageContent parameter that uses the #INCLUDE macro. For example:
[PageContent:MyOtherPage]
Line 1.
Line 2.
can be activated by adding a corresponding [Page:*] section:
[Page:MyOtherPage]
PageContent=#INCLUDE(PageContent:MyOtherPage)
Created¶
In SkoolKit 5, wherever $VERSION appeared in the Created parameter in
the [Game] section, it was replaced by the version number of SkoolKit.
In SkoolKit 6, this replacement is no longer made; use the #VERSION macro
instead.
DefaultAnimationFormat¶
In SkoolKit 5, the DefaultAnimationFormat parameter in the
[ImageWriter] section defaulted to the value of the DefaultFormat
parameter (png by default). In SkoolKit 6, DefaultAnimationFormat
defaults to gif.
UDGFilename¶
In SkoolKit 5, the UDGFilename parameter lived in the [Game]
section. In SkoolKit 6, it has moved to the [Paths] section.
changelog_* templates¶
The changelog_entry and changelog_item_list templates have been renamed
list_entry and list_items. (They are general purpose
templates used not just by the ‘Changelog’ page, but by any
box page whose SectionType is BulletPoints or
ListItems.) Accordingly, the t_changelog_item_list and
m_changelog_item identifiers in those templates have been renamed
t_list_items and m_list_item.
CSS selectors¶
The class attributes of some HTML elements have changed in SkoolKit 6.
The following table lists the selectors that appeared in the CSS files in SkoolKit 5, and their replacements in SkoolKit 6.
| SkoolKit 5 | SkoolKit 6 |
|---|---|
| div.changelog | div.list-entry |
| div.changelog-1 | div.list-entry-1 |
| div.changelog-2 | div.list-entry-2 |
| div.changelog-desc | div.list-entry-desc |
| div.changelog-title | div.list-entry-title |
| ul.changelog | ul.list-entry |
In addition, the ‘ul.changelogN’ selector (N=1, 2, 3 etc.), which is used in the stock list_items template but is unstyled (i.e. does not appear in any of the CSS files), has been replaced by ‘ul.list-entryN’ in SkoolKit 6.
PageHeaders:Asm-t¶
In SkoolKit 5, the default header for Asm-t pages
(disassembly pages for ‘t’ blocks) was ‘Data’. In SkoolKit 6, it is ‘Messages’.
Titles:Asm-t¶
In SkoolKit 5, the default title for Asm-t pages
(disassembly pages for ‘t’ blocks) was ‘Data at’. In SkoolKit 6, it is ‘Text
at’.
bin2tap.py -t¶
In SkoolKit 5, bin2tap.py had a -t/--tapfile option for specifying
the output TAP filename. In SkoolKit 6, this option is not supported; instead
the TAP filename should be specified, if necessary, after the input filename.
For example:
$ bin2tap.py in.bin out.tap
skool2ctl.py -a¶
In SkoolKit 5, skool2ctl.py had a -a/--no-asm-dirs option for
omitting ASM directives from the output. In SkoolKit 6, this option is not
supported; instead, the -w/--write option now recognises the ‘a’ identifier
for specifying whether to include ASM directives in the output.
skool2html.py -w¶
In SkoolKit 5, the -w/--write option of skool2html.py recognised the
‘B’ (Graphic glitches), ‘b’ (Bugs), ‘c’ (Changelog), ‘p’ (Pokes), ‘t’ (Trivia)
and ‘y’ (Glossary) file identifiers. In SkoolKit 6, these file identifiers are
not supported; instead, the ‘P’ file identifier should be used along with the
-P/--pages option.
For example, to write only the ‘Bugs’ and ‘Changelog’ pages:
$ skool2html.py --write P --pages Bugs,Changelog game.ref
Udg¶
In SkoolKit 5.4, the Udg class moved from
skoolkit.skoolhtml to skoolkit.graphics, but was still available in
skoolkit.skoolhtml. In SkoolKit 6, it is no longer available in
skoolkit.skoolhtml.
flip_udgs()¶
The flip_udgs() method on HtmlWriter has been removed in SkoolKit 6. Use
the flip_udgs() function in skoolkit.graphics instead.
rotate_udgs()¶
The rotate_udgs() method on HtmlWriter has been removed in SkoolKit 6.
Use the rotate_udgs() function in skoolkit.graphics
instead.
parse_image_params()¶
The parse_image_params() method on HtmlWriter has been removed in
SkoolKit 6. Use the parse_image_macro() function
instead.
parse_params()¶
The parse_params() function in skoolkit.skoolmacro has been removed in
SkoolKit 6. Use the parse_ints() and
parse_brackets() functions instead.
skoolkit5to6.py¶
The skoolkit5to6.py script may be used to convert a ref file or CSS file that is compatible with SkoolKit 5 into a file that will work with SkoolKit 6. For example, to convert game.ref:
$ skoolkit5to6.py game.ref > game6.ref