Closer Look: ZZT Unlockers

Digging through dusty archives to find the best tools to remove locks on ZZT worlds

Authored By: Dr. Dos
Published: Apr 28, 2024
RSS icon

It's time to get facetious and take a tour of the far too many unlocking utilities out there for ZZT.

Not one of these programs is of any use today. Most of them do what they claim, some combination of adding or removing locks, adjusting the player's stats, and setting and clearing flags. It's not that these modifications no longer need to be made, it's just that being MS-DOS and early Windows programs, the effort in running them outweighs any convenience they once provided.

These programs are generally known as unlockers, and despite all of them essentially doing the same thing (allowing uneditable ZZT files to be edited), a number of ZZTers over the years took a stab at writing one.

Surely one of them must be the best though?

I decided to look at ten vintage ZZT utilities to see if there was a correct choice here. What I found was a mess of tools with varying functionality, broken promises, and a few unexpected surprises as well. Let's dive in then.

ZZT Info Editor

Chronos's Info Editor is a good baseline to compare these programs against. It's straightforward enough, yet still kind of weird in how users are meant to interact with it.

The program wants to minimize the time users spend working with it. The program waits for single keypresses rather than entering a command and hitting enter to confirm actions. It's a little thing, but people using these kind of programs were likely seconds ago either trying to edit a file or realizing their save file's current state won't be enough to get through a game.

The presentation of all this information is the weakest part of the tool. It's a sea of gray with no attempt made to align information to make it easier to scan.

Everything is designed to fit on a single screen without needing to scroll. The data is printed and the user is prompted. This is probably why a few earlier lines contain multiple counters and values, just to save space. The flag list is a huge offender though, dedicating one line per flag when few games will actually contain values in most of these fields.

And despite the program being seemingly devoid of any color, adding a key will display it in color with a character. A little reformatting of the program to take advantage of color for readability could have gone a long way. I'd love to have seen the labels be one color and the values another, ideally with everything spaces so the numbers could have reserved 5-digit space to be printed to. Currently, it appears like the initial interface you would code just to make sure you're correctly reading all the data from the file, and not like something meant for an end-user.

Gee Dos, how come your save file lets you have two scepters?

The program isn't without its mistakes in implementation either. Any flags that are set will store a value that matches what the user typed. ZZT however automatically converts flag names to all-caps. So #set Scepter creates a flag named SCEPTER. Here however, the flag is written as-is. This causes comparisons in ZZT to fail, effectively creating a flag that can never be detected in code. This must have been incredibly confusing for anybody that tried setting a flag, though how often somebody would break out a save editor to do that rather than just set the flag via the cheat prompt means it probably didn't come up all that often.

It's not the best look for Chronos though, whose testing must not have included confirming flags were being stored properly.

Another annoyance is that the default command is to exit the program. Any keypress not in the list will translate to quitting the program immediately. This was quite the nuisance in DOSBox where I kept hitting F5 to take screenshots, quitting every time. At least this doesn't apply when entering multiple characters such as typing in a number to set a counter or when entering a flag name.

Saving also behaves in a strange way. Saving does write your changes to the file, but then it too quits the program. Realistically, this is probably what users would want, yet the availability of "(R)estart program" allows users to close the current file and return to the file selection prompt. Automatically quitting after saving means that users are able to read multiple files, but can only modify one.

If you know a bit about the file format of ZZT worlds and saves, you might notice one of these lines is quite odd. Namely "There is no time limit". Time limits are tied to boards, not to the world itself!

There's nothing weird going on here ion terms of writing data. It's all just a mistake in the text. What is stored in the world header is the time that has elapsed on the current board. This is pretty much always going to be zero. Still, I was curious and made a save. I created a board with a 30 second time limit, and saved with 25 seconds remaining. Loading that save in the program correctly showed the stored values of five seconds of time having elapsed.

