Debug code in Infocom's Hollywood Hijinx

Maybe this is already well known, but I stumbled over some debug code in Hollywood Hijinx. I’ve cut it together here to make it easier to read:

<CONSTANT P-PLAYER 68> ;"Char D"
<CONSTANT P-WINNER 65> ;"Char A"

<ASCII 84> ;"Char T"
<ASCII 79> ;"Char O"
<ASCII 77> ;"Char M"
<ASCII 65> ;"Char A"
<ASCII 83> ;"Char S"
	 <COND (<OR <AND <EQUAL? <GETB 0 56> ,P-PLAYER>
		         <EQUAL? <GETB 0 57> ,P-WINNER>>
		    <AND <EQUAL? <GETB 0 56> 84>
			 <EQUAL? <GETB 0 57> 79>
			 <EQUAL? <GETB 0 58> 77>
			 <EQUAL? <GETB 0 59> 65>
			 <EQUAL? <GETB 0 60> 83>>>
		<SETG P-VMERGE ,PLAYER>)>
<DEFMAC ZIL? ()
	<FORM ZERO? '<GETB 0 18>>>
<ROUTINE V-FLUSH ()
	 <COND (<AND <EQUAL? ,PRSO ,INTNUM>
		     <EQUAL? ,P-NUMBER 33>
		     <OR <ZIL?>
			 <NOT <ZERO? ,P-VMERGE>>>>
		<GOTO ,P-NMERGE>
		<V-LOOK>
		<RTRUE>)>
	 <TELL "You can't flush that." CR>
	 <RTRUE>>

Which means (if I understood it correctly) that if the “user name” part of the header (offset 56) begins with “DA” or “TOMAS”, or if there is 0 (not the character “0”) where the serial number should begin (offset 18), you can type “FLUSH 33” to teleport yourself to a “Work Room” with exits to various parts of the game.

I don’t know if there is any Z-Machine interpreter that allows you to specify the user name, so you may have to edit the data file (or, preferably, a copy of the data file) if you want to see it.

7 Likes

neither Frotz, nor Fizmo nor Nitfol can specify username, AFAIK.

Best regards from Italy,
dott. Piergiorgio.

Windows Frotz allows you to set this, from the options dialog.

1 Like

Just tested it with Windows Frotz and it works! Good find!

As night falls the black limousine turns off the highway. It has all happened so fast, you think to yourself. Your Aunt passing away without any warning, the funeral this afternoon, and now this unusual stipulation in her will. The limo pulls up to the front of the house. "This is the end of the line," says the attorney, and you step out of the back of the limo. "Remember, your Aunt Hildegarde's will stated you will inherit her entire fortune -- if you can find the ten 'treasures' in one night."

He hands you a photo of Uncle Buddy and a letter, saying, "Her will instructed that I give you this photo, with the poem, to point you in the right direction. Also this letter, and here, you'll need this." He gives you a flashlight. "Meet me at 9 a.m. in the living room with all the 'treasures' and you'll inherit her entire estate," he says as the limo pulls away and disappears into the night's darkness.

HOLLYWOOD HIJINX
Infocom interactive fiction -- a zany treasure hunt
Copyright (C) 1986 Infocom, Inc. All rights reserved.
HOLLYWOOD HIJINX is a trademark of Infocom, Inc.
Release 37 / Serial Number 861215

South Junction
You're standing in front of the house where you spent many of your summers as a youngster. The old place is not as big as it seemed to you then, but it is still quite large. Stone pathways wind east and west around the house, and a larger main walkway leads north.

A life-size statue of Buck Palace, one of the stars of Uncle Buddy's talent stables, stands here. He's holding a bazooka pointing north.

>flush 33
Work Room
Work Room

                            Cellar                                   
                   Cannon     |     Crawl Space North                
                 Emplacement  |    /                                 
                          ____|___/                                  
                          |       |                                  
            Boat Dock ----| Work  |----Heart of Maze                 
                          | Room  |                                  
                          |_______|                                  
                         /    |    .                                
                        /     |     .                               
                    Attic  Upstairs  Bomb Shelter                    
                          Hall Middle 


>

Of course, there’s still the mystery of what - if any - significance “flush 33” has. My only impulse was to check who was the 33rd president of the USA. (Truman, so that’s probably not it…?)

1 Like

Oh, this is a very cool finding!

It’s a premonition of the Truman Show, where reality isn’t what it seems to be - it’s actually all rigged. :wink:

2 Likes

It’s a bit surprising to me that Infocom left debug code in some places in games, even in production builds. Didn’t they have constructs for conditional compilation?

1 Like

The game will also equip you with what you typically need for each room. :slight_smile:

1 Like

Yes. And there are stretches of debug code that are commented out, too.

But the production interpreter wouldn’t set the user name, so there’s no risk of players seeing it. No real harm unless they were up against a game file size limit.

2 Likes

Hollywood Hijinx is a small game for its time, so I guess there was no danger of that.

The one Infocom game I can remember that has debug code that you can access without any trickery is The Witness:

$DBG toggles debugging on or off. This will cause a lot of debug messages to be written, mostly about handling the player’s action and objects in the room. This is probably the most interesting bit, but it also enables some further debug commands:

$TANDY toggles the “Tandy” bit on or off.
$WHR displays a list of where all the actors are.
$WHR object moves the player into object, so presumably you’re supposed to specify a room.
$WHR object1 object2 looks like it’s supposed to move object2 into object1, but I can’t get it to work reliably.

1 Like

I’m a little fuzzy on this point. Did the user name come from the original imp’s login on their development machine (presumably a minicomputer)?

Mainframe. They used a PDP10.

1 Like

actually the PDP line was what defined the minicomputer…

Dunno about DECsystem 20, but not few DEC multiuser OS indeed used (also) numeric usernames (TSS-8 and edusystem-8, for example), so I guess that jnelson’s hypothesis can be right, or at least not far off.

But, albeit I don’t know if in US english (and US clinical practice…) is the same, but here in Italy, doctors when hearing with the stetoscope, ask the patient to say “trentatrè”, that is… the number 33 ! and this can make sense in a debugging context.

Best regards from Italy,
dott. Piergiorgio.

1 Like

Pretty sure PDP 10 is considered mainframe, whereas PDP11 is considered the smaller mini computer. I got this from Digital Antiquarian series.

Nice trivia there about fluff 33.

1 Like

If you’re using the latest Gargoyle, you can add the following to your Bocfel config file to provide a username for Hollywood Hijinx:

[37-861215]
username = TOMAS

On Unix, the config file is $HOME/.config/bocfelrc; on Windows it depends on the environment variable %APPDATA% or, failing that, %LOCALAPPDATA%. To see the value of an environment variable, you can run the following at a command prompt:

echo %APPDATA%

The config file is called bocfel.ini and lives in that directory.

The next Gargoyle release will make it much easier to edit this config file; but for now it’s a very manual process.

1 Like

Unfortunately, it’s the same equipment for every direction: the green match and the lit flashlight. My memories of the games are pretty hazy though, so I don’t really remember how helpful this is.

1 Like

Hope that bocfel (and the rest of Gargoyle) can handle better the font and window configuration (I’m rather oldskool, and set every graphic 'terp to 80x25 and fixed-width font (I use Inconsolata, whose has even the proper zero glyph (the slashed one) )

sorry for the tiny OT, and
Best regards from Italy,
dott. Piergiorgio.

1 Like