Classic Text Adventure Masterpieces of Infocom (1996) - findings

Established against a physical pressing read on an Apple Silicon Mac with a Pioneer BD-RW BDR-XS07U. The general method and its pitfalls are in docs/imaging.md and docs/hfs-extraction.md; this file holds only what is specific to this disc.

Identity

Hybrid CD: one Mode 1 data track carrying an ISO 9660 catalog (260 KB slice, pointer structure only) and an HFS catalog (308 MB volume holding everything). Volume Masterpieces, created 18 June 1996, modified 22 June 1996. drutil status reports 150515 blocks; 150515 x 2048 = 308,254,720 bytes of user data is the number to verify any image against. 879 catalog entries: 113 directories, 766 files. See disc-info.txt for the captured TOC and slice layout.

The pressing is Redump-verified. A full raw dump made 2026-08-29 hashes byte-identical to redump.org disc 64685 (serial CDD-3640-101-U3); see checksums.txt. Every finding below therefore describes the reference pressing, not a variant or a damaged copy - including the LHSOUND.ZIP provenance question, now settled: Jokisch’s freeware sound package genuinely shipped on the commercial disc.

Structure

The HFS volume is the whole disc. MAC and PC are sibling folders alongside shared DOCS, PCDEMOS, ACRODOS, and DOS/Windows installers at root. There is no separate PC filesystem tree to merge - extracting the HFS volume once yields everything.

Mac and PC builds diverge for Sherlock, Seastalker, Wishbringer, Leather Goddesses, Planetfall, Arthur, Journey and Zork Zero. Do not merge the two trees by filename; keep them as siblings.

Zork Zero: how the changing border frames are built

The location-sensitive border frames (castle, outside, underground, plus the hint screen) are pictures 5-8, named CASTLE-BORDER, OUTSIDE-BORDER, UNDERGROUND-BORDER and HINT-BORDER in the leaked ZIL source. The game draws whichever frame SET-BORDER picks as a single <DISPLAY pic 1 1> - there is no platform branching in that code path, and picture geometry is queried at runtime through PICINF, so each platform’s picture library is free to cut the art differently behind the same picture numbers.

Where the PC columns get composited: in the r393 story file itself, confirmed by disassembly (routine at 0x1baf8 in ZORK0.ZIP). It draws the border picture at (1,1) - which on the PC is just the banner - reads the banner’s height and width back with PICTURE_DATA, selects the column pair for the current border (5 -> 497/498, 6 -> 501/502, 7 -> 499/500, 8 -> 503/504), then draws the left column at (1+height, 1) and the right column at (1+height, width-colwidth+1). Crucially the code stays platform-agnostic: each column draw is guarded by a PICTURE_DATA existence check, so against a Mac-style library with full-frame borders and no pictures 497-504 the same code draws the frame and silently skips the columns. The compiled SET-BORDER sits directly after it, matching the leaked source line for line; the leak (picture constants ending at 483, the Mac library’s count) simply predates the r393 border rework. Neither the leaked ZIL nor the shipped ZORKZERO.EXE (the generic 47,494-byte 6.71 interpreter) contains any of this - it is all r393 z-code. The split also makes sense on 1989 PC hardware: on a region change, redrawing a 640x37 banner and two column strips is far cheaper in EGA planar memory than repainting a full 640x200 frame.

Loose ends from the disassembly: the invisible PC-only pictures are read via PICTURE_DATA as expected (486, 487 and 496 observed), confirming the layout-metrics channel; the two 20x7 fragments 484/485 appear in an r393 picture-preload table alongside the U-BOX/D-BOX/BOX-COVER button pictures, so they belong to that on-screen button UI, though their exact draw sites use computed operands and were not pinned down.

Analyzed with scripts/picdir.py against this disc’s picture libraries, txd from ztools 7.3.1 against this disc’s ZORK0.ZIP, plus the ZIL source at https://github.com/historicalsource/zorkzero (globals.zil SET-BORDER/INIT-STATUS-LINE, picdef.zil).

Findings that correct or extend the published catalogs

Open items for this disc

None.

Resolved 2026-08-29: creation dates on extracted files. scripts/hfscopy.py now restores them from the MacBinary header via SetFile -d. The restored dates carry provenance: MAC:SOUND:S3 was created 1988-02-08 (the original Sherlock sound build), and Mac ARTHUR (1992-10-29) and ZORK I (1991-10-28) carry Lost Treasures-era creation dates under their 1995/1996 modification stamps, consistent with Activision reusing the earlier masters.

Resolved 2026-08-29: full-disc image with Redump-comparable hashes. dd bs=2352 count=150515 against the raw whole-disc device produced a track that hashes identical to the Redump entry; see checksums.txt and the method notes in docs/imaging.md.