Frozen dinner

By | January 26, 2014

Quit Pyskool?Pyskool 1.1.1 has been released. This brand spanking new version for 2014 brings a few small enhancements and a bugfix to 1.1 (which, at the time, was a brand spanking new release for 2013). Impatient readers can head over to the download page now to grab a copy; the rest of you can stick around for some details on the changes since the previous release.

First of all, Pyskool now has a quit confirmation screen, shown by default when you press Escape (though not when you click the window close button). In keeping with Pyskool’s philosophy of ease of use, the screen displays, beneath the title ‘Quit Pyskool?’, two options whose meaning I hope is clear: ‘Yes’ and ‘No’. The player is then left to decide, at his leisure, whether to actually quit (‘Yes’), or to continue playing (‘No’). If, however, you’re one of those confident, accident-free players who never hit Escape without meaning it, and would be irritated by such trivial questioning, you can disable the confirmation screen by setting ConfirmQuit to 0 in the [GameConfig] section. On the other hand, if you’re one of those indecisive, accident-prone players who sometimes even click the window close button and immediately regret it, you can enable the confirmation screen in this situation by setting ConfirmClose to 1 in the [GameConfig] section.

Second of all, there is now an item on the main menu to switch between full-screen and windowed mode. True, this feature has been available since version 1.0 by pressing F11, but that fact was never mentioned anywhere in the documentation (except in the changelog). Now that it has its own menu item, perhaps more people will notice it, use it, and enjoy it.

Third of all, there is now support for appending content to existing ini file sections. This is done by adding a ‘+’ suffix to the section name. For example, if you add a section named [SkoolLocations+] to an ini file that is read after config.ini, then its contents will be appended to the contents of the [SkoolLocations] section in config.ini, rather than entirely replacing them. Which could be useful.

Finally, there was a bug in 1.1 and earlier versions that froze the game if Eric’s lines total went over 10000 (or Eric jumped out of the top-floor window) while he was being fetched by the teacher on dinner duty. This bug has been fixed, so you can now play Pyskool with confidence that Mr Wacker will hunt Eric down and expel him as appropriate even if it’s dinner time.

Making WAVEs

By | December 1, 2013

Biff! Pow! Smack!Pyskool 1.1 has been released. As always, the download page is waiting to serve up tarballs, zip archives, DEB packages and RPM packages.

It’s been about a year since the last release, so I thought it was time to venture into the vaults, track down and dust off Pyskool 1.0.1, and check that everything was still in good working order. Turns out everything is, but I updated a few things anyway while I was there.

Chief among the updates is a completely new set of sound files. The old sound files – most of which first appeared over five years ago in Pyskool 0.0.3 – were actual recordings of the audio output of a Spectrum emulator, made at the lofty frequency of 11.025kHz. Not surprisingly, then, they sound a little rough when you listen carefully (especially safe-key.ogg). The new sound files, however, are 44.1kHz streams programmatically generated from a precise analysis of the delays between speaker flips in the sound routines of the original games (taking into account contended memory and interrupts). Whether they sound more or less authentic than the emulator recordings, I’m not sure, but they are undoubtedly of much higher quality.

With a Spectrum-speaker-to-WAV library in place, then, I also took the liberty of adding hitting sound effects to Skool Daze. (Be honest: did you realise they’d been missing all this time?) In addition, Skool Daze and Back to Skool now have their own distinct sound effects for the bell, lines-giving, and Eric walking (instead of sharing them, as they had done up till 1.0.1).

So that covers the main changes to Pyskool itself, but in other news, the latest Pyskool code is now hosted on GitHub, and stable releases of Pyskool are just a pip install away via the Python Package Index. The avid Pyskooler can find even more details on the changes since 1.0.1 in the changelog.

Download Pyskool 1.1 today and hear the difference!

About time

By | December 3, 2012

I endorse this productPyskool 1.0 is out! See the download page for the relevant tarballs, zip archives, DEB packages and RPM packages for your OS of choice.

Why the major version number bump from 0.6 to 1.0? Well, it’s been over four years since 0.1 was released with Skool Daze mode complete, and over two-and-a-half years since 0.2.2 was released with Back to Skool mode complete, and in any case, it’s about time, isn’t it? In addition, saved games from 0.6 are also not compatible with 1.0, and there’s nothing quite like a version number bump – especially a major one – to drive that point home.

As for the changes since 0.6, the most noticeable from the player’s perspective is that F11 will toggle full-screen mode. Which, given the preponderance of widescreen monitors these days, means that under certain combinations of scale and monitor resolution, going full-screen will add a border to the traditionally sized 4:3 play area, giving the game a more Spectrumlike feel. The less noticeable changes include various bug fixes, and a fix for the audio latency that can occur when using Pygame version 1.8 or later (in which the default audio buffer size is 4096, compared to 1024 in earlier versions).

Even less noticeable than these changes is the addition of the --get-images and --create-ini options to each of the game launcher scripts (,, etc.). The --get-images option will download the TZX files for Skool Daze and Back to Skool (or use existing TZX tape files or SNA, Z80 or SZX snapshots, if present), and dump the required images from them into ~/.pyskool; this means that Pyskool can be distributed without the stock images if need be. The --create-ini option dumps a fresh set of game ini files into ~/.pyskool; the utility of this option is left to the reader to discover.

That’s about it, but as always, more detail may be found in the changelog. Don’t delay: download Pyskool 1.0 today!