ZZT Sound Plus is now at version 1.3. And this version is a rip-roaring improvement!

The user interface has been overhauled, many new operations are present, lots of bugs are fixed, and now you can read MIDI files as input in addition to WAV.

There are a lot of subtle improvements as well. The whole application is now more tailored towards workflow. If you work on a file, the application remembers your settings for each file you edit, so you won't have to re-enter your favorite settings constantly.

Don't forget about the tutorial playlist:

ZZT Sound Plus Tutorials


ZZT Sound Plus is now at version 1.2.

Note addition and move operations are improved, duration extension lines are implemented, and most importantly of all, the annoying MIDI bug that had been breaking longer songs has been fixed.

I wanted to see just how long a song could be converted into MIDI. I attempt to do this with "Message in a Bottle" by The Police. The whole song converted!

It's a bit surreal to hear Sting's voice recognizable amidst piano-only MIDI channel playback. This gives me some ideas about what theoretical instrument symphonies could be prepared in real life...

By the way, I have delivered not one, but three instructional videos for ZZT Sound Plus. Reserve a block on your schedule and have a watch!

Full Playlist


ZZT Sound Plus has an upgrade today! We're now at version 1.1.

Some minor fixes were introduced, but the main additions are as follows:

  • Chord Gauge and Keyboard Gauge are implemented; much easier to consolidate notes.
  • Right-click context menu items now present in staff display.
  • Manual merge and break-apart actions now present.
  • Improved readouts during playback and note selection.

Go ahead and download ZZT Sound Plus and try it out!

Also, we now have a few fruits of labor from this tool, which are songs that had been "dumped" to the Hall of Music from ZZT Sound Plus:

The Forefront - The titular theme from Bionic Commando.

R-Type C64 Title Theme - A Commodore 64 loader tune I added specifically at the request from Commodore on the forums.

I'm preparing instructional videos for the tool. While I could take additional tune requests, it's probably more expedient to teach others how to use the tool on their own.


I've been lax about updating this main page, but boy, do I have one mother lode of an update today.

First things first. I really should have identified the HTML 5 prototype that I had created late last year. While still rough in spots, it has virtually all the capabilities of the Flash version. Flash plugin support in web browsers is looking increasingly sketchy (no pun intended), so an HTML-only engine that looks, sounds, and plays exactly like the Flash version should be more than welcome!

Now for the juggernaut. It's ZZT Sound Plus, a tool that was so insanely ambitious that I had been putting it off for no other reason than fear of being driven mad by the challenge. This is my latest and greatest creation: it can extract musical notes from any digital audio recording!

You are reading that right. Any digital audio recording. As long as it is in .WAV format, you can pull the notes out and display and edit them in a musical staff interface.

ZZT Sound Plus is in the alpha stage, so I'm all ears for feedback from curiosity-seekers. If you want to get an idea of what it can do (from an earlier version I had built), I suggest watching this brief video I made:

ZZT Sound Plus: An Exhibition (Pressure Cooker)


Big update today! A lot of the rather tough enhancements to ZZT Ultra requested by the folks on the forum are now delivered. See the change log for the full list of changes.

Here are some highlights. I completely reconfigured the options screen so it is more obvious what each option actually does. More octaves (0 and 1) for #PLAY statements are now supported. Special "pseudo-directions" can be used with object placement commands to help support vertical stacking. GUI editor is much more versatile now.

Two additional changes made me tear my hair out: commands for configuring the scroll interface colors, and commands to support scrolling marquees in toast messages. These were taxing because of all the hard-coded conventions in the engine that didn't easily support customization. You're probably about to say only I'm to blame for that, so I'll shut up.

This wraps up a fairly conclusive list of pending changes that people wanted. The ultimate exercise in versatility, though, is yet to come (and significantly harder): building an HTML 5 version.


There have been a few updates not strictly related to ZZT Ultra's main engine, but they are still important. The Hall of Music is now vastly improved, with full timeline control, list filters, and a better submission update system. ZZT Imager on the Downloads page now supports GUI deployment in its "Raw Characters and Colors" clipboard output type, which facilitates ripping image files for use in GUIs (and not just ZZT board data).