The program is also very naive, as it only processes the world data found at the beginning of ZZT files, ignoring all the board data that follows. Users can change the board the file starts players on ...as long as they know the number of the board they want to change it do. Since the boards aren't parsed, the program can't provide a list of board titles to choose. Instead the only option at the time would have been to open ZZT's editor and start counting, making sure to count starting from zero for the title screen. That's kind of a miserable process, even more-so if the file in question is locked. You'd have to run Info Editor once to unlock the file, then edit it and find the value of the board you wanted to start on before launching the program again.

SaveLock

Introducing SaveLock! A revolutionary program from 1995 to save lock your ZZT world by Dan Draco.

What can it do?

It can save lock ZZT worlds.

What else can it do?

It can remove a save lock from ZZT worlds.

Are you trying to do one of these two things?

SaveLock is perfect.

Are you trying to do anything else?

SaveLock will leave you wanting more.

Yeah. It works.

There's really nothing at all to say here. This program does exactly what it says on the tin, which makes it kind of pointless compared to many of the alternative tools out there. Given that it was common for worlds with locks to have multiple locks on them, there's a reasonable chance that when you unlock something with this program, there's still another lock preventing it from being freely opened in the editor.

In a desperate attempt to have something to report on with this program, the best I can come up with is that it doesn't open the file after you input the name, only after saying whether to lock or unlock, so if you make a typo in the filename and don't notice right away, you get to input a prompt that already doesn't matter.

UnlockPRO 1.35

Now no one can stop me from cheating my way through Sivion!

Kev Vance, years before creating the still popular KevEdit external ZZT editor was always a programmer it seems. This is the first of several programs of his to be featured in this article.

And right away this one shows itself be of a higher quality than the rest. It starts out like any other unlocker, prompting for a filename to open, albeit with a splash of color to make things look a little nicer.

This program however actually scans the ZZT world for locks, presenting a concise summary of what it found before asking about removing the locks.

There is a downside to this in that it does mean it takes longer to do its job since it has to actually scan every board in the file. It's hardly much of a wait, even at DOSBox's default speed settings, but isn't quite as instant as flipping a byte at a known address to unset the SECRET flag used to lock worlds or the byte that marks a ZZT world as being a saved game.

Where UnlockPRO stands out is that it's the first of these programs to actually take a stab at dealing with Super Locks. Its handling leaves a bit to be desired, but it's step in the right direction at least.

The Super Lock isn't actually undone. What does happen is that the final corrupt board is deleted entirely from the file. You're still stuck with a world filled with !c;LOCKED FILE board titles that are impossible to differentiate, but at least ZZT won't crash when you press enter on one.

The Super Locking process corrupts boards by setting the board's size value to four, leaving the actual board data completely intact. ZZT and any other programs that trust the board size data tend to crash attempting to unpack the board when they use this value. It is possible to recalculate the correct board size and restore this board, removing the lock completely. Kev's approach here cuts away the data, assuming it to be unrecoverable.

Given how many worlds didn't heed Super Lock's instructions of adding an extra sacrificial board for the purposes of being corrupted, it's not unthinkable that a world ran through this program with no other known copies could be missing content that players were intended to see.

The Ultimate Game is one example of an upload only existing in UnlockPRO form, though it must have been ran through a different version as the corrupt board remains intact and corrupt, and then a clean copy of the board has been added to the end of the board list. Whether that's Kev's doing or someone else is hard to say. There's no reason it can't be the author unlocking their own world after realizing the Super Lock broke the game's victory screen and then recreating the corrupt board. Listen, just be careful with these dang things.

One of these days I'm going to make one of these myself.

I can't forget to mention that this program also comes with a catalog for the company Tekktonik. This goes over the company's members, shows off some tools (including UnLockPRO itself), plus a blurb for a Star Wars parody game for MegaZeux that proudly boasts names like "Spork Floorwalker" and "Princess Lego".

...apparently people liked it. Shame on me for judging.

I don't know who Matt is, but his locks are apparently terrible.

