4am’s Crack of Spare Change

Spare Change is an odd little Apple II game from 1983, where the player tries to thwart mischievous creatures who escaped from an arcade game, who are trying to steal quarters from the machines. One of Broderbund’s earlier hits, although it never gained the recognition of Lode Runner.

Such a charming little game
Do you not only understand this, but enjoy reading it? Then this should be very interesting to you.

Spare Change, in addition to its various little features like animated intermissions and customizable difficulty, also had a pretty strong copy protection scheme. These schemes served to prevent casual copying at the time (although cracks of all the popular titles inevitably started making the rounds on BBSes), but also serve to work against software preservation. Spare Change is 40 years old now, and disks fail frequently. There is an available crack, but it’s said to be missing an important feature: it fails to save their high scores to disk.

4am is the famed preserver of classic Apple II software, performed by dint of figuring out their protection and removing it as unobtrusively as possible. His account on Twitter (I refuse to call it X, I don’t even like saying Xbox) made for great reading for people of a technical mind. He isn’t on Twitter any more for, I dunno, some reason, but he still posts his cracks, and his explanations for how they work, to the Internet Archive, under the 4am tag.

All this is to say his crack of Spare Change makes for entertaining reading to one of the right mindset. One of you may have it, so here it is.

Space Change: a 4am and san inc crack: description and the crack itself.

Reviving ZZT

ZZT was (is) an ancient shareware DOS game that runs in character mode, created and published by Tim Sweeney. Originally published by Potomac Computer Systems, a company ran out of the basement of Sweeney’s house, when it expanded its software selection it was renamed to Epic MegaGames, and later Epic Games, under which title it remains today, still headed by Tim Sweeney after all these years. He would go on to create the Unreal Engine, upon which the modern fortunes of the company were founded.

Images from the Worlds of ZZT bot

But back to ZZT, which is still a nifty piece of software, and a lot of fun to mess around with. It included an editor that allowed users to create their own scenarios, which spawned a modding community that survives to this day. Noted game designer and educator anna anthropy wrote a book about ZZT for Boss Fight and she continues to carry its banner today. ZZT scenarios both old and new can be found on the site Museum of ZZT, and every three hours Mastodon bot Worlds of ZZT publishes screenshots from random ZZT adventures.

Because it’s a character-mode game, ZZT modules are often confused with classic roguelike computer games. ZZT is not necessarily a roguelike, but it may be possible for someone to write a classic-style roguelike game in ZZT.

But running a DOS game nowadays is not as easy as it used to be. It requires the use of either a vintage computer system running a compatible DOS, a virtual machine like VirtualBox or Docker, or some DOS emulator, such as DOSbox, a tool for emulating a working DOS system that can run on current OSes, or Zeta, a DOS emulator with just enough features to get ZZT working.

ZZT was written in Turbo Pascal, but its source code had been misplaced by Tim Sweeney and was considered lost, until very recently (the past few days), when a nearly-complete version of ZZT 3.0 was found. Most of it can be downloaded from The Almost of ZZT, on Github, which is that version minus some parts of the source that are considered to be under third-party copyright.

Since it is incomplete it is not useful for compiling a working game, and is presented for historical reasons more than anything. Fortunately, there already exists The Reconstruction of ZZT, a reverse-engineered (with Sweeney’s blessing) version from 2020 that compiles to identical binaries.

ZZT is a subject that deserves much more detail than I can give it in an introductory post like this. Maybe later….