Z-Catalogue Index by Titles Z-Catalogue Detailed List Z-Catalogue Home Page
Z-Catalogue Index by Authors Z-Catalogue Index by Categories How To Play These Games
The Z-Files Catalogue

How to Play "Z-Code" Games


  1. What format are .z3 and .z5 files in?

    The adventure games in this directory are in the "Z-code" format (a computer-independent abstract machine code), which was designed by Infocom and used for all their adventure games from "Zork I" (the "Z" in "Z-code" stands for "Zork") to "Shogun". Infocom used 6 versions of the format, but the most popular were "Standard" (version 3) and "Advanced" (version 5), and these are the main formats in which you're likely to find shareware or freeware games.

    The extensions .z3 and .z5 mean that a file is a "Z-code" adventure game in version 3 or version 5. These files are not compressed, but are ordinary binary files, and should be downloaded by FTP in 'binary' mode.

    To play the games you will need a "Z-code interpreter program", sometimes known as a "ZIP". Do not confuse a "ZIP" with any of the archiving and compression programs that have "zip" in their name, for example "zip", "gzip" and "pkzip".

    Another confusion to be avoided is that between Graham Nelson's game "Curses" and the Unix screen-handling library "curses"!

  2. Is the Z-code format proprietary?

    No proprietary code is used in the portable interpreters, or in Graham Nelson's "Inform" compiler; the format was decoded by painstaking examination of Infocom's story files and interpreters. The format itself is not patented, so there should be no problems in using these programs according to the terms of their licences.

  3. What about .z7 and .z8 files?

    Versions 7 and 8 of the Z-machine are recent innovations (proposed by Graham Nelson in June 1995). Version 8 is the preferred one; it is essentially the same as version 5 except that games can be twice as big (up to 512k, instead of being restricted to 256k). Following the law that applications expand to utilize available resources, several recent games use the z8 format. Playing them will require one of the more modern interpreters.

  4. Where do I go to get a Z-code interpreter program?

    A sizeable colection of the best modern z-code interpreters is maintained at the Interactive Fiction archive site - ftp://ftp.gmd.de/if-archive/infocom/interpreters - or one of its several mirror sites. Some of the most popular include...

    Frotz, an interpreter by developed by Stefan Jokisch based on Mark Howell's ZIP, but completely rewritten. It conforms to Z-Machine Standard 1.0 and supports V1-V6 and V7/V8 games with support for IBM-format graphics files for V6 (Graphical) games, and sound effects (on the PC through a SoundBlaster or compatible sound card) and has been ported to several platforms:

    AmigaFrotz232Std10.lha
    Frotz version 2.32 for the Amiga, release 10, ported by David Kinder
    DosFrotz232Std10.zip
    Frotz version 2.32 for DOS, by Stefan Jokisch
    FrotzCE12a.zip
    Frotz version 2.22 for Windows CE, release 1.2a of port by Ian Dean. Supports the MIPS and Hitachi SH3 processors.
    FrotzS5r13.zip
    Frotz version 2.32 for the Psion Series 5, release 1.3 of port by Frederic Bouvry.
    PalmPilotFrotzRev2.zip
    Frotz version 2.32 for the PalmPilot, revision 2 of port by Paul Margrave
    RiscOSFrotz125.zip
    Frotz version 2.22 for Acorn RiscOS, release 1.25 beta of port by Andrew Holdsworth
    RiscOSFrotz132.zip
    Frotz version 2.32 for Acorn RiscOS, release 1.32 beta of port by Andrew Holdsworth (aka Musus Umbra)
    UnixFrotz232R2Std10.tar.gz
    Frotz version 2.32 for Unix, Unix release 2, ported by Galen Hazelwood.
    WinFrotzR53.zip
    Frotz version 2.32 for Windows 95/NT, release 5.3 of port by Rich Lawrence
    dumb-frotz-2.32r1-std10.tar.gz
    Dumb-Frotz, a frotz port for a standard C library and a dumb terminal, ported by Alembic Petrofsky. Version 2.32r1.
    frotz-2.32-4.i386.rpm
    Frotz version 2.32 for Red Hat Linux, compiled by Joe Mason. Includes zstrict patch.
    frotz-2.32-4.src.rpm
    source code package
    frotz-2.32-beos.zip
    Frotz version 2.32 for BeOS, ported by Stephen van Egmond. PowerPC and Intel x86 versions included
    frotz-2.32R2Std10-SunOS56sparc.tar.gz
    binary executable of Frotz 2.32 for SunOS 5.6 (sparc), ported by S. van der Groov
    frotz201_std02_os2b7.zip
    Frotz version 2.01 for OS/2, beta 7 (29-Sep-96), ported by Christopher J. Madsen
    frotz_HPUX.lzh
    Frotz for HP-UX, by Christos Dimitrakakis (olethros@geocities.com). Needs lha or lzh to decompress.
    frotz_zstrict_patch
    a source code patch for UnixFrotz 2.32r2 (but also applicable to other Frotz versions) that adds a check for common opcode errors and a command line option for how to deal with these errors. Written by Torbjorn Andersson, based on Andrew Plotkin's patch for Zip 2.0.
    frotzpl3.zip
    Frotz Plus release 3, i.e. Frotz version 2.01 with support for SVGA and SoundBlaster 16 for DOS added by Linards Ticmanis.

    ZIP - Infocom Z-code Interpreter Program V2.0 07nov93, by Mark Howell. This interpreter will run all Infocom V1 to V5 games. It includes support for timeouts in Border Zone, screen displays in Beyond Zork and implements the #record debugging function, etc. Some of the extended versions will also run Inform V7 and V8 games.

    Acorn_Zip2000_133_Std1.0.spk
    Zip 2000 version 1.33 for the Acorn Archimedes, by Kevin Bracey. Conforms to Z-Machine Standard 1.0 and supports V1-V8 games, and is now freeware.
    AmigaZIP_V8.lha
    ZIP for the Amiga (OS 1.2 or better required) with support for Inform V8 games and a better random number generator, by Werther 'Mircko' Pirani
    MaxZip-177.hqx
    MaxZip version 1.7.7, by Andrew C. Plotkin. Full Macintosh application with many features, based on Mark Howell's ZIP 2.0.7. Fat Macintosh binary, requires System 7 and 1600K of free memory.
    MultiAventures1.8.3.hqx
    MultiAventures V1.8.3, by Pierre Tremblay: 1 application with 8 interpreters in 3 languages, a Macintosh program that can play AdvSys, AGT, Infocom, Scott Adams, Level 9, Apple II Eamon, Quill, and C64 Basic games. The user interface is in English, French, and German.
    ZIP_141_68k.cpt
    ZIP Infinity version 1.4.1 for 68K based Macintosh
    ZIP_14_68k.cpt.bin
    ZIP_14_PPC.cpt.bin
    and 1.4.0 for PPC Macintosh, by Matthew T. Russotto. Based on Mark Howell's ZIP 2.0, and updated for greater compliance with Graham Nelson's 0.2 specification, ZIP Infinity can play any V1-V5 or V8 Infocom or Inform game on a Macintosh. Support for sound, multiple fonts, user-selectable screen size, the Beyond Zork graphics font, and the QUETZAL common save file format are included. The original 1-window interface is still present.
    Zip2000_Source_133.tar.gz
    Source code for Zip 2000 version 1.33, by Kevin Bracey
    atarizip.zoo
    Atari ST executable for TOS and MiNT, ported by Charles Briscoe-Smith
    glkzip-0.1.tar.gz
    GlkZip 0.1, by Daniel Schepler. This is a port of XZip 1.8.1 to Glk. Source code only, tested with XGlk and GlkTerm, but should work with any port of Glk.
    jzip.bebox.tar.gz
    BeBox executable of JZIP V2.0.1g, ported by Tom Spindler
    jzip201g.zip
    JZIP V2.0.1g (05dec95) source code, by John Holder. JZIP is based on Mark Howell's version 2.0 source code and incorporates changes for Borland C (DOS), Bureaucracy under Unix, a better random number generator, and Inform V8 games
    jzip202beta-std10-unix-052798.tgz
    JZIP V2.0.2 beta (27may98) source code, by John Holder. Changes since 2.0.1 include Z-Machine Standard 1.0 compliance, support for the Quetzal save format and optional Zstrict error checking.
    jzipstb3.zip
    John Holder's JZIP Infocom interpreter, ported to the Atari 16 and 32 bit computers with MiNT or TOS by Dancer. Version 2.01f beta 3
    jzpc201g.zip
    DOS executable of JZIP 2.0.1g (22nov95), by John Holder
    macZeX.1.1.binary.sea.hqx
    macZeX.1.1.source.sea.hqx
    Macintosh with proportional and styled text by Greg Ewing (the source code for an example game with styled text is in infocom/compilers/inform/examples/macZeX_GoldSkulX.inf)
    wzip21.zip
    MS Windows executable version 2.1, ported by Ron Murray
    xzip-1.8-1.i386.rpm
    xzip-1.8-1.src.rpm
    xzip-1.81-1.i386.rpm
    Red Hat Linux RPMS of XZip version 1.8.1, ported by Joe Mason binary package for Intel based systems
    xzip-1.81-1.src.rpm
    source code package
    xzip181.tar.Z
    XZip version 1.8.1, by Andrew C. Plotkin an X Window implementation based on Mark Howell's ZIP 2.0.7. ANSI C source code.
    zip-sgi.tar.gz
    Executable for Silicon Graphics Irix 5.3, ported by John Kennedy. Includes a fix for the termio under Irix, and adds V8 support.
    zip.sh.Z
    portable source code for Amiga, DOS (MSC), BSD Unix, and VMS
    zip200.zip
    DOS executable version 2.00 by Mark Howell
    zip2_203.zip
    ZIP 2.0 ported to OS/2 Warp by John W. Kennedy. Supports V8 games. Includes OS/2 source and the original source.
    zip4os2
    same function as zip4warp for OS/2 2.0 and 2.1; the only difference is that zip4warp uses new features that make the binary executable smaller. Unpack with OS/2's built-in UNPACK utility.
    zip4warp
    same as zip2_203.zip without the source code to make a smaller package for players only. Unpack with OS/2's built-in UNPACK utility.
    zip_zstrict_patch
    a source code patch for ZIP 2.0 that adds a check for common opcode errors and a command line option for how to deal with these errors, by Andrew Plotkin
    zipgs1.0a1.sea
    ZIP 2.0 ported to the Apple IIGS by Matt Ackeret, version 1.0a1, 27nov94 self-extracting archive packed with ShrinkIt GS
    ziplinux.patch
    patches to ZIP source code for Linux and other non-BSD Unix variants, by Sander van Malssen

    The InfoTaskForce Infocom interpreter most versions of this classic interpreter, which helped launch the modern revival of interactive fiction, have become outmoded. There are some notable updates, however.

    acorn8m.ddc
    binaries for the Acorn Archimedes RISCOS, ported by Bryan Scattergood. Release 1.8m of his port, includes full desktop integration with drag and drop, V1-V8 support (except V6), proportional font support, command history, command line editing, compressed save files, and double-click load/restore.
    psion8m.zip
    binaries for the Psion Series3, ported by Bryan Scattergood. Release 1.8m of his port, includes full font and dialog support, optional undo, compressed save positions, command history, command-line editing, and support for V1-V8 games (except V6).
    unix8m.tgz
    source code for Unix/X11, ported by Bryan Scattergood. Release 1.8m of his port, uses resources for configuration under X11. Supports V1-V8 games (except V6), color and proportional fonts, command history, command-line editing, and compressed save files.
    win8m.zip
    binaries for Windows, ported by Bryan Scattergood. Release 1.8m of his port, includes proportional font and standard dialog support, dynamic window resizing, command history, command line editing, compressed save files, and support for V1-V8 games (except V6).
  5. What if there's no interpreter for my machine?

    All is not lost. It may be that Infocom released their games for your computer (their games were released for the TRS-80, the Apricot, the Kaypro, the Texas Instruments TI 99/4a and many other old machines), so if you can buy a second-hand copy of a game in version 3 or version 5, then it will come with an interpreter for that version. See the file ftp://ftp.gmd.de/if-archive/infocom/info/fact-sheet.txt to find out which games were in which versions.

    The interpreter shipped with an Infocom game typically comes with the name of its story file hard-wired into the interpreter; you will have to change this to the name of the story file you want to play; for example, if you have bought a copy of "Sherlock" (a version 5 game) and want to play "Curses", edit the interpreter using a binary editor, search for the string "SHERLOCK.DAT" (or whatever the story file is called on your machine), and replace it with "CURSES.Z5\0XX" (the "\0" is meant to be a zero byte to terminate the string, and the "X"s pad out the new string to the same length as the previous string).

    Alternatively, you could try porting one of the existing portable interpreters to your machine, or writing a new one from scratch. If you attempt the latter, you'll need to read the "Z-code" Specification: .

  6. What do I do if I can't get these programs to work?

    Try e-mailing the author of the program, or asking for help on the Usenet newsgroup rec.games.int-fiction.

  7. How do I write Z-code games?

    That's well beyond the scope of this document, but to start with, you will need Graham Nelson's "Inform" compiler (Infocom's "ZILCH" compiler was never made available to the public). Inform has been ported to most popular computing platforms, and while the extensive documentation for the language has some faults, nevertheless it is quite thorough and sets a mark for literacy and entertainment in software documentation that is tough to beat.

    The Inform Home Page at http://www.gnelson.demon.co.uk/inform.html is the best place to start.


Adapted from the original "How-To" by Gareth Rees, October 1995.
This version stopped being current on 20 July 1999.