Hidden Features, Easter Eggs, and Bugs

A forensic investigation of the binaries: unreferenced text, developer artifacts, deleted content, and bugs.

Contents

  1. Easter Eggs
  2. Deleted Content
  3. Bugs and Typos
  4. Technical Findings
  5. What Was NOT Found

Easter Eggs

Easter Egg

The "SMART EGG!" Watermark

Address: $9B2E (Part 1) / $A674 (Part 2)

Raw bytes: 53 4D 41 52 54 20 45 47 47 21

A 10-byte developer signature embedded between two code routines. It sits in a gap between a JMP $9B01 instruction and a "fill line with spaces" subroutine, never executed as code. This is a classic 8-bit technique: the bytes are jumped over, making the gap available for a signature. The exclamation mark at the end adds a touch of pride.

Not displayable by any in-game command. A scan for the 16-bit address $9B2E found zero references in the entire binary. Purely a binary watermark.

Easter Egg

"What a Mega programmer!"

Action 53 at $57B7

What a Mega programmer!

The word "Mega" is displayed in cyan while the rest is yellow, deliberately highlighting it as a reference to the C64 computing magazine Mega. Almost certainly triggered by typing "MEGA" as a command. The multi-color formatting proves it references the publication specifically, not the adjective.

Easter Egg

Sentiment Detection (Profanity Handler)

Actions 168-169

You sound rather negative.
You sound rather positive.

The SMART EGG parser has rudimentary sentiment detection. Rather than a generic "I don't understand" for unrecognized input, it classifies certain words as positive or negative and responds accordingly. Displayed in cyan (the parser message color), confirming these are meta-responses about the player's input.

This effectively serves as a profanity handler without being explicit. Instead of "Watch your language!" it deflects with dry wit. A surprisingly sophisticated feature for a 1987 budget title.

Easter Egg

The Red Herring Box

Action 44

In the box, Harper could see... a clupea harengus, an open hint sheet

"Clupea harengus" is the Latin scientific name for the Atlantic herring. The box contains a literal red herring and a hint sheet, a fourth-wall joke about adventure game conventions. One of the game's cleverest self-aware moments.

Easter Egg

The Missing Footnotes

The game implements footnotes 1, 2, 5, 6, 7, 9, 10, 11, 12. Footnotes 3, 4, and 8 are deliberately absent.

No such footnote in Part One.

