Hidden Features, Easter Eggs, and Bugs
A forensic investigation of the binaries: unreferenced text, developer artifacts, deleted content, and bugs.
Easter Eggs
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.
"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.
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.
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.
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.
Context-Sensitive Humor
| Input | Response |
|---|---|
| "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
Seven Gap Action IDs
Seven action IDs exist with allocated pointer table entries but empty text. These represent deleted or never-completed content:
| Gap ID | Pointer | Context (between) |
|---|---|---|
| 54 | $57CD | "What a Mega programmer!" (53) and mine-detector dial (55) |
| 65 | $59D0 | Galactic President poster (64) and uniform removal (66) |
| 72 | $5A6E | "dogs were nearly upon him" (71) and "dogs closed in" (73) |
| 83 | $5DA2 | Dog chase ending (82) and window gazing (84) |
| 86 | $5E2A | Sniper death (85) and door-frame bullets (87) |
| 119 | $6439 | "lost his grip" (118) and "light shattered" (120) |
| 193 | $701F | Medikit 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.
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
Three Misspellings of "Harper"
| Action | Text | Should 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.
Missing Spaces (40-Column Artifacts)
| Action | Text |
|---|---|
| 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.
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.
"conspicious"
Action 57: "Harper felt rather conspicious..." should be "conspicuous."
Technical Findings
Part 1 and Part 2 Use Completely Different Compression Tables
| Table | Size | Match? |
|---|---|---|
| Character table ($8604) | 96 bytes | All 96 bytes differ |
| Digram characters ($86CC) | 12 bytes | All 12 bytes differ |
| Digram boundaries ($86D8) | 12 bytes | All 12 bytes differ |
| Dictionary data ($8684) | 72 bytes | 71 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.
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.
Perfect Pointer Table Integrity
- Zero duplicate pointers (every action ID maps to a unique address)
- Zero pointer overlaps (all text blocks are non-overlapping)
- All 255 pointers fall within
$4E71-$75F0(no out-of-range addresses) - No null pointers or garbage values
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.
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 Target | Result |
|---|---|
| XYZZY, PLUGH (classic magic words) | Not present in either binary |
| DEBUG, CHEAT commands | Not present |
| Hidden developer messages | None beyond credits and SMART EGG watermark |
| Additional credits | Only Harris, Brooks, and Hassan |
| Secret rooms or unreachable states | None found in text data |
| Cross-part data in Part 1 | Only "No help available until Part Two" |
| Buffer overflows in text decoder | None (page boundaries correctly handled) |