I also decided to perform yet another self-destructive emotional act: I submitted Smash ZZT to NewGrounds. Go ahead and vote for it to see the player base expand!

NewGrounds still maintains an active following despite the mobile market stealing its thunder. The feedback you get from the site, though, is almost as punishing as Smash ZZT itself. With future releases of the ZZT Ultra source code, I will include the section of code I used to "embed" several of the startup and configuration files within the SWF. It makes a compact "all-in-one" package, but you would need to possess Adobe Flash/Animate CC to build your own standalone package.


Version 1.0: At last, I'm proud to release version 1.0! Basically, I had to stop somewhere with these incremental 0.x releases. This is as good of a first official release as we're going to get.

But enough about that. The real attraction this time around is Smash ZZT, a tribute game I've been working on for some time now. This game formally launches the first official version of ZZT Ultra. It's fun if you like punishing, old-school, credit-stealing arcade games.

And, of course, the change log.


Version 0.20: The more I do, the more people heap more requests on me. I learned a few months ago that this isn't just irony. It's called the Kano model, which shows that a favored-feature application or product drives even greater expectations, while a lesser-favored product results if fewer expectations. One way or another, it's my own fault.

ANYWAY, here's a change summary.

High scores had been identified in previous versions as "supported from a website script later." The later is now. High scores can be posted either client-side or server-side depending on the load location of the world. World designers also have direct programmatic control over the score metadata and posting contexts; it's not just "when you die."

Smash ZZT is proceeding steadily. I think you'll be pleased with how this crossover-themed game will turn out.


Version 0.19: Everything's gone nineteen! This is a convoluted way of saying that a lot has changed. All the changes are catalogued here.

The big change from the last release was with the configuration philosophy. Settings modified from the last session of ZZT Ultra are remembered, so you can establish a preferred, consistent configuration that suits you best. Also, the promised multiple configuration styles have been implemented: you can now switch between classic and modern. You're welcome, Bitbot.

I could say that all these legacy support decisions had sidetracked my plans for a new line of advanced ZZT Ultra-based games, such as Smash ZZT and Fall of ZZT: The Curse of Production Quality, but that would imply that the time was somehow misspent. On the contrary: anything that makes the game engine more solid increases its overall value, for both the past and the future.

The tricky bit to all of this has been the same, right from the start: finding the time to sit down, roll up one's sleeves, and get to work.


Version 0.18: Not much new; many bug fixes and more supported worlds. I decided to add PWADs to the site and distributable package for those worlds that I had objectively determined needed to have POINTBLANKFIRING equal zero.

ZZT Ultra is at a crossroads. There is now substantial pressure to move in two different directions: both backwards and forwards. Moving backwards in terms of re-creating the interface and experience of the classic ZZT and Super ZZT worlds, and moving forwards in terms of creating an optimal engine for future development (i.e. evolving the engine into something next-generation).

I believe that both of these objectives are attainable. But this will complicate what the site and distributable package should give to users. ZZT Ultra was always big on configuration settings, but configuration is increasingly starting to diverge with old and new worlds. New worlds will demand new features, enhancements to existing capabilities, etc. Old worlds will demand studious replication of every bug and quirk that the original engines had. You can't have your cake and eat it too--you need to decide, at some point, an ideal configuration for playing something "old" or "new."

With this in mind, I am thinking that this will be one of the last releases to contain only a single default configuration. Henceforth, there should be a classic configuration and a modern configuration in the package.


Version 0.17: Continuing with the aggressive testing of ZZT and Super ZZT fine details, I have been rapidly polishing ZZT Ultra so that the "Encyclopedia" worlds run nearly flawlessly. I must say that people had really gone to town trying to find ways to exploit the ZZT and Super ZZT engines, to the point of taking advantage of quirks that can only be called silly. It's making my job of emulation that much more difficult, especially when figuring out all the different #PUT and #CHANGE color nuances.

I don't have much in the way of long, impressive games that are working since the last update (at least, according to my rigid playthrough standards). But I suspect that quite a few worlds will now be playable that had faltered in the past. I'm looking at you, Chrono Wars.

The Hall of Music is a different matter. I have expanded the library significantly.


