Deprecation's what you need
SkoolKit 5.4 has been released. And if you’d like a copy, you can get one (as usual) from the download page, the Python Package Index, the Ubuntu PPA, or the Fedora copr repo.
This is a somewhat sad moment for the 5.x series, since 5.4 will be the last instalment. However, let’s see if we can bring some cheer to the occasion by taking a tour of some of the new features in this release before 6.0 comes along and stomps on the faces of all the deprecated ones (about which more later).
First up is sna2img.py
- the sixth new command this series. As its name
suggests, it extracts data from the display file and attribute file of a
snapshot (or a SCR file) and converts it into an image of the PNG or GIF
variety. Which could be useful if you want some screenshots for your
disassembly, but the required graphic data won’t fit in your skool file, so the
#SCR
macro is not an option. sna2img.py
also comes with the ability to
crop, flip and rotate the screenshot, not to mention set the scale as large as
you like. Once you’ve got your desired screenshot (or portion of it), you can
incorporate it into your disassembly by declaring it in the
[Resources]
section of your ref
file.
Also new is the @equ
directive. No prizes for guessing that this directive
produces EQU directives in the ASM output, allowing you to define labels for
arbitrary values or addresses that don’t appear in the skool file. (Spoiler:
the next version of the Spectrum ROM disassembly will
use @equ
directives to define labels for the system variables.) Now I look at
it, I’m really not sure how SkoolKit has survived for so long without this
particular ASM directive.
I could go on about the other new things in 5.4, but I need to leave space to discuss the features that are being culled before 6.0 arrives. So if you’re curious, pop along to the 5.4 changelog for all the details.
Now for the sad part. I won’t beat about the bush - on the chopping block are
the following features: the #BUG
, #FACT
, #POKE
, #EREFS
and #REFS
macros (which have been with us since SkoolKit 1.0); the [PageContent:*]
ref
file section; the parse_params()
function, and the parse_image_params()
,
flip_udgs()
and rotate_udgs()
methods on HtmlWriter. And to top all that
off, support for Python 2.7 and 3.3 will be dropped: SkoolKit 6.0 will only
work with Python 3.4+.
Before you start tearing your hair out and cursing the day you decided to use
SkoolKit to reverse engineer a game, let me say that even though they are
deprecated, you can keep all your #BUG
, #FACT
, #POKE
, #EREFS
and
#REFS
macros and [PageContent:*]
sections in place, because they can easily
be reactivated in SkoolKit 6.0 by judicious use of the @replace
directive (in
the case of the skool macros) and the #INCLUDE
macro (in the case of the
[PageContent:*]
section). And although the aforementioned API functions and
methods will be gone, there will be near or exact equivalents available.
So that’s it for the current release and the road ahead. While you wait for
SkoolKit 6.0, why not take 5.4 for a spin and create some screenshots of your
favourite games with sna2img.py
?