This is deliberate design, not a bug. The non-sequential numbering creates the illusion of a larger document (perhaps a war correspondent's report). The response explicitly suggests these footnotes may exist in Part Two, building anticipation for the second half.

Easter Egg

Context-Sensitive Humor

InputResponse
"MEGA" (or similar)"What a Mega programmer!"
Inappropriate action"Mmmm... A tempting thought!"
Mumble/say with no target"Harper mumbled something to himself."
Try to pick up the dog"The little dog scampered out of reach."
Pick up too many things"Not three pieces of rubble, surely? No one can manage three pieces of rubble!"
Go to the bathroom"A few moments later there was a sound of running water and he stepped out again, visibly relieved."
Smell"Harper's unerring nose for news detected nothing extraordinary."

Deleted Content

Cut Content

Seven Gap Action IDs

Seven action IDs exist with allocated pointer table entries but empty text. These represent deleted or never-completed content:

Gap IDPointerContext (between)
54$57CD"What a Mega programmer!" (53) and mine-detector dial (55)
65$59D0Galactic President poster (64) and uniform removal (66)
72$5A6E"dogs were nearly upon him" (71) and "dogs closed in" (73)
83$5DA2Dog chase ending (82) and window gazing (84)
86$5E2ASniper death (85) and door-frame bullets (87)
119$6439"lost his grip" (118) and "light shattered" (120)
193$701FMedikit description (192) and stimulant label (194)

The pointers point to the $FF terminator at the end of the preceding text. The engine cannot compact pointer tables without renumbering all game logic references, so empty slots remain.

7 out of 255 entries (2.7%) is a low cut rate, suggesting the game was well-planned and most content made it to the final version.

Anomaly

The Action 86 Residue

Unlike other gap actions (which point to a bare $FF terminator), Action 86's pointer ($5E2A) points to byte $E4 followed by $FF. This decodes to a single space character.

$5E2A: E4 FF
$E4 XOR $FF = $1B = char table index 27 = $20 = PETSCII space

Action 86 was not fully deleted. Given its position between the sniper death sequence and the door-frame bullet-dodge scene, it likely contained an intermediate combat step cut during playtesting to improve pacing.

Bugs and Typos

Bug

Three Misspellings of "Harper"

ActionTextShould Be
17"Haper stumbled about in the intense light..."Harper
26"A mechanism clicked behind the door as Haprer turned the handle..."Harper
180"Haper popped into the bathroom..."Harper

Three different misspellings of the protagonist's name. These are typos in the original script by Ron Harris rather than encoding errors.

Bug

Missing Spaces (40-Column Artifacts)

ActionText
4"Elliot'sshoulder" (missing space)
7"hearda low moan" (missing space)
8"untilhe found" (missing space)
11"previousowner" (missing space)
19"thisadventure" (missing space)
43"witha pleasing splash" (missing space)
47"Newsman'sGuild" (missing space)
99"andHarper side-stepped" (missing space)

Caused by the C64's 40-column screen width. The author tracked line breaks mentally when writing text; spaces at the end of a line were sometimes omitted because they would be invisible at the start of the next line. But the compressed text stores content as a continuous stream without line-break awareness, resulting in concatenated words.

Bug

Color Code Splitting "and" in the Panoramic View

Action 78 at $5CC1

shops, factories an{WHITE}d just outside, the dome, a spaceport.

A {WHITE} color control code splits the word "and" mid-word. On the C64 screen, the letter "d" changes color. The code should appear before the space preceding "just," not inside "and." Particularly notable because Action 78 is the game's most important environmental description.

Bug

"conspicious"

Action 57: "Harper felt rather conspicious..." should be "conspicuous."

Technical Findings

Technical

Part 1 and Part 2 Use Completely Different Compression Tables

TableSizeMatch?
Character table ($8604)96 bytesAll 96 bytes differ
Digram characters ($86CC)12 bytesAll 12 bytes differ
Digram boundaries ($86D8)12 bytesAll 12 bytes differ
Dictionary data ($8684)72 bytes71 of 72 bytes differ

The SMART EGG compiler regenerates optimal compression tables for each part based on text content. A Part 1 decoder cannot decode Part 2 text without Part 2's tables.

Technical

Zero Orphaned Text Blocks

A scan of the entire action text data region ($4E71-$75F1) found zero orphaned text blocks. Every compressed text segment is referenced by at least one pointer table entry. When text was deleted (gap actions), the pointer was adjusted to the terminator. No dead text lurks in the binary.

Technical

Perfect Pointer Table Integrity

Technical

The "ANYKEY" Dual Implementation

The press-any-key prompt exists in two forms: as raw PETSCII at $9C2B (hardcoded in the screen output routine for efficiency) and as compressed text in Room/System entry 16 ("anykey"). The hardcoded version is used at runtime because the prompt is so short and frequent that decompression overhead is not justified.

Technical

Engine Code Divergence Between Parts

5,598 of 5,632 bytes differ in the $8600-$9C00 range between Part 1 and Part 2. The engine was recompiled or heavily patched for Part 2, not simply copied.

What Was NOT Found

Search TargetResult
XYZZY, PLUGH (classic magic words)Not present in either binary
DEBUG, CHEAT commandsNot present
Hidden developer messagesNone beyond credits and SMART EGG watermark
Additional creditsOnly Harris, Brooks, and Hassan
Secret rooms or unreachable statesNone found in text data
Cross-part data in Part 1Only "No help available until Part Two"
Buffer overflows in text decoderNone (page boundaries correctly handled)