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.)
- Original Zork, MDL version
- Zork 1
- Zork 2
- Zork 3
- The Witness
- Hitchhiker’s Guide
- A Mind Forever Voyaging
- Hollywood Hijinx
- Leather Goddesses of Phobos
- Beyond Zork
- Nord and Bert Couldn’t Make Head or Tail of It
- The Lurking Horror
- Plundered Hearts
- Border Zone
- Zork Zero
- Mini-Zork 1
- Mini-Zork 2
- Infocom Sampler
- The Abyss
- Restaurant at the End of the Universe
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. Thanks to Torbjörn Andersson for enthusiastic help tracking down more versions and info on them. And, of course, thanks to the Implementors who created these games in the first place.
Update, December 2019: Another cleaned-up source collection has been posted by Adam Sommerfield.
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
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.
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.
Four versions of the source, labelled according to the “US NEWS & DUNGEON REPORT” date (see
dung.mud; note that the 1979 version shows inconsistent dates). The 1981 version says “no longer being supported” and refers players to the commercial Infocom release.
Several runnable versions have been recovered from MIT tapes. These are available at the ITS project. I have not mirrored the executable files, because they’re only executable inside ITS (running on an emulated PDP-10). See this post for a list of Zork versions found. Visit the project page for information on setting up ITS; or
telnet its.pdp10.se 10003 to try it online.
You can try the ITS environment online! Telnet to its.pdp10.se, port 10003 (
telnet its.pdp10.se 10003). When it says “Connected…”, hit ctrl-Z. Then type
:login yourname. (Any name will work.) Then type
:adventis also available; that’s the original Crowther version. You can also try
It is worth noting that the 1977-78 versions introduce themselves by saying “Welcome to Dungeon”; the 1979-81 versions say “Welcome to Zork”. Of course the “Dungeon” versions still mention “Zork” in many places within the game.
— From this historical repo.
— From this historical repo.
— From this historical repo.
— From Bob Supnik.
— ITS emulator; see above.
An early version of Infocom’s ZIL compiler, written in MDL. The files are dated no later than early 1981; most are 1979-1980. This version includes both the compiler (ZILCH) and assembler (ZAP) stages.
The documentation has been gathered from the Internet Archive, the collection at frobnitz.co.uk, and other sources. Note that
.rno is Runoff and
.fwf is Scribe, two venerable markup languages for document formatting.
— Infocom document giving a quick summary of the ZIL language; undated.
— Infocom document on writing games with ZIL, written Oct 1982 by Marc Blank.
— Infocom document on writing games with ZIL, written 1989 by Steve Meretzky.
— Infocom document describing the Z-machine.
— Z-machine spec V3, written Dec 13 1982, updated 1984.
— Z-machine spec V4, written Oct 26 1984, updated 1985.
— Z-machine spec V5, written Oct 22 1986.
— Z-machine spec V6, written Nov 30 1988, updated 1989.
We have two standalone versions of the ZAP assembler, one early and one late.
The first is written in the MIDAS assembly language for the PDP-10. This version is dated Jan 7 1982. It was found within the minizork-r2 source directory (see below).
The second is written in C and dated March 1988. The comments say “Zinn Computer Company, for Infocom”, implying that the work was outsourced. The directory includes
.o and executable binaries, presumably in Sun architecture (the directory was labelled “sun”). From this historical repo. (A handful of other utilities are included, including
zsymtest. These appear to have to do with packaging game files onto disk for specific platforms.)
A third, earlier version can be found as part of the ZIL source repository above. This is MDL code dated “Jan 18 1980”. I’m not sure if it can be run independently of the rest of the ZIL toolset.
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.
— See note above.
— Labelled “Hack of 15.UG3AU5”. It differs only in the effaced serial number.
— Differs from r17 s821021 only in the effaced serial number.
— Differs from r15 s831107 only in the effaced serial number.
— Differs from r5 s830222 only in the effaced serial number.
— This 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.
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.
— From the patch archive; the serial number has been effaced but without correcting the checksum. The
$verifycommand therefore fails.
— Pre-release, labelled “sorcerer.beta”.
— Pre-release, labelled “sorcerer.gamma”.
— Test version, labelled “beta1.zip”.
— Test version, labelled “beta2.zip”.
— 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.
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
— Hack, effaced serial number.
— Variant r14 game file for Atari.
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.
— 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.
Note that many source files were deleted between r79 and the “rlater” version, so the GitHub repo error is particularly noticeable.
— Test version, labelled “first.zip”.
— Test version, labelled “prealpha.zip”.
— Test version, labelled “fullalpha.zip”.
— Test version, labelled “gamma.zip”.
— An early stage of the InvisiClues release. This contains the hints text (as
hints.zil) but otherwise is nearly the same as the r69 source.
— The release number is 32933 (165 with the high bit set). This fails with memory errors in modern interpreters. It may be a compilation failure or an intermediate compilation stage.
— Alpha test version.
— Beta test version.
— Beta test version “for James Hayes”.
— 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.
The patch archive contains two further hacks are which are identical to r59 s000001 except for release and serial; I have omitted these.
— This is identical to r50 s860711 except for release and serial.
— Another hack.
— Testing version, “first”.
— Testing version, “alpha”.
— Testing version, “beta”.
— Testing version, “gamma”.
— Testing version, “alpha”.
— Testing version, “beta”.
Unusually, we have full source code for the beta (r63) and gamma (r87) versions.
— No game file for the most current source.
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).
Many alpha and beta game files. Also two demo versions, which could be considered “Mini-Zork Zero”.
Note the early z5 version whose release number (46) is out of sequence. We have two source directories which appear to match this version. Originally this was one source directory containing “.zil” and “.beta” files; the “.beta” files are earlier, so I have moved them to a separate beta directory.
— Source is intermediate between r41 and r74; no game file.
— Source is intermediate between r41 and r74; no game file.
Torbjörn Andersson reports that this game file fails on modern interpreters when you exit the Carousel Room.
The sampler appears to have gone through several combinations of games. r26-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:
- sampler-1z: Tutorial plus Zork
- sampler-3zpi: Tutorial plus Zork, Planetfall, Infidel
- sampler-4zpiw: Tutorial plus Zork, Planetfall, Infidel, Witness
- sampler-3ztl: Tutorial plus Zork, Trinity, LGOP
- sampler-2zt: Tutorial plus Zork, Trinity.
- sampler-1b: Ballyhoo.
An incomplete and unreleased game by Bob Bates, based on the James Cameron movie.
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.
Very incomplete and unreleased. Two versions found.
An unfinished game by Tomas Bok. Bok worked for Infocom briefly before college (see this forum thread). Hypochondriac was a “fun project” he was working on in his own time.
The source package is Bok’s work directory, and contains several fragments of source code unrelated to Hypochondriac. Some of them (
maintenance.zil) are from an incomplete sci-fi game titled “Search ‘n Rescue”. Others are source files from Infocom games (Zork, LGOP, etc), modified while Bok was experimenting with ZIL.
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”.)
A regression test suite for Infocom’s Z-code interpreters. No source code found.
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.
Cataloged by Andrew Plotkin from sources at
Last updated September 18, 2020.