in ,

asiekierka / reconstruction-of-zzt, Hacker News

asiekierka / reconstruction-of-zzt, Hacker News


The Reconstruction of ZZT is a reverse-engineered recreation of the source code to the last official release of ZZT , ZZT 3.2. The output executable is byte-for-byte identical with said release, which means that the source code accurately represents the original engine’s behavior.

The intent behind this project is to facilitate improved preservation and accessibility of ZZT’s worlds and community, As well as facilitate new, exciting developments.

Frequently Asked Questions

ZZT is an adventure game created by Tim Sweeney and released in January for DOS computers. What set it apart was the Inclusion of a fully-featured world editor in the shareware release. Since then, ZZT has gone on to inspire thousands of players and game creators all around the world.

You can learn more about ZZT through the Museum of ZZT .

There are many ways to run ZZT on a modern PC. While pretty much anything capable of running DOS will do the trick, the recommended ones are:

  • DOSBox
  • , a general DOS software emulator.

    The official ZZT worlds originally released with the game can be found here .

    Beyond that, I highly recommend checking out the of the Museum of ZZT , particularly its Featured Games section, to find amazing worlds created by the ZZT community over the past three decades.

    How can I create ZZT worlds of my own?

    ZZT comes with a built-in editor and documentation – just press “E”!

    However, please note that the community has since created more powerful editors, the most popular of which is KevEdit . This is currently the recommended solution. Dr. Dos has created a live stream series on YouTube detailing how to use Zeta and KevEdit to create your own ZZT worlds.

    What is part of this open-source release?

  • The source code includes the source format for both ZZT.EXE and ZZT.DAT , as well as relevant tools.

    Why did the source code have to be reconstructed?

    I’m a ZZTer from back in the day and I have some backups from that period. Are they still useful?

  • Directory structure – output directory for EXE and TPU files ,

  • DOC – documentation files used for building ZZT.DAT:

  • LICENSE.HLP – licensing terms for the source code release, formatted for in-game view,
  • END1.MSG, END2.MSG, END3.MSG, END4.MSG – registration messages for the shareware version of ZZT; not present,
  • – Python 3 script for fixing relocation table segments in EXE binaries after LZEXE decompression, – the official ZZT demonstration world ,

  • SRC – the reconstructed ZZT source code,
  • – DATPACK, a tool for creating and extracting the ZZT.DAT file (source code),
  • The Reconstruction of ZZT is licensed under the terms of the MIT license as described in LICENSE.TXT, with the exception of certain files included with this release:

  • : Copyright (c Adrian Siekierka, licensed under "zero-clause" BSD
  • Turbo Pascal 5.5 (if you don't have it, it's officially available for free via Embarcadero's Antique Software website). Instructions

    (SET PATH=C: TP;% PATH%) ).

  • From the source code directory, run (BUILD.BAT) .
  • The DIST directory will contain files comprising the release as outlined in the FAQ.
  • (ZZT.EXE) bundled with ZZT 3.2. Compilation FAQ Can the Reconstruction be compiled with Free Pascal instead?

    If you'd rather stick to an entirely free software stack for building ZZT, that is also possible, albeit not without modifications:

  • Free Pascal must be compiled as a DOS / i cross-compiler in the Large memory model ( (more information
  • ).

  • The compilation flags "-Mtp" and "-WmLarge" must be used.
  • The methods in VIDEO.PAS using inline (...) must be rewritten, as Free Pascal does not support this form of inline ASM code.
  • SOUNDS.PAS must be patched, as Free Pascal does not support overlapping CASE statements.
  • As LZEXE is not free software (source unavailable), you may want to consider removing it from your build process or replacing it with another compressor , such as UPX (with the - (flag).
  • Please note that, as Free Pascal's RTL is significantly larger, the resulting binary is likewise about KB larger - leaving less memory space for game worlds.

    What are all the "unk" -prefixed variables?

    These are variables which are not used at all anywhere in the source code, but are assumed to exist in the stack or data segments, affecting relevant variable offsets and stack checks. They are required for byte-level equivalence, but you are free to remove them and get a functionally equivalent version of the engine - with the exception of some structures, like TStat, which are serialized to disk.

  • Greetings

    I'd like to thank everyone who has spent the last few years contributing to the rebirth of the small ZZT community. It is thanks to your passion and dedication that this project has been made possible.

  • Read More

    What do you think?

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    GIPHY App Key not set. Please check settings

    Coronavirus: Jamie Redknapp calls on Premier League to offer financial support in crisis – Sky Sports,

    Coronavirus: Jamie Redknapp calls on Premier League to offer financial support in crisis – Sky Sports,

    Chris Pearson: Example of a Shakti-powered spreadsheet application, Hacker News

    Chris Pearson: Example of a Shakti-powered spreadsheet application, Hacker News