Bases and spaces
SkoolKit 3.7 has been released. As usual, copies of this release are available, in various formats, from the download page. If, however, the idea of downloading SkoolKit from this site repels or offends you, you can install it via PyPI or the PPA instead. The choice is yours.
The last release to get an announcement on this here website was version 3.5
over six months ago, so I should probably go over a few of the changes that
have taken place since then. For the image-creating fans among you, the big
news is that the #UDGARRAY
macro is now capable of building animated images
from an arbitrary sequence of frames (each of which is built using a special
form of the macro). SkoolKit has had support for building animated images that
contain flashing cells since 3.0.1, but the new, enhanced #UDGARRAY
macro
enables you to be a bit cleverer and produce animated sprite images such as the
ones of Miner Willy in the
incomplete Manic Miner disassembly.
On the subject of disassemblies, a new one has joined the examples distributed with SkoolKit: the incomplete Spectrum ROM disassembly. It was made possible in part by the (new) support for disassemblies with a start address below 10000, and sits proudly alongside the incomplete Jet Set Willy disassembly and the aforementioned Manic Miner disassembly. In addition, built versions of these example disassemblies are now published online (as you may have gathered).
In the number bases department, SkoolKit now supports binary numbers in DEFB,
DEFM, DEFS and DEFW statements. That is, they can be parsed in skool files for
the purpose of building a snapshot (as demonstrated by the character set in the
incomplete Spectrum ROM disassembly), and can be preserved in and restored from
control files and skool file templates. The base of decimal and hexadecimal
values can be preserved too by using the new --preserve-base
option of
skool2ctl.py
and skool2sft.py
.
Finally, on the control directive front, the ‘z’ and ‘Z’ (zero) directives have been deprecated in favour of the new ‘s’ and ‘S’ (space) directives, which can encode DEFS statements with non-zero byte values (e.g. ‘DEFS 8,255’) - something that was not possible with the old ‘Z’ directive. Now that the ‘s’ and ‘S’ directives are here, I really do wonder how we ever did without them.
As ever, more details on the changes since 3.5 can be found in the changelog. Here’s hoping they keep you going until 3.8 arrives!
Update: The Jet Set Willy disassembly is now here, the Manic Miner disassembly is now here, and the Spectrum ROM disassembly is now here.