Version 0.16: With this update, I'm really trying. Trying to get as much of the past squared away as I can, so I can eventually focus on the future. A good portion of Banana Quest is now supported, and most of the ZZT Encyclopedia as well. Tons of bugs and features (however you want to call them) accounted for meticulously. Details here.

Now, don't harbor any illusions about Banana Quest being completely supported. It's not 100%, and won't be for some time. But I have finally managed to lift it from BROKEN status to PARTIAL status. Harder than it sounds.

While still experimental, ZZT Ultra makes use of PWADs now. It is possible to develop a "patch" file that effectively "fixes" an old ZZT or SZT world without having to modify the original file. I will cover the science of world file patching in more detail with future updates.


Version 0.15: Major update, built on the foundation of the performance improvements from 0.14. There was no point in making these enhancements until the performance of ZZT Ultra had become great, because of the screen-intensive nature of the new features.

These features are: palette color updates, and character set modification. There are a few more details that you can find in the Change Log.

This brings ZZT Ultra in line with most of the video capabilities of MegaZeux. More importantly, support for Banana Quest is now within throwing distance. Character set customization brings many new possibilities to the table. You can read about the new character editor interface in the ZZT Ultra world editor.

I have whipped up a character/palette tech demo for people who want to find out how these new features work. It remains to be seen how they will be used.


Version 0.14: This time, we're moving much faster. As in, greased lightning. The rendering system of ZZT Ultra has been overhauled, and will no longer lag, even on older machines. Also, many worlds that would not load before will load now (check the Supported Worlds).

As always, see the Change Log for full details.

It seems that the number of features to support never ends! I'm currently looking over the ZZT Encyclopedia files to see which odds and ends I might have missed. I will say this, though: Flimsy's Town may not be supported fully at this time, but we are fast approaching the day when it works out of the box.


Version 0.13: Thirteen sounds like a lucky number! Especially on Halloween. ZZT Ultra and the Hall of Music have been tweaked to support more games and more coding contexts. One important update was the introduction of a greater amount of fault-tolerance for ZZT-OOP language syntax. Some broken code had been outright freezing the engine before; errors are now simply reported.

See the Change Log for full details.

For October, I am proud to announce a successful launch of the Discussion Forum for suggestions, bug reports, and various topics that don't fit into any other part of the website. The forum comes with a variation on a CAPTCHA (which I have coined a "ZAPTCHA") that requires you to play a ZZT mini-game to prove you are a human being.

Yeah, I know. I'm prejudiced that way.


Version 0.12: Editor and engine are now much tighter, with many new games supported. Aura, Little Square Things, Dreams Demo, and MacGyver ZZT are now in GREEN status. In fact, very few are still in the RED status, indicating they are broken.

The crown jewels of ZZT support are yet to be covered, including Banana Quest and the late great Flimsy's Town.

It may seem a bit late for this, but I decided to post a Change Log to chronicle how ZZT Ultra has progressed over time. Each new minor revision will have this file updated; it will be available on the downloads page.


Version 0.11: Important fixes and enhancements from 0.10. This version also comes with the first important fruit of all this labor: DEMO.WAD. This is an interactive demo of all the new ZZT Ultra engine features.

Play the interactive demo here.

You can also download and deploy the latest version of ZZT Ultra here.


Version 0.10: The most definitive release yet, containing an in-game editor.

The World Editor for ZZT Ultra is the most involved ZZT editor created to date. You can now create worlds with far fewer limitations than before. See the editor documentation for more details.

ZZT Imager has also been released, allowing you to transform image files into text-mode equivalent metadata.

Play the latest version of ZZT Ultra here.

Download and deploy ZZT Ultra here.


Release of the first downloadable package. This is version 0.9.

At this point, ZZT Ultra can be deployed on any website or locally on a person's hard disk. Most ZZT and Super ZZT games are fully playable with this version of the engine.

Still to come are changes that will allow you to play the more "exotic" worlds, which exploit many of the hidden features and quirks of ZZT. View a summary of world-support progress here.

You can play ZZT Ultra here or download and deploy ZZT Ultra on your own.


Official launch of ZZT Ultra website.

Most of the early development of ZZT Ultra is chronicled on Check the ZZT Ultra forum topic to view the early development progress.

This page is Copyright © 2016 Christopher Allen.