Z-code

Z-code is an Interactive Fiction (IF) file format. A Z-code file contains a series of instructions for the Z-machine, a virtual machine designed by Infocom. A Z-code file typically contains an IF game which can be played using a Z-code interpreter. It is sometimes referred to as Infocom format. There are eight versions of Z-code. The first six were created by Infocom, while versions 7 and 8 were created by Graham Nelson, the author of Inform. Version 6 supports sound and images.

Infocom games were developed in the higher-level language ZIL, which was compiled into Z-code using a compiler that's apparently lost now.

Text within a Z-code file is represented using the specialized character encoding ZSCII, a variant of ASCII that is encoded for compactness and a bit of obscurity (nothing resembling normal ASCII strings is visible in a raw dump of a file, making it harder to cheat in games by seeing descriptions this way).

Z-code files can be packaged in Blorb container files along with other resources needed for the game, such as images and sounds.

Extensions

 * .z1 - .z8 (current convention, depending on what Z-code version the file is)
 * .DAT (used by Infocom for most of their commercial releases)
 * .ZIP (rarely seen, conflicts with the common extension used for ZIP compression)

Interpreters
A z-code game can be played on any platform that has an appropriate interpreter. Most interpreters can handle any Z-code version, although version 6 is not as widely supported as the other versions.


 * Frotz (cross-platform, open source, website)
 * iPhone version
 * Gargoyle (cross-platform, open source, website): can interpret multiple IF formats, including Z-code
 * GLUZMA (Glulx, open source; big-endian ZIP only)
 * Parchment (web, open source, website): browser-based Z-code interpreter.
 * Spatterlight (Mac OS X, open source, website): can interpret multiple IF formats, including Z-code
 * Twisty (Android, open source, website, Google Play)
 * Zoom (Mac OS X and Unix-like, open source, website) can interpret multiple IF formats, including Z-code.
 * ZORKMID (cross-platform, open source, written in C, include debugging functionality; ZIP only, supports big-endian and small-endan story files)

The IF Archive contains many other interpreters:
 * IF Archive: Multi-system interpreters
 * IF Archive: Z-code interpreters

Other Tools

 * Inform is an IF development system by Graham Nelson that outputs Z-code.
 * ZILF by Jesse McGrew is a reimplementation of Infocom's ZIL development system. Outputs Z-code.
 * IF Archive: Z-code compilers
 * IF Archive: Z-code tools
 * Run Z-code games on PDP-10 with TOPS-20

Sample Files

 * Advent.z5: Adventure aka Colossal Cave, the original 350 points version ported to Inform by Graham Nelson
 * SoFar.z8: So Far, by Andrew Plotkin
 * zdungeon.z5: Zork, by Infocom
 * https://telparia.com/fileFormatSamples/document/zcode/

Information

 * IFwiki: Z-machine
 * The Z-Machine Standards Document (version 1), by Graham Nelson
 * PDF version, zipped

Infocom documentation:
 * ZIP
 * EZIP/XZIP
 * YZIP