Uh, moving on, the catalog also claims the program supports removing "Hybrid Super Locks" where folks manually name their boards hyperlinks and have a board named for the label that isn't corrupt, preventing other boards from being opened (with enter). The catalog gives the example of !lock; ░▒▓COOL-LOCKED▓▒░. I made a small world to test this functionality to no avail. Only afterwards did I notice that the catalog is advertising a 1.50 version of the program. Who knows if that ever got a release?

UnlockPro 2.0.0

I sure don't. But version 2.0 clearly did!

All worlds are now at my fingertips.

It's a bit of a glow up too. The program now runs entirely from command line arguments instead of prompting users for everything. Running it without any arguments provides a list of available options.

The big benefit of the switch to the command line is that it's now possible to pass along multiple files to work with. Every other one of these programs requires you to repeat the process with each file that needs to be unlocked. Here it now becomes possible to remove locks in bulk, sparing the constant repetition other programs have of entering a filename, asking to unlock the file, closing the program, and having to repeat the process every time. It's a shame the program doesn't support wildcard expansion. If you could just run C:\ZZT\ULPRO.EXE -u *.ZZT and unlock an entire directory of files at once, this one would have some real potential usefulness.

The faux super locks that weren't yet handled in v1.35 now are, allowing the removal of these minor nuisances.

Rather unexpectedly, the program boasts support for the removal of what was ZZT's last serious "lock": the Omega Lock. This lock didn't modify worlds on its own, but rather provided a pair of objects intended to be placed on every board which check for the presence of a +DEBUG flag, and if found, spam looping endless messages until ZZT crashes. The idea was that when combined with a normal or save lock, players would set the flag to bypass that kind of lock, but then save the game with the flag still set, triggering a crash of ZZT during gameplay.

The theory behind it requires a few too many things to go right in order to be effective, making it really no better than any other lock available. Players could simply clear the flag after opening the world. They could use one of these many programs to remove the other locks and not need to set a flag. At most, this would trip up a casual unauthorized edit of a world, crash ZZT, and then the player would reopen the file and clear the flag.

Omega Locking requires considerable effort to implement as well. Authors have to add two hidden objects per board, and the source board suggests adding a third object to detect players' attempts at ?ZAPping the other two away. All this takes up 5% of board memory, which shouldn't be an issue for the most part, but it can be significant when working with a complex engine or a large game that pushes the bounds of free conventional memory when ZZT loads in the world. All of it for a lock that was never going to be effective given how late it was designed. , The other locks out there might have been easily busted too, but at least they were quick to apply to a world. This is disproportionate effort for sure.

Which is probably why until relatively recently, no world which actually used the lock was known to even exist. Thanks to what a pain in the ass it is to implement properly, along with the fact that by 1999 the lack of security with all previous locks meant that trying to prevent editing had long since fallen out of favor. Still, somebody gave it a shot in the year 2000 with The End of Time - The 7.142 Stinky Flies. This world was discovered to contain the objects in question. Yet even here, the objects for the lock are only found on a single board, so it's still not much of a deterrent, but it provided an organic world to test the program on to see how it would handle removal.

And tragically, it failed to work. I also tried creating a short world myself which would contain the objects on a smaller number of boards to see what, if anything, was being done to the world when ran.

While the program does properly detect the lock, it fails to remove it. The test world ballooned in size from six to seventy kilobytes with a large number of zeroes added to the file, and then some slightly modified copies of the Omega Lock objects' code. These modifications would cause the objects to throw errors if ran, which should prevent the crash, albeit in an incredibly clunky way that I don't think was what Kev intended the program to do.

IMO, the easiest fix would be to find the objects and set their cycle to zero ensuring that they never get to tick, but I'm not the one writing code to chase down these objects. Even if the program did work, I'd still love to see the source to see how much of an arms race could have developed between Kev and Omega. Is it looking for the "BLOCKED BY OMEGA LOCK" string? Is it actually trying to detect infinite text loops? How beatable is this thing?

