128K ought to be enough for anyone
SkoolKit 9.0 has been released. To get a copy, please head over to the download page, the Python Package Index, or GitHub.
Yes, the 8.x series has come to an end. It had a good four-year run, but now’s
the time for it to step aside and let 9.0 in. As you might expect from an N.0
release, there are some compatibility-breaking changes, which you can read
about in the migration guide. But unless
you were particularly fond of the #DEFINE
macro (deprecated since 8.5),
there’s not much to worry about. Most of the other breaking changes are in
tap2sna.py
and trace.py
, but I hope you’ll agree they’re all changes for
the better.
The main new feature in this release is support for the (original) 128K
Spectrum in tap2sna.py
and trace.py
. That is, tap2sna.py
can load 128K
games from tape, and save 128K snapshots. And trace.py
can then execute code
in those 128K snapshots (or any other 128K snapshots you care to throw at it).
The t2sfiles repository (a collection
of ready-made tap2sna.py
argument files) has already celebrated this new
capability by including over 1400 recipes for 128K games, which now accompany
the more than 11000 recipes for 48K games.
The next most important feature in this release is support for a ‘phantom
typist’ in tap2sna.py
. Now, the right-minded among you will surely agree that
there are few things more annoying in this world than a tape that requires
something other than LOAD ""
(or LOAD ""CODE
) in order to LOAD and RUN
correctly. Unfortunately for us, quite a few such tapes exist out there, but
the phantom typist is here to help: it can enter a custom command line before
starting the tape. For example:
$ tap2sna.py -c 'load=CLEAR 35000: LOAD ""' Tridex.tzx
And perhaps the third most important feature in this release is support for
writing SZX snapshots, which has been added to bin2sna.py
, tap2sna.py
and
trace.py
. Until this release, SkoolKit’s one and only output snapshot format
of choice was Z80, because it’s well supported by other software and adequate
for most purposes. But tap2sna.py
occasionally runs into a deficiency in the
Z80 format: it has no slot for the last OUT to port 0xFE. This value actually
matters for some games that have poorly written keyboard-reading routines.
And there I shall stop, and advise any readers who want more information on the the new stuff in SkoolKit 9.0 to consult the changelog. After that, go and grab a copy of 9.0 and enjoy the 128K’s worth of goodness within.