infocompendium
Tooling and notes for imaging and extracting 1990s hybrid CD-ROMs, with a focus on the Activision Infocom compilations.
The repo serves two purposes:
- Source material for filling gaps in the shared public knowledge of the Infocom catalog and related assets. Per-disc notes record what a physical pressing actually contains, including where it contradicts the published references.
- A mechanism for people to archive their own media. Each disc folder documents how to image and verify that specific disc, and the shared scripts do the extraction.
No disc content is stored here - only identification records, catalog listings, notes, and tooling.
These discs carry two filesystems over one set of data blocks: ISO 9660 for the PC side and HFS for the Mac side.
macOS dropped HFS support in Ventura, so modern Macs can identify these discs but refuse to mount them.
The scripts here work around that: image the disc at sector level, read the HFS volume with hfsutils, and rebuild the contents as an HFS+ disk image that current macOS mounts by double-click.
Status
| Disc | Imaged | Extracted | Notes |
|---|---|---|---|
| Classic Text Adventure Masterpieces of Infocom (1996) | yes | yes | Full raw dump hash-matches the Redump database entry; extraction verified, 766 files with all resource forks |
| The Lost Treasures of Infocom (CD, 1992) | yes | yes | First dump: no Redump entry exists; one 8 MB ISO carrying both Mac and PC trees |
| The Lost Treasures of Infocom II (CD, 1992) | yes | yes | Redump-verified; fourteen titles including Shogun, both platforms on one small ISO |
| The Zork Anthology (1994) | yes | no | Redump-verified; games live inside the ZORKANTH.RED installer archive, their builds identified from the container’s own records |
| Return to Zork CD-ROM v1.1 (1994) | yes | n/a | Redump-verified on all 26 tracks; the original pressing of the disc later revised for the Legacy Collection |
| Return to Zork / The Zork Anthology (Zork Legacy Collection, 1997) | yes | no | Redump-verified on all 26 tracks (data plus 25 audio); anthology games as loose files |
| GET LAMP (2010), disc 2 | yes (from existing rip) | n/a | Bonus DVD: Infocom catalog/ad scans, curated IF games; both discs of the set verified byte-identical to the Internet Archive’s published ISOs |
| Zork Zero, MS-DOS (1989) | yes (all five diskettes) | yes | The catalog’s first floppies: the dual-media retail box whose MG1 settles the IF Archive file’s provenance, with media-targeted graphics confirmed on both sides |
| 8-bit and 16-bit retail diskettes (Apple II, Atari XL/XE, Commodore 64, Atari ST, Amiga, Macintosh) | yes (twenty diskettes, twenty-one titles) | partly | Original 1983-88 media carrying builds no compilation does, several of them earlier than any cataloged release; see the de-facto builds and flux capture. The three Apple II V5 titles are complete: their stories continue onto the reverse side of the same diskette in an 18-sector format with no address fields, now fully decoded and checksum-verified, including Beyond Zork r49.870917 which no other medium carries |
Findings
What each disc actually contains, checked against the published references:
- The Lost Treasures of Infocom CD (1992) - one small ISO holds both platforms; the Zork Zero graphics omission and the padded story-file set that later products inherited both start here; Hitchhiker’s Guide still aboard.
- The Lost Treasures of Infocom II CD (1992) - fourteen titles including all three of the CD edition’s bonus games; every title shared with Masterpieces is byte-identical to it on both platforms, making this disc Masterpieces’ second source; and Shogun - which Masterpieces dropped - survives here, its Mac build on no other cataloged medium.
- Masterpieces (1996) - the Leather Goddesses boss key survives, Lurking Horror sound on the PC side, real save files with the copy-protection credentials in them, and a suppressed draft of the Very Lost Treasures essay - describing pulled content, including recovered Infocom mail - inside the Windows installer archive. The pressing is Redump-verified, so these describe the reference disc, not a variant.
- The Zork Anthology (1994) - an installer disc where the six classic games (Planetfall rides along as a bonus) occupy 1.3 MB of 246 MB, the rest being Return to Zork and demos, including a 1994 demo of the cancelled Planetfall sequel under the title “Floyd Strikes Back”; the installer archive’s own size and CRC records prove its games are the 1992 LTOI masters, byte for byte.
- Return to Zork CD-ROM v1.1 (1994) - the same game files as the 1997 pressing with a different install set, three swapped-out demos (Simon the Sorcerer, MechWarrior II, Richard Scarry), and audio tracks each four seconds shorter.
-
Return to Zork / The Zork Anthology (1997) - a mixed-mode disc verified against Redump on all 26 tracks; its anthology files are byte-identical to Masterpieces’ PC builds, and its Windows installer archive quietly carries the story files of fourteen Infocom games the product never advertises.
-
The historicalsource repositories (2019) - the leaked Infocom source treated as a compilation: 89 compiled story files across 46 repositories (19 of them hiding in earlier git commits, where most repos carry a shipped-release layer under the final one), cross-referenced against the disc builds. Post-release masters newer than anything shipped, alphas and betas, unreleased games, and a mislabeled Journey prototype hiding in the Checkpoint repository.
- Zork Zero’s MS-DOS floppies (1989) - the dual-media retail box shipped its graphics renditions by media format: MCGA on the 3.5” diskettes, EGA (by the disk-count arithmetic) on the 5.25”, CGA on both. Its MG1 is byte-identical to the IF Archive’s 1994 upload, settling that file’s provenance, and its story file and interpreter are byte-identical to the compilations’ - the CD lineage starts here.
- The de-facto builds - one row per game: the build the community treats as its version of record, and which collections carry it. Answers where to play a game.
- Releases on original media - the other question, per title: what each platform’s box actually shipped, read first hand from the diskette and checked against its own checksum. Eight of those builds are carried by no compilation and no leaked repository; all were checked against the Obsessively Complete Infocom Catalog’s hosted copies and agree, 14 of 21 byte-identical and the rest differing only in platform header bytes.
-
Media assets across the collections - one table for the six titles with graphics or sound: which collections carry which asset files, the byte-identity of every repeated file, and the decoded Sherlock sound-name map.
- The 8-bit retail diskettes - Apple II, Atari XL/XE and Commodore 64 originals carry builds no compilation does, four of them first releases: Wishbringer r68.850501, Enchanter r10.830810, Sorcerer r4.840131 and Spellbreaker r63.850916. The Spellbreaker disc also settles a question the source repositories could not: its story is byte-identical to the leak’s compiled r63, confirming that a “Revision NN (Original Source)” commit holds the build that actually shipped.
- The Apple II V5 diskettes’ second surface - Beyond Zork, Border Zone and Leather Goddesses Solid Gold each carry the first 100,864 bytes of their story on the labelled 16-sector side and the remainder on the reverse of the same disc, in an 18-sector format with no address fields: one sync mark per track, then eighteen data fields at a fixed stride. Every stock decoder reports that surface as 0/560, which is what a good disc of this kind looks like rather than a blank one. The format is now decoded from flux by scripts/xzip18.py, confirmed against
interlz5.c- which writes these images - and against Infocom’s own XZIP interpreter source, which reads them. All three stories are complete and verified: Leather Goddesses 231 of 231 sectors and Border Zone 303 of 303, each byte-identical to its known build but for three Apple II header bytes, and Beyond Zork all 630, matching its own declared checksum and disassembling to 1,719 routines. The decisive step was a drive setting, not software -gw read --densel L, which stops an HD drive inventing flux transitions on this format’s long gaps. - Trinity on the Atari ST (1986) - the first 16-bit disc in this catalog, and it carries v4 r11.860509, an earlier build than the r12.860926 held by both CDs and the leaked repository. The disc also preserved
LONGWATE.SAV, a saved game left on it by an earlier player - the first save recovered from original media here, its header carrying the story’s own release, serial and checksum, and its dynamic memory 98.1% identical to the game’s opening state. - Wishbringer Solid Gold on MS-DOS (1988) - the one shipped edition no compilation carried, read first hand from its retail diskette: v5 r23.880706 with checksum verified and the built-in hints present. The leak has only its source, so the original box is where this catalog gets the build.
The disc-agnostic method lives in docs/: what these discs are and how to identify them, the imaging traps and what works, flux capture and the 8-bit diskette formats, and extracting HFS volumes into modern images, plus the external references.
Layout
docs/
identifying-discs.md Hybrid discs, why macOS refuses them, identification. Start here.
imaging.md The imaging traps and the working raw-dump method.
floppy-imaging.md Flux capture: 5.25" formats, flippy second sides, merging reads.
hfs-extraction.md hfsutils, forks, timestamps, building mountable images.
references.md External references: Doherty, Plotkin, ztools, Redump.
media-assets.md Cross-collection table of the graphics and sound assets.
de-facto-builds.md The de-facto standard build of each game, per collection.
box-releases.md What the original boxes shipped, per title - the builds read
first hand from retail diskettes, eight of them carried by no compilation or repository.
scripts/
hfscopy.py Walks an HFS volume and copies it out preserving forks and metadata.
verify.py Checks a checksums.txt against the files it describes, hashing
.zst captures both as stored and decompressed; search roots are
given on the command line, never recorded.
raw2user.py Converts a raw 2352-byte/sector dump to 2048-byte user data,
verifying sector structure and printing Redump-style hashes.
picdir.py Lists the image directory of an Infocom V6 picture library
(PC .CG1/.EG1/.MG1, Mac PIC.DATA), either byte order.
get-ztools.sh Fetches and builds ztools (txd, infodump, pix2gif, check)
from the IF Archive into tools/ztools/ (gitignored).
a2gcr.py Decodes an Apple II 16-sector disk from flux, including
copy-protected disks a stock decoder reports as empty.
adf.py Lists or extracts an AmigaDOS floppy image (.adf), walking the
OFS/FFS block chains - Amiga files are not contiguous on disc.
fat12.py Lists or extracts a FAT12 floppy image (Atari ST, PC), descending
into subdirectories, naming
Infocom stories from their Z-machine header and matching save
files to the story they belong to.
macscreen.py Converts a raw 512x342 1-bit Mac screen dump (a StartupScreen
file) to PNG.
mfs.py Lists or extracts a Macintosh MFS (400K, pre-HFS) image, both
forks - hfsutils cannot read MFS.
xzip18.py Recovers the 18-sector second surface of an Apple II XZIP
(v5) diskette from Greaseweazle flux, and assembles the
complete story file. Reads .zst captures directly.
splittracks.py Splits a raw dump of a mixed-mode disc into per-track files
at Redump's boundaries, hashing each track.
isz.py Lists and extracts InstallShield 3 .Z archives (PKWARE DCL
decoder included), as found on 1990s Windows installer discs.
appleiso.py Extracts an Apple-extended ISO 9660 image natively, restoring
resource forks, Finder metadata and dates.
adcopy.py Copies a tree, folding AppleDouble ._ companions into real
resource forks and Finder metadata.
discs/
masterpieces-1996/ One folder per disc: identification capture, catalog
README.md listing, findings, and disc-specific build scripts.
disc-info.txt No disc content, just the material needed to archive
masterpieces-1996.hls.txt and verify a copy.
notes.md
build-masterpieces.sh
collections/
historicalsource/ Non-disc compilations cataloged the same way; here,
README.md the 2019 GitHub publication of Infocom's source code,
versions.md its 70 compiled story files enumerated and hashed.
checksums.txt
Quick start
Prerequisites:
brew install hfsutils
Given an HFS slice image already dumped from the disc:
./discs/masterpieces-1996/build-masterpieces.sh ~/Desktop/mp-hfs.img
That produces ~/Desktop/masterpieces.dmg, a compressed read-only HFS+ image with resource forks, type/creator codes, and modification dates intact.
If you are starting from a physical disc, read docs/imaging.md first - the imaging step has several traps that will silently produce a file full of zeros - then follow the per-disc steps in that disc’s README, e.g. Masterpieces.
Principles
Keep the raw sector image as the archival artifact and never modify it. Everything else in this repo produces derivatives - convenience copies for browsing and emulation. A derivative that has been re-cataloged will not hash against Redump, and that is fine, as long as the original is still around to verify against.