No Omega Lock removal is a bummer, but with only one world that actually used it, it hardly matters. What does matter though is that the process to scan files for locks now has to iterate over every object in the game, and this is where DOSBox's default speed is too slow for comfort. There's a considerable delay when running the program on large worlds now. Of course, this version of the program is from 1999 so for anyone ZZTing on a Windows PC, you'd still almost certainly be done with it in a moment.

Super Locks still have the corrupt board removed entirely making the program continue to be destructive. Don't actually run it on your entire ZZT collection please. There is at least some improvement in that the program does rename Super Locked board titles now, though ironically to the still unhelpful "UnLockPRO" making following passages and exits remain a frustrating process.

LZZTUtil 0.3.1

Nicer graphics than ZZT

Most unlocking programs stuck to simple text mode interfaces, but not Daemon_Lotos's ZZT Utilities which sports a comparatively sleek graphical interface. Given its 2002 release date, that's probably a good call. I can't say if this program was done in Visual Basic, but it has those vibes for sure, especially once the quirks become apparent.

On a whim I opened the executable in a hex editor found a few references to SOFTWARE\Borland\Delphi. Mystery solved.

This one is comparable to ZZT Info Error, focused more on editing the state of a file more than just adjusting locks. Now toggling locks is as easy as a click of a checkbox. Keys as well!

But while visually it looks reasonable enough, actually using it is surprisingly awkward. All the checkboxes require the box itself to be clicked directly, not toggling when the label is clicked instead. It's been long enough that I can't recall if that would have been expected to be the case or not, or if my brain is too used to HTML form controls that do this.

The checkboxes are only the beginning though. Want to crank up your health in a saved game? Why, just type in the new value. Nope, sorry, you have to actually click the tiny arrow buttons (or press the arrow keys on your keyboard). You are unable to type numbers in numeric fields. It really defeats the benefit of having a GUI in the first place .

Adjusting flags is equally baffling. The widget is concise, showing one flag at a time with a horizontal scrollbar to move from flag to flag. With only ten flags, this system isn't too difficult to manage, though I'd gladly take the trade of a slightly larger program window to display all the flags on screen at once. Somebody please, just list them in two columns. It'll be fine.

Any changes to the text entry are discarded when you proceed to an adjacent flag unless the "Set Flag" button is pressed first. This is true of the counters as well, which have their own "Lock In" button to confirm your modifications. Clicking these buttons stages the changes within the program, but doesn't actually modify the file until another confirmation is made by choosing to save from the file dropdown.

I found myself constantly second guessing myself as to what data is saved, where it's saved, and when it's saved. Do you need to "Lock In Values" for the starting stats only? Can you get away with not pressing this button if you only wish to give the player a purple key? Are the locks applied automatically?

When you do hit save, there's no indication that anything was actually done. The bottom status bar which is used to show the world size would be a great place to just tuck in a little "File saved!" message, or even an indicator that changes have been made, but not yet written to the file.

Plus there's no "Save As" option, which should be a no-brainer feature IMO for a GUI variant of a program like this. It would be very useful for authors, allowing them to keep keep their world unlocked for editing themselves, and then locking it under a different name once it's ready to be uploaded and published somewhere.

The program also has its share of still incomplete functionality. Luckily none of this applies to the file modification process, just the help menu which contains buttons for a dedicated help file and an about section. Neither of these buttons do anything. For a pre-1.0 release, it's tough to find too much fault there.

Adorbs.

At the very least, it does have a lovely icon.

LZZTUtil 0.3.3

Like UnLockPRO, this is another utility that has more than one preserved version. It's more of a minor revision than anything else though. All the functions and flaws from before return, with only two noticeable modifications.

The help menu has been revamped, with buttons that now do things. Clicking help launches the program's readme, which still feels like a placeholder until a proper help file would have been written. The readme doesn't contain any information on how to use the program, just what it is. It beats nothing happening at least.

