The Obsessively Complete Infocom Catalog

This site is my attempt to collect every single version of each Infocom game, both source code and compiled game files. I have labelled each package with release and serial number information where possible. (Infocom serial numbers were a timestamp of the compilation date, which is very useful for reconstructing the development sequence.)

Jason Scott began this process in April of 2019, when he posted a large collection of Infocom source code on GitHub. Source code and compiled files, in fact.

This was tremendously exciting to fans and scholars of old-school text adventures. This material was known to be out there in private collections, but it had never been publicly available in this form.

Jason's collections are excellent, but they are an edited extract from one source: the so-called "Infocom Drive". They omit some published variations, beta-tests, and so on. I figure it's good to have every Infocom game file variation in one place.

Nonetheless, let me be clear: this site would not exist without Jason Scott's efforts. Thank you, Jason! Also thanks to Beaux Hemmer for maintaining the patch collection. And, of course, thanks to the Implementors who created these games in the first place.

Disclaimer

These are proprietary documents. The copyright rests with Activision. Mind you, Activision certainly doesn't have the development tools or the expertise to compile this source code any more. Quite likely they don't even have the source code any more. If it weren't for private collectors passing it around, this material would be entirely lost.

Like Jason, I believe that the historical value of these documents to the IF community outweighs the rights of the legal owner. As I wrote in April, copyright is a balance. Activision has not commented on the matter.

Differences from the GitHub release

The GitHub repositories structure the source code as a sequence of commits, showing the development process. This site packages each source directory separately.

This site includes game files collected from original game releases. These have historically been collected as "patch files". This was a legal figleaf; it allowed a user to transform a legally-owned game file into a different version, without actually distributing copies of each version. I have used those transforms to recreate all known game file versions.

Several of the GitHub repositories contain a common error: an old source file is sometimes not deleted in newer commits. For example, the Zork 2 source contains "crufty.zil" in r22 and r48, but this file has been removed in r63. The GitHub zork2 repo fails to delete it. This site avoids that error.

The GitHub repos omit personal email and individual developers' comments found in the source collection. This site does too; I followed Jason's example in this matter. It is not my intent to expose private communication, even thirty years after the fact.

However, I have included a few files that Jason omitted, primarily "browsie/feelie" manuscripts intended for the game package.

On Z-code and ZIL

The game files collected here are Z-code files, which may be played with any Z-code interpreter. The source packages contain ZIL source code and associated files.

I have not attempted to collect Infocom's interpreters. Extracting the interpreter binaries from the original disks (for each platform) would be fairly easy. Infocom's interpreter source has not been preserved, with one exception: the assembly source for their TRS-80 (Tandy) CoCo interpreter. (Thanks to Brian Moriarty, Carlos Camacho, and John Linville.)

Z-code files come in various versions. Infocom referred to these as "zip" (version 3), "ezip (version 4), "xzip" (version 5), and "yzip" (version 6). They used the ".zip" file suffix for all of these; the version is distinguished by the first byte of the game file. These days, ".zip" is a compression format, so we tag files as ".z3", ".z4", ".z5", ".z6".

This collection also includes a few ".z1" and ".z2" files recovered from very early releases of Zork 1. These have nonstandard serial numbers.

(In 1995, Graham Nelson proposed ".z7" and ".z8" as simple modifications to support larger game files. The Inform compiler and most modern interpreters support these versions. See the Z-code specification.)

Extracting the version, release, and serial number from a Z-code file is easy. I use this little Python script: zcanalyze.py.

Compiling ZIL source code into a game file requires more effort. Infocom's original ZIL compiler has been recovered, but only in a very early version (circa 1981; see below). However, ZILF is an open-source ZIL compiler which is under active development.

Some notes on the files

Despite the title of this page, it is not a complete collection! We have what's been recovered. In particular, there's no guarantee that the "most current" source corresponds to a final release.

All of the source packages contain source (.zil) files. Some also contain temporary files in various stage of compilation (.zap, .zabstr). Some contain compilation reports, design documents, or other related files. It's just a question of what was found in the source archive.

Release numbers are not always sequential. Infocom tended to reset the release number sequence after beta/gamma testing was over, or at other major development milestones. The serial number dates are more reliable, except where they've been obviously zeroed out.

It is perhaps amusing to learn that the "Solid Gold" editions (z5 re-releases with built-in invisiclues) were labelled as the "cheap" releases during development.

Games with sound (Sherlock, Lurking Horror) and graphics (most z6 games) may or may not include the media files in the source directory. The game files never include media. Even if present in the source, these files are probably not in a form that a modern interpreter can understand. See this page for portable versions of these media files.

A few game files are modified for the Macintosh. According to the internal notes, the modifications are "special flags" on certain objects. This apparently refers to setting the fixed-width font for descriptions with ASCII art. Infocom's Mac interpreter required this; it was the only one of its kind that defaulted to variable-width font display. (Most modern interpreters do.)

Source comment on the Mac versions:

The following is a list of changeds specifically for the Mac version:

SEASTALKER -- Special flags set on Sonarscope, control panel in sub and control panel in Bly's office.

ZORK2 -- Special flags set on magic well etching (top and bottom), Label on candied insects and stone cube in bank vault.

ZORK3 -- Special flags set on Royal puzzle and bronze plaque in cage.

ENCHANTER -- Special flags set on Translucent maze map, sign on path to brook and on fireworks for Filfre scroll.

SUSPENDED -- Special flags set on all three monitors: 1) Weather, 2) Hydroponics 3) Transit.

INFIDEL -- Special flags set for Hieroglyphs: bottom of stairs, scarab, book of dead, page in book of dead, beam, scroll in forward cabin, opening in top of pyramid, stone cube, bricks, recessed panel, west end of passage, north antechamber, south antechamber, room of Nephthys, Isis, Selkis, Neith, narrow hallway, cube room, cube south part, silver room, gold room, skeleton in room.

Z-code game files are sometimes found with zeroes or garbage data padded on the end. This does not affect the game behavior. I have generally ignored these variations. I've also ignored variations in byte 1 of the game file; these represent interpreter variations from different platforms, not game differences.

The patches archive contains several game files whose serial numbers are blank or nonsensical. These are always minor modifications of other game files, typically with only the serial number (and checksum) altered. We assume these are "crack" versions modified by users. I have included them regardless, as their dates are unknown; they may be contemporary with the original releases.

The patches archive also includes a set of game files which have been modified to bypass Infocom's "feelie" copy protection. I have omitted these, as they definitely postdate Infocom (they were released circa 1999). The feelie data is of course well-archived in any case.


And now, the games...


Original Zork, MDL version

The "mainframe" version of Zork/Dungeon, created at MIT between 1977 and 1979. This package, unlike the others on this site, is written in MDL.

Zork-MDL has been available for some time. It was posted on Bob Supnik's web site in 2003, perhaps earlier. (Ports to Fortran and C are also easily findable.) I include it here because, well, it's Zork.

Sources:

ZIL

An early version of Infocom's ZIL compiler, written in MDL. The files are dated no later than early 1981.

This source was originally archived at https://github.com/PDP-10/its-vault (the twenex/zork directory) by Lars Brinkhoff. See also the standalone repository at https://github.com/PDP-10/zil.

Sources:

Zork 1

Collector's note:

The Zork I Release 2 game file was extracted from a self-booting, copy-protected TRS-80 Model I disk. The disk itself was not an original and did not come with a label or packaging, but it seems to have been the early Personal Software release.

The r15 with no serial number is labelled "Hack of 15.UG3AU5". It differs only in the effaced serial number.

Sources:

Game files:

Zork 2

Sources:

Game files:

Zork 3

Sources:

Game files:

Starcross

The r17 sXXXXXX version differs from r17 s821021 only in the effaced serial number.

Sources:

Game files:

Deadline

Sources:

Game files:

Enchanter

The r15 s999999 version differs from r15 s831107 only in the effaced serial number.

Sources:

Game files:

Suspended

No game file for the most current source.

The r5 sXXXXXX version differs from r5 s830222 only in the effaced serial number.

The "alt" r8 s840521 appears to differ from the Mac version only in a text encoding error: "The breathing of the mechanisms has becomeIrrenothing lar..." It may be the result of a disk read error.

Sources:

Game files:

Planetfall

Sources:

Game files:

Infidel

We have two game files labelled r22, Mac and non-Mac. Neither of them seems to correspond to the most current source. (E.g.: the source mentions InvisiClues if you type HELP, but none of the game files contain that line.) I've labelled the current source "infidel-rlater" for lack of better information.

Sources:

Game files:

The Witness

Sources:

Game files:

Sorcerer

We find two pre-release game files, labelled "sorcerer.beta" (r67) and "sorcerer.gamma" (r85).

The patch archive also provides r67 s000000, in which the serial number has been effaced but without correcting the checksum. The $verify command therefore fails.

Sources:

Game files:

Hitchhiker's Guide

Two test versions: "beta1.zip" (r108) and "beta2.zip" (r119).

The r42 s850323 version is a hack of r56 with both the serial number and release (42, sure pal) changed. This is a rare example of a dateable user hack.

Sources:

Game files:

Suspect

We have two version of the r18 game file. They are identical except for an internal serial number (189 or 190), which is displayed if you type $VERIFY 1949.

We also find a variant r14 game file for Atari, and a hacked r14 with effaced serial number.

Sources:

Game files:

Seastalker

Many game file variations tagged with platform names ("tandy", "coco", etc). This is no doubt due to the difficulties of making the sonar display (status window) work across different screen sizes.

Sources:

Game files:

Cutthroats

Sources:

Game files:

Spellbreaker

The r63 sXXXXXX version appears to be based on r63 s850916 with the serial number effaced, but the data differs beginning at address 0x1CF00. The file does not appear to run correctly.

Sources:

Game files:

A Mind Forever Voyaging