There's also a new button to contact Daemon_Lotos that opens up your OS's default mail client when clicked. I want to say that's a good idea for what's still an early version of the program, yet I'm not sure what exactly Lotos would have wanted to add still? There are some things in the world header not adjustable yet that were in ZZT Info Editor, namely the current board and time elapsed. At the same time, I feel like they would've just been included already if Lotos wanted to. It's just changing a few bytes the same as all the other counters. (Admittedly, if you parse the entire world, you could make a nice select widget with all the board titles to pick the current board.)

Feature-wise though, there is still something else, and it's actually a really solid addition. A large button has been added that saves the file and launches ZZT with the new values. If you needed to unlock a world, the first thing you're going to do after unlocking it is to open it in ZZT anyway, so this program makes it quick to do so.

Zprot

Oh hey, humble beginnings. I completely missed the fact this this program is also by Daemon_Lotos when I was checking everything out.

Putting that textmode palette through its paces

At this point, it's nothing special. Another basic unlocker ran from DOS. You get colors and plenty of them. Alas the most common color is blue which is a pain to read against black. I've gone so far as to edit screenshots for Closer Looks before when I had the misfortune of capturing a flashing message on a blue frame. Please don't use blue on black in DOS.

While the colors are still appreciated, they're not nearly as important as they would be in something like ZZT Info Editor where there were quite a lot of options on screen. With this, the only thing you can do after opening a file is to lock it or unlock it. Worse yet, the only lock supported is the standard lock. By 1998 you had plenty of options for these kind of programs, making this one feel fairly lacking for anybody looking for a way to unlock ZZT worlds.

The documentation implies that more features were planned for future releases. The lack of support for Super Locks was to be addressed in a 2.0 release, promising to support both adding and removing them. That's still not a whole lot of functionality, but removing Super Locks is a tough feature to come by even now, with none of the programs up to this point managing to do so cleanly. There's still a niche that has yet to be filled.

ZZTHACK.EXE

I promise this is the last one of these that doesn't have anything unique going for it. ZZTHACK.EXE is another locker/unlocker! At least it's (theoretically) one of of the more featured ones.

This one immediately got my attention when prompted to add a "Secret Lock", a term I hadn't heard before, at least until I realized it was just a normal lock. The alternative name makes sense, as regular locks work by setting a flag named SECRET, but there's no long forgotten tech to be found here. Strangely, the program is inconsistent, using both "normal" and "secret" when describing this lock.

I like how after you remove the normal lock it asks if you want to add a new one.

It's still got some things going for it. If no file extension is entered, it assumes .ZZT, and if no file is found, it then checks for .SAV. You can shave off those precious characters and can get back to your ZZTing faster than ever!

Many of these programs are rather unclear about whether or not the file extension is necessary. Having one that will do the sensible thing and check for both if no extension is provided is something that seems obvious, but is harder to find than you'd think.

*Makes a single word dark gray* Look it's got color support!

Loading a save file is kind of interesting though, as it results in an unmentioned feature appearing. Here you can opt to give the save "Max Health" which is a misnomer, as it sets health to 10,000. That's probably plenty for all but the most dire of games, but far from ZZT's actual maximum. Of course, the gem pickup routine doesn't consider the possibility of overflowing so setting health to that maximum of 32,767 runs the risk of gems suddenly becoming fatal. I'm more of a "max health is 30,000 health" kind of guy.

This is another unlocker that's willing to take a crack at the Super Lock. I tried testing it out on Sivion, and got ...mixed results.

How does this happen?

Most boards got renamed to UNLOCKED!. Somehow not all of them though. And it's not like it stopped working halfway the file or anything. Some boards just weren't touched.

The final corrupt board was left still in its corrupt state with the invalid board size value. It was renamed to a blank name so those boards that didn't unlock don't crash ZZT when opened normally. It might've helped to rename the corrupt board something like CORRUPT BOARD to make it obvious that it shouldn't be opened. The blank name gave me hope something had been done to it. Plus if I see a board named :c I will avoid opening it in ZZT. This is not true when I see a mysterious blank name on the board list.

For the curious (me), these boards did not have their name changed:

I cannot begin to come up with a reason they were ignored. A few of those desert boards don't have any stat elements on them except for the player. They're about as basic as ZZT boards can be. Unlocking on a fresh copy of the world left the same boards ignored. Using the program itself to Super Lock had a significant number of boards not be renamed to a hyperlink, and the :c board was one towards the end, but not the last. It also wasn't corrupted, so this is a faux Super Lock, but whatever.

Just incredibly bizarre behavior.

ZZT Unlock

Folks, it's finally here. The unlocking program that gets it right.

There's even a progress bar!

Another unlocker for the pile? Not this time. Despite this one's rather early release year of 1996, ZZT Unlock finally brings us a program that handles Super Locks as one would expect today. Not only does this rename boards to include a number so you can tell which board connects to what after unlocking, but it actually goes to so far as to repair the final corrupted board instead of ignoring it or removing it outright.

Board #1!

As far as Super Locks go, this is it. This is the best program on this list, hands down. I'm genuinely upset that the glut of these programs has meant that I had no idea there was a program that did this until just now, nearly 30 years after its debut.

The final board of Sivion in all its glory.

It's not the perfect solution to removing every kind of lock, so this program on its own isn't enough. It outright doesn't support Save Locks, which do show up from time to time. Even so, I'm just going to remain forever mad that the ability to recover corrupt boards from Super Locked worlds was known in 1996 and didn't become a standard feature in every unlocker released since.

This program, aside from having to run it from DOS, ends up being useful today even with the extra effort. Functional navigation of Super Locked worlds with no data loss. Previously I've only dreamed of such a thing.

...but the /? argument for help doesn't do anything, so maybe it's also no good.

MegaHack

The final program to explore may not be the most practical, but it is undoubtedly the most showy of all these programs. Forget about the GUI of LZZTUtil. This is what happens when removing locks is treated like removing copy protection from a studio-developed game.

MegaHack is as cool as it gets. I'm not even finished writing this article and already most of these programs are a blur of gray text. Does Zprot run from the command line or does it have a series of prompts to perform its actions? I have no idea. Meanwhile, MegaHack has lived rent free inside my head for ages.

A marquee warns that the program is currently incomplete, having had a ton of effort put into presentation above making it actually do things. That music is so rad though that you'll certainly be happy to sit and let the text scroll while you listen.

All that hype for this

Despite the incredible flashiness of everything, MegaHack doesn't do all that much. You can edit the counters of a file, but not the flags. There's no Save Lock support, plenty of menu options do nothing whatsoever. Admittedly, it is an unfinished release. You get a fancy opening, and thus considerable delay to do the same things that most of these programs do in some form or another.

It is notable though that the program is also intended to work with MegaZeux worlds, serving to remove passwords from them, and likely doing the same kind of work on MegaZeux saves as is does with ZZT, but none of this is actually implemented in this lone release.

Is this the most esoteric ZZT clone?

One thing that was coded is "Tiny ZZT", a little recreation of ZZT that consists of a single board with ammo, yellow normals, and lions. It's no ZZT clone, but it shows that Kev might have been up for such a thing. The controls feel a bit rigid compared to ZZT, but is is a fully functional little ZZT board, with unique sound effects that the PC speaker has nothing on.

Actually, the sounds are awful. While the program's cool chiptune music is certainly catchy (despite playing slowed down and pitch shifted in DOSBox compared to the original audio track?), the quality on the sound effects is really rough. It's like taking the harsher sounds in Jill of the Jungle, and crushing them even further. If you could put these sounds in ZZT, you would hate playing it. ...However now knowing that the music is playing at the wrong speed, the same may very well be true of the sound effects.

Perhaps weirdest of all, the program demands that you agree to its license before launching, telling users to read a file which doesn't exist. Is this the equivalent of a blank check? Am I now beholden to Kev's whims because I wanted to learn how the bank in Town worked? Aw jeeze.

For lock support, it's another case where normal and save locks are supported and removed just fine. Super Locks remain undeterred, with the program claiming to remove them and no changes being made. When I was young I always used MegaHack to unlock things since I believed Super Locks to be impossible to remove and this program to be the coolest thing around. Now I find it way to slow at its practical uses to be recommended, but out of all the programs listed here it's the only one that I genuinely think ZZTers should poke around in. The presentation is off the charts for a program of this nature, and its implementation of Tiny ZZT gives it something of value today when ZZT locks are ignored by any modern editors.

I'll level with you, this entire article was a justification to share MegaHack with everyone. I have no regrets.

The Pipeline

There is one curiosity about these programs that I had never realized about them before. While the ZZT community itself didn't need a dozen programs to unlock files and edit counters (and there are still more that I didn't even look at!), the authors who were making them benefited greatly. These programs are the perfect way to make baby steps into editing ZZT files outside of ZZT, working with raw bytes and learning how ZZT's files are structured and how to change them.

For the authors, these programs, whether intentionally or otherwise, managed to be the first steps into far more ambitious ZZT related programs. Daemon_Lotos wrote an unlocker, and later began work on a ZZT clone known as ZZ3. Kev Vance did the same, and brought us the first external editor, KevEdit, which is still a mainstay program to this day. Craig Boston's ZZT Unlock, begat ZZT Enhancer, a program that would hook into ZZT via Windows and add Sound Blaster support and expanded ZZT-OOP functionality. These programs are less about a saturated market for a niche ZZT tool and more about learning how ZZT works, which inevitably inspires thoughts of how ZZT could work instead.

Heck, the first locker/unlocker is Alexis Janson's own ZZTLOCK bundled as a part of ZZT Tools, more well known for its inclusion of Super Tool Kit. All of these stem from analyzing the ZZT file format and working on it. Janson would of course go to create MegaZeux. It's practically an inevitability.

Final Thoughts

Do these programs offer much today beyond the novelty of MegaHack? Not really. Modern editors have made it so ZZTers don't even have to consider locks, happily opening anything thrown at them. The only real legacy to be found here are in those worlds with boards named UNLOCK PRO or !c;LOCKED FILE, where these programs made permanent marks. Even when locks were actively in use, the tools for adding them almost always doubled as the tools for removing them, making them little more than a momentary hurdle. The knowledge of how to lock a world was accompanied by the knowledge of the fragility of those same locks.

Even without the programs the ?+DEBUG and ESCAPE tricks alone made locks trivial to bypass. Word of mouth was all it took for locks to fall by the wayside, and so these programs mostly exist now to collect dust on the Museum.

Some do offer advantages over others. It's nice to properly eliminate a Super Lock and have readable board titles. It's nice to use native OS widgets to remove locks with a checkbox instead of having to manually enter filenames and confirm actions. It's nice to be able to quickly add thousands of ammo and health into your saved game. The ones that don't bother with Super Locks are nice for being nigh instantaneous once unlocking begins by not looking beyond the 512 byte world header. As long as they actually function, none of these tools were ever truly pointless.

The real surprise to me is that after looking at all these programs, there simply isn't a clear winner between them. None of the programs are capable of defeating every lock, and that's before the overlap of programs that allow counter editing as well. Originally I was going to write this article out as a very facetious "Top 10" giving MegaHack the number one spot for its soundtrack and visual effects. As a joke that works well enough, but if you genuinely want to know which of these programs is the best one to use, there's no good answer. Craig Boston's ZZT Unlock comes dangerously close, if it only supported Save Locks as well. Instead it seems like in the 90s and 2000s you'd be stuck downloading several of these programs rather than finding a definitive Swiss army knife of an unlocking tool.


====== A Worlds of ZZT Production ======

The Worlds of ZZT project is committed to the preservation of ZZT and its history.

This article was produced thanks to supporters on Patreon.

Support Worlds of ZZT on Patreon!
Top of Page
Article directory
Main page