Again, no game file for the most current source. Several test versions: "first.zip" (r1), "prealpha.zip" (r47), "fullalpha.zip" (r84), "gamma.zip" (r131). Note that many source files were deleted between r79 and the "rlater" version, so the GitHub repo error is particularly noticeable.

Sources:

Game files:

Wishbringer

We find game file r69, and another game file whose release number is 32933 (165 with the high bit set) and serial number 880609. This fails with memory errors in modern interpreters. It may be a compilation failure or an intermediate compilation stage.

Sources:

Game files:

Ballyhoo

Sources:

Game files:

Trinity

We have alpha (r1 s851202), beta (r1 s860221), and beta (r14 s860313 "for James Hayes") game files.

Sources:

Game files:

Moonmist

The r65 version is labelled "beta" in the patch archive. The high release number supports this assumption. However, its serial number is effaced, and it fails too badly at runtime to be a plausible beta release.

Sources:

Game files:

Hollywood Hijinx

Again, no game file for the most current source.

Sources:

Game files:

Leather Goddesses of Phobos

On the game file side, we have first (r1), alpha (r57), beta (r118), and gamma (r160) versions.

Two hacked versions. The patch archive contains two further hacks are which are identical to r59 s000001 except for release and serial; I have omitted these.

Sources:

Game files:

Beyond Zork

We have alpha (s870412) and beta (s870715) game files, both marked release 1.

Sources:

Game files:

Stationfall

No game file for the most current source. However, unusually, we have full source code for the beta (r63) and gamma (r87) versions.

Sources:

Game files:

Bureaucracy

Sources:

Game files:

Nord and Bert Couldn't Make Head or Tail of It

Sources:

Game files:

The Lurking Horror

Sources:

Game files:

Plundered Hearts

No game file for the most current source.

Sources:

Game files:

Border Zone

No game file for the most current source.

Sources:

Game files:

Sherlock

A conundrum, Watson. Four source directories appear. The base and -sound directories differ in only a few lines of zil. The -nosound directory has nosound.zil in place of gamesound.zil. The -ss directory is substantially different from the others; the header timestamps imply that it is an early development version. For what it's worth, the included version note says:

The SOUND version is the Release version. The NOSOUND version is currently NOT the release version but contains the Bob Bates updates that are in the SOUND version (without the sound code, of course).

Sources:

Game files:

Zork Zero

Many alpha and beta game files. Also two demo versions, which could be considered "Mini-Zork Zero".

Sources:

Game files:

Journey

Note the early z5 version whose release number is out of sequence.

Sources:

Game files:

Shogun

Sources:

Game files:

Arthur

We have four source directories, but only r41 and r74 have game files. The other two are intermediate between these, so I've labelled them "mid1" and "mid2".

Sources:

Game files:

Mini-Zork 1

Sources:

Game files:

Mini-Zork 2

Torbjörn Andersson reports that this game file fails on modern interpreters when you exit the Carousel Room.

Sources:

Game files:

Infocom Sampler

The sampler appears to have gone through several combinations of games. r55 contained samples of Zork 1, Planetfall, Infidel, and The Witness. r97 contained Zork, Trinity, and LGOP; but we find a parallel r8 which contains only Zork and Trinity, plus partial work on adding Ballyhoo. Comment from the r8 source:

This directory is for NSAMPLER stuff where all references to LGOP have been deleted. The XM4.* files are a stripped down Ballyhoo that could have possibly been inserted into XSAMPLER in place of LGOP, but wasn't. These files stand alone as a separate mini-game and would need to be integrated into XSAMPLER if ever used (when hell freezes over).

There's also a folder sampler-trinity, which appears to be a very partial tear-down (or build-up) of Trinity.

I have used the following labels:

Sources:

Game files:

The Abyss

An incomplete and unreleased game by Bob Bates, based on the James Cameron movie.

Sources:

Game files:

Checkpoint

An incomplete and unreleased game by Stu Galley. Curiously, the game file "spy.zip" originally found in this directory was not Checkpoint at all, but an early version of Journey.

Sources:

Restaurant at the End of the Universe

Very incomplete and unreleased. Two versions found.

Sources:

Game files:

ZilLib

This is the "new parser" that Infocom developed around 1987, late in its history. Their earlier games were based on the ZIL parser developed for Zork 1, and then copied from game to game in an evolutionary sequence.

ZilLib was an attempt at a next-generation parser to go along with the next-generation (z6) Z-machine. See this article from Infocom's 1989 newsletter.

The source code for Zork Zero, Arthur, Shogun, Abyss, and Restaurant all refer to the zillib directory. (And the zillib/parser directory contains include files that refer back to them; e.g. "parser.shogun".)

Sources:

ZipTest

A regression test suite for Infocom's Z-code interpreters. No source code found, but we have two game files, testing z3 ("zip") and z6 ("yzip").

Game files:

Generic

This appears to be a template for creating a new game. It includes a parser, a couple of rooms, and a couple of stub objects. Three game files were found with various dates and Z-code versions.

Sources:

Game files:


Cataloged by Andrew Plotkin from sources at GitHub and elsewhere.

Last updated August 08, 2019.