Tuesday, September 30, 2014

Adventure of the Week: The Door (1983)

I'm continuing to work my way through the 1983 collection known as The Rainbow Book of Adventures, as we find ourselves facing The Door, another BASIC-language contest written by Jean Roseborough for the TRS-80 Color Computer.

Unfortunately, despite its initial resemblance to a standard adventure, The Door is really just a guessing game -- so don't bother with this one, gentle reader.  I'm going to jump straight into the...

***** SPOILERS AHEAD! *****

We're initially asked HOW MANY TRIES?, an indirect way of setting the difficulty as the solution is randomized for each run.  I'll try 3, prompting a prescient YOU'LL NEVER MAKE IT! response.

There's only one room here, in which YOU ARE STANDING IN FRONT OF A LARGE DOOR.  The door is, at least, festooned with possible options -- a door knob, a door knocker, a button, and a bell.  I try to backspace at the command prompt so I can take a clean screenshot, and learn that, SORRY, NO MISTAKES ARE ALLOWED IN THIS GAME!  So this parser is going to be a bit of a taskmaster, and in short order I've decided to RI-- no, PU... and suddenly A LOUD EXPLOSION IS HEARD and the game is over.  I hadn't realized the consequences of failure would be quite so dire!

On my next try, I attempt to TURN KNOB, then KNOCK KNOCKER, and PUSH BUTTON -- leading into my third try.  On my fourth, I decide a more generous number of attempts may be in order, and go for 10.  Within three tries under this configuration, as luck would have it, I find that RING BELL works, and victory is ours!

Of course, getting the door to open is not the primary objective here -- the author encourages us to find as many of the 44 possibilities as we can, and it seems the successful choice is randomized each time we start.  We can't do anything mundane like EXAMINE DOOR to get a clue, and there's no INVentory.  Basically, the engine will accept anything we type, and if it matches the randomized solution phrase it has come up with, we win.

The next successful solution I came up with was PUSH DOOR, and after that, figuring out the actual odds of succeeding started to interest me more than the limited gameplay.  As it turns out, our odds aren't all that bad on a strictly probabilistic basis -- 1 in 44 -- though as there's no real parser operating here, we're allowed to make blind guesses using words that the game will never, ever recognize, raising the difficulty considerably.  I was hoping that the game's randomness would be something more like a game of Mastermind -- some tricky, hard-to-predict-but-solvable combination of moves on the door and its accessories that would reveal something new about the puzzle with each unsuccessful choice.  But The Door isn't opening for anything but a single expected phrase, chosen from a set of 44.

Cheating by breaking out and printing the contents of A$(X), at first, then going full-on Twenty One and dumping the successful phrase in the display code on line 5, I learn that some other viable answers are to BREAK DOOR (which I never tried, though I attempted to HIT DOOR and ATTACK DOOR), KNOCK KNOCKER (which I tried many times), GRASP KNOB, BATTER DOOR, RAP KNOCKER, PROD BUTTON, and THUMP KNOCKER.  And while the code checks for some of the traditional Anglo-Saxon curse words and duly admonishes the player with a NOW, NOW, LET'S NOT GET NASTY, it happily allows us to JERK KNOB and LIFT KNOCKER.  Less predictably, we can also CRY, CLAP HANDS, SCREAM, and WHISPER PASSWORD.

Unfortunately, it's not much fun to come up with any of these solutions, because the path to victory remains largely random -- even when we've discovered a solution that can work, its actual success is determined by chance, and unlikely to be the pre-selected answer next time around.  This tends to undermine the learning-by-experience vibe that makes most adventure games entertaining -- here, even if the player eventually discovers, say, ten workable phrases, the odds of one of them being usable in any given run, and hence the odds of the game being winnable at all, remain below 25%.  If we have the source code handy, then sure, 44 moves is always enough to arrive at the right solution.  But it never feels much like adventuring, and so The Door ends up being nothing more than a 44-sided die roll dressed up with a cardboard Dungeon Master.

Tuesday, September 23, 2014

Adventure of the Week: A One Room Adventure (1982)

This week, we're tackling A One Room Adventure, another contest winner from The Rainbow Book of Adventures.  This BASIC-language adventure was written in 1982 by Jorge Mir (who also wrote Dreamer) and published in early 1983, tackling a theme more commonly in recent interactive fiction -- an entire adventure that takes place in a single room.

The premise briefly summed up on the title screen is more explicit about the traditional adventurer's amnesia than the norm; our mission, of course, is to figure out what's going on and escape the room.

I hesitate to recommend A One Room Adventure for general use, only because there are a couple of design limitations (and/or bugs) that make two of the more complex puzzles more difficult to solve than ought to be the case; I had to dig into the code to figure out just what I was missing near the very end of the game.  So feel free to plunge straight into the...

***** SPOILERS AHEAD! *****

We start in the middle of a room, sitting on a chair, blindfolded.  We have nothing in inventory.  I try to ROCK CHAIR -- SORRY, I JUST DON'T KNOW HOW TO ROCK ANYTHING.  Trying to REMOVE BLINDFOLD reveals that, as we might have guessed, MY HANDS ARE TIED WITH A ROPE.  Even so, with a FEEL BLINDFOLD we somehow manage to not feel anything unusual, and we can't WIGGLE EYEBROWS to loosen it.

I try to RUB HANDS to loosen the rope, and receive an unexpected prompt -- ON WHAT?  I try ROPE, but NOTHING HAPPENED.  I try to LEAN OVER, but I DON'T HAVE ITGET UP suggests that I CAN'T GET ANYTHING NOW!, and STAND UP indicates that we don't know how to stand anything.  How about SHAKE HEADI DON'T HAVE IT TO SHAKEEXAMINE HEAD yields DID ANYBODY MENTION ANYTHING ABOUT ANY HEAD?  So this is one of those parsers that tries to look smarter than it is, by tossing any unrecognized words into a generic handler instead of confessing its dictionary's ignorance.

We can't JUMP or TIP or CHEW or EXAMINE anything, or RUB anything on anything else as far as I can tell, though EXAMINE and RUB seem limited due to the blindfold and not the parser.  So maybe we should work on removing that first.  I try lots of unrecognized phrases, to no avail, and finally I ask for HELP.  This game actually has a help system that accepts objects (BLINDFOLD in this case) and responds with hints, and it lets me know I'm on the wrong track -- we need to work on freeing our hands first.

I can't STRETCH ROPE, or SPREAD HANDS, or CLASP HANDS, or RUB HANDS on HANDS, or MAKE FIST, or SLIP HANDS, or SLIP ROPE, or LOOSEN ROPE.  I try to FEEL POCKET, FEEL PANTS, EXAMINE POCKET -- this, at least, revealing that I DON'T HAVE ANY POCKETS -- and FEEL CHAIR... aha!  I FEEL SOMETHING LIKE A NAIL.  Aha!  RUB ROPE on NAIL tears the rope.  Now we can UNTIE HANDS, UNTIE BLINDFOLD, and see that we are facing the room's north wall.

We see a chair, a desk, and a radio here, and the north wall specification is important -- there are actually four locations within this room that we can visit.  The east wall is near a toolbox, a couch, a big bird cage, and a wood burning stove; the south wall adjoins a door, and we see a switch on the wall, a picture, and a flower pot; and the west wall provides access to a window, some antique furniture, a coat rack, and a coat on the rack.  Most or all of these items will probably be needed if we are going to escape the room, presumably via the door or the window.

Of course, we can't just OPEN the DOOR or the WINDOW.  There are sunflowers growing in the flower pot, and the picture depicts a boat, in a nice wooden frame.  There is, of course, a vault revealed if we GET PICTURE, and opening it will require a combination.

The antique furniture near the west wall turns out to be a bookcase, containing a single notable item peculiar to the era in which this game was written -- IT'S A BOOK ON CB RADIOS.  So the radio must be one of those 1970s relics of Convoy fame.  The book tells us we need power, an antenna, and a microphone to operate the CB set.  The sports coat on the rack can be taken and examined -- EXAMINE POCKET here yields a pair of pliers, generally useful in adventure games.  After we're done checking it out, we can try to PUT COAT - WHERE? - ON RACK - PLEASE, ANSWER WITH ONE WORD - WHERE? - RACK -- but after all that discussion, I CAN'T.  Good thing, though, as if I had I might have missed the wire hanger remaining on the rack -- although my attempts to BEND HANGER and MAKE ANTENNA don't pan out.

Returning to the north wall, we'll check out the desk, which has a large drawer on the side -- locked, naturally.  Near the east wall, some closer examination establishes that the toolbox is rusted shut, the cage contains a white dove, the couch contains some pillows, and the stove is one of those pot-bellied Franklin stoves.  We can OPEN STOVE to find an electric cord, good.  The pillow seems heavy, but we need something to cut it with.

The chair is described as FRAGILE, but the pliers and toolbox are insufficiently heavy to BREAK CHAIR and so is the heavy pillow.  There's a can opener on the couch, now that we've moved the pillow, and at last we've hit the inventory limit -- 8 items, though as the map is so constrained this shouldn't be a big problem.  The birdcage is wired shut, but we can CUT WIRES - WITH WHAT? - PLIERS, then OPEN CAGE to release the dove.  All this establishes is that the cage is now empty, and it's A SPECIAL TYPE DOVE.  A carrier bird, maybe? 

Can we attach the cord to the radio?  One end is bare and the other end has a plug, but I fail in my attempts to ATTACH CORD and FIX RADIO and USE CORD.  Somehow, something I've done (maybe picking up the can opener -- yes, that's it) allows me to OPEN TOOLBOX now, yielding a crowbar, screwdriver, and hammer.  Even the crowbar and hammer seem unable to break the fragile chair, though.

We can TAKE SUNFLOWERS from the pot, and observe that THEY ARE KIND OF DRY.  We don't have any water, but SHAKE SUNFLOWER loosens some seeds, which fall to the floor, attracting a mouse who eats them and flees.  Hmmmm.  This seems like a problem to solve, but I fail in my attempts to somehow shake the seeds into the bird cage in hopes of catching the critter. 

Can we move any of the furniture?  The couch won't budge, but moving the desk reveals an electric outlet.  And I luck into the right verbiage -- we can CONNECT CORD - WHERE? - RADIO and then CONNECT CORD - WHERE? - OUTLET to successfully power the radio.  That helps me figure out that we can CONNECT HANGER - WHERE? - RADIO to create a makeshift antenna as well.  So we just need a microphone now, and we'll pause to take advantage of the game's SAVE command, rare in these magazine type-in adventures -- it even handles both cassette and disk saving.

What else can we try?  Experimentation establishes that the parser recognizes UNSCREW but not SCREW, so we must need the screwdriver for removal rather than assembly.  We can BREAK WINDOW with the crowbar, and the dove flies away.  That might be premature, so I'll re-LOAD my recent save.

I try to EXAMINE FLOOR and notice a small rug and some wire there, along with a familiar blindfold and piece of rope.  MOVE RUG reveals a loose floorboard, as it so often does in these games, and we can... well... EXAMINE BOARD suggests that IT SEEMS TO GIVE A LITTLE, but we can't PULL BOARD at all and can't PUSH BOARD "WITH JUST MY HANDS."  Having the crowbar in hand makes a difference, revealing a round box... but it's empty, and proves unsuitable for catching falling sunflower seeds.

There's a common bug here -- every time we PUSH BOARD, the round box re-materializes under the floorboard, and if it's in our hands the removal isn't counted correctly and we lose an inventory slot.  I'm down to seven usable slots now, and hoping that doesn't break the game. 

Since the floor proved productive, it's not a bad idea to LOOK CEILING -- where we see the dove flying around and nothing else of note.  It seems like it might be a good time to ask for HELP about the RADIO -- and we're encouraged to PLAY RADIO.  We tune in just in time to hear a local news report about a truck stop robbery and a missing driver, presumed kidnapped... it definitely sounds like we may be that person.  We're told that lots of our truck driver friends are driving around looking for us, so there's hope!

So maybe we should break the window, let the dove fly and see what happens.  This also has the effect of adding some glass to the mess on the floor, with which we can CUT PILLOW to reveal a magnifying lens.  Hmmmm... it's a SHERLOCK HOLMES OFFICIAL FAN CLUB LENS.  So we should be able to do some detecting with it.

Can we do anything else with the sunflowers and the mouse?  It's not clear that we can see a mouse hole anywhere at all, but if we try to LOOK HOLE we observe that it LOOKS LIKE IT WAS MADE BY A LARGE RAT.  Can we block it?  The pillow and the rug don't seem to work, nor does the sport coat.  Ahhhh.. the round box is round for a reason, and PUT BOX - WHERE? - HOLE plugs up the rodent traffic, so now we can SHAKE SUNFLOWER and GET SEEDS.  While we're doing this, we see that SOMETHING JUST CAME THROUGH THE BROKEN WINDOW, the returning dove it appears, and with the seeds in hand, we can GET BIRD.

But is there a message?  EXAMINE DOVE doesn't note anything new, and we can't FEEL anything unusual about the bird.  HELP suggests we let it fly away, so let's try that again; it flies through the open window once more.  It won't come to us unless we have some sunflower seeds, which it eats upon arrival, but it doesn't seem to be bringing us any messages, so we must need to arrange an outgoing note.

Can we UNSCREW anything at all?  Not that I can find.  How about OPEN?  We can OPEN RADIO to pop a battery out onto the floor -- shouldn't need that with the power cord connected, though... hmmm... it seems we do?  We'll have to figure that out later.

I try dropping the dove again, and this time it returns with a piece of paper bearing the combination 4R8L12R.  (I did some after-game checking -- the dove only works as expected if we shake out and retrieve another batch of seeds while we have the bird in hand, then drop the bird; it flies away, then immediately returns with the paper tied to its leg, whereas if we don't have seeds when we set it free, it will come back when we get some but without the paper.)  There's no fancy parser wrestling here -- we can now try to OPEN VAULT, respond to the combination prompt with the exact string specified, and obtain a set of keys!  Now we can OPEN DESK and EXAMINE DRAWER to reveal a CB SET!  So I've been wrestling with the wrong radio entirely.

The CB already has a microphone attached, with a button on it upon closer examination.  But nothing happens when we PUSH BUTTON?  Oh, I have to connect the cord and the hanger to the CB rig like I did the radio earlier.  Still nothing?  Can we TURN CB ONI TRIED, BUT NOTHING HAPPENED.

There seem to be several bugs at large here -- I had to dig into the code to see that if we've connected the cord to the radio previously, its description changes to IT'S PLUGGED IN and breaks the logic here, so the CB description never changes as we get it into working order.  The big hiccup is that the CB RIG has to be visible in the room in order for it to work at this point, and EXAMINE DRAWER reveals its existence without making it visible the way the code wants it to be.  Closer examination of the internal logic reveals that we have to GET CB out of the drawer before we can actually use it!  This oversight is a bit annoying, because we can do just about everything else -- we can see the CB in the unlocked drawer, connect the cord and the antenna, turn on the power using the switch on the south wall, and see the microphone and its button without touching the rig at all.  But we can't actually PUSH BUTTON to talk until we GET CB and drag it into inventory and either keep it or DROP it into a visible location.  It's one of those cases where what works for the designer doesn't necessarily work for a larger audience that may not behave exactly as the code anticipates.

Now that we can see the CB, we can PUSH BUTTON -- THE CB SWITCHED TO TRANSMIT.  WHAT DO YOU WANT TO SAY?  I'll start with BREAKER BREAKER, which probably doesn't conform to standard CB Radio etiquette but is about all I remember from the CB era.  Fortunately, it doesn't matter what we say at all -- we just have to repeatedly PUSH BUTTON and say something (I AM EURIPIDES!  ALL HAIL MY MARSHMALLOWY GOODNESS!, for example) while our trucker friends try to get a fix on our location.  After a few rounds of this, victory is ours -- well, victory in the form of mild admonishment over getting ourselves into this predicament in the first place:

A One Room Adventure is fairly challenging within its narrow scope, with logical puzzles marred only by strange behavior around the more complex situations.  Without access to the source code I would have been pretty stuck, but I managed to push on through and enjoyed the journey despite a few headaches along the way.  This one hasn't aged well, but it still provided a few interesting hours of adventuring. 

Tuesday, September 16, 2014

Adventure of the Week: House Adventure (1983?)

We're returning to the early portable TRS-80 Model 100 computer this week, to tackle House Adventure, a fairly conventional BASIC language treasure hunt set in a sprawling, multi-floored but sparsely furnished house.  The author is unknown; I found this game at the Interactive Fiction Archive in the same collection as the other Model 100 games I've been playing recently, and I'm assuming these were all written circa 1983 when the LCD-display machine was the coolest tech around.  It's possible this game was written in another version of BASIC and ported to the Model 100, based on some significant bugs I ran into.

I'm going to say something I almost never say, in this case, and that is: DON'T TRY THIS AT HOME, unless you have a high tolerance for debugging your adventures while trying to play them.  House Adventure seems to have been coded without ever really being played through, and features several game-breaking bugs that I had to uncover and work around.  If you do tackle it, please consider adding a DEFINT A-Z at the beginning of the code; without it, many things don't work as I assume they were meant to by the designer, and the odds against completing the game become stratospheric.  I'll detail my struggles with the game along with the gameplay in the following, so feel free to save yourself the pain and simply indulge in the...

***** SPOILERS AHEAD! ******

The first issue I encountered was no fault of House Adventure -- I got an OM error at startup, indicating insufficient memory, but I just hadn't been doing my housekeeping.  The Model 100's entire memory space is shared -- the storage is really a RAM disk, and too much of the system's memory was used up by files.  Once I cleaned that up, the game fired up with its title screen, including a cryptic clue, "Remember the Imposter is last," displayed before the game begins.

We find ourselves in a foyer, with a wooden box and a locked door, and exits east and west.  We have //NOTHING\\ in inventory; OPEN DOOR, as expected, suggests that I NEED SOMETHING FIRST!  OPEN BOX, less predictably, indicates that I'M SORRY, BUT I ONLY KNOW HOW TO UNLOCK DOORS AND DRAWERS.  Trying to EXAMINE BOX reveals that the parser has yet more to apologize for, as it seems to interpret this as a desire to travel East, to the family room.

Since we're here, we'll note that there are no objects of interest at hand, but we can travel north or south.  South takes us to the dining room, where we can travel east to the first floor elevator.  So there must be a second floor, at least; we can also head east again or exit north from the elevator.  Going UP takes us to the second floor elevator; we can go up again to the third floor, which is as high as we go.  So the map might be fairly large.

Returning to the first floor, we exit the elevator to the east to enter a coat closet and discover a flashlight.  And, to my surprise, heading east from the coat closet wraps around to the foyer again!  So this map doesn't necessarily adhere to real-world geographical conventions.

Well, since we're back here, let's try to READ BOX -- we have to GET it first, according to the parser, and only then, once we have it in inventory, are we permitted to discover that YOU CAN'T READ THAT!  SHAKE BOX yields YOU CAN'T GO THAT WAY -- apparently no general verbs can begin with the letters E, W, N, S, U or D.  Except that's not entirely true -- WAVE BOX is recognized by the parser but has no effect.

Let's explore the rest of the first floor -- north of the family room is the bedroom, with nothing of interest but an exit east to the pantry.  The cupboard is bare -- this house is very sparsely furnished -- but we can travel north to a telephone booth incongruously placed there, or south to the kitchen.  Now things are getting a little more interesting -- there's a carving knife here, as well as a vampire.  He doesn't prevent us from continuing south to the first floor elevator, but he SEEMS TO HAVE GROWN VERY ATTACHED TO THE KNIFE AND WON'T LET YOU HAVE IT.

So this seems to be our first puzzle -- how do we deal with the vampire?  There are rules about these things in pop culture, but we don't have any obvious implements of vampire-spookery on hand, so we'll head up to the second floor and poke around there for a while.

West of the second floor elevator is a sewing room, once again bare of any items of interest, with a closet to the south containing A SMALL DIAMOND.  We can exit the closet to the south again, to find a guest room occupied by a Ming vase and an insane monk, who guards the vase much as the vampire guards the knife.  An exit west leads to another guest room, and heading west again discovers a bathroom with a brass bathtub and exits in all four cardinal directions.  We can't TAKE BATH -- I SEE NO BATH HERE -- nor can we GO BATHTUB.

Traveling west from the bathroom leads us back to the insane monk -- his affliction does not seem to be evident in his behavior, and one person's insanity can be another's deeply held faith, but we don't have to deal with his mental condition in any direct way.  South of the bathroom is a sitting room with a hairbrush we can take with us, and an exit west into a den with a banjo and a dusty moose head.  We have a four-item inventory limit, we now discover, so we'll leave these here for the moment; we can't take the moose head, anyway, but it seems we can PLAY BANJO if we pick it up later on.

West of the den is another telephone booth, this one containing 100'S OF GOLD COINS, which we also can't carry at the moment.  This is a dead end, so we'll return to the bathroom and head north into the master bedroom, with a king sized bed and another exit north.  We can't MOVE BED or GO BED, or SLEEP (unless we choose to believe we tend to sleepwalk to the south) or otherwise learn anything about it, so perhaps it's just window dressing.  Traveling north leads us back to the second floor elevator, another twist in the map.

Nothing we've found looks like it will have much effect on the vampire, so we'll take the elevator up again to the third floor.  Exiting the elevator the east, we find ourselves in a library with a Sorcerer's Handbook, guarded by a leopard.  Just on a whim, I try to BRUSH LEOPARD with the hairbrush -- and it actually works!  THE LEOPARD IS VERY GRATIFIED FOR THE GROOMING, AND LEAVES.  Now we can DROP HAIRBRUSH, TAKE BOOK and READ BOOK -- it mentions four magic words that can be used to make objects, which may help us solve some of these puzzles.  The four words are ABRACADABRA, SHAZAAM, SEERSUCKER and UGABOOM.  A warning trails off: "BE SURE TO USE THE RIGHT WORD IN THE . . ." -- so we may need to be careful using these.

Let's finish mapping before we try the magic words out.  South of the library is a trophy room, with a set of batteries and an exit west.  LIGHT FLASHLIGHT confirms that it doesn't work, until we GET BATTERIES, and then I realize the verb works differently than I thought -- we use LIGHT ON to turn the flashlight on, LIGHT OFF to turn it off.  Oddly enough, we can LIGHT ON with the batteries in hand, and then DROP BATTERIES with no apparent impact.  That flashlight's circuitry must store a lot of electricity!  We also need the batteries if we want to LIGHT OFF, though, so two of our four inventory slots are going to be eaten up if we want to keep a light source handy.

West of the trophy room is a bare living room, and going north takes us back to the elevator; the third floor is a lot smaller than the other two, just four rooms.

Okay, let's try these magic words out and see what happens... apparently, nothing if we're in the wrong place, so we may be protected against flagrant misuse.  Just for fun, let's try to SAY SEERSUCKER in the vampire's presence -- nope, NOTHING HAPPENED.  None of the other magic words do anything either here, or at the locked door in the foyer.  Do we need to have the spellbook in hand?  It doesn't seem to make a difference.

I try to GIVE DIAMOND or THROW DIAMOND to the monk, to no avail, and DROP DIAMOND just prevents us picking it back up again as long as the monk is around.  We can't FILL BATHTUB.  What about that drawers reference earlier?  I don't see any drawers around so far, and my avatar's pants remain invisible and out of reach so we'll never know about that possibility.  PLAY BANJO doesn't have any effect on the monk, or the vampire.

... Hey, this game actually has a SAVE command!  I didn't expect that.  It exits the game after we save, though we can use the BASIC CONTinue to return to the game in progress.  (This will prove extremely handy later on.)

We have nothing to KILL MONK with -- though that carving knife might be handy.  The parser recognizes WATER in the bathroom, but we can't GET WATER and of course DRINK WATER is interpreted as Down.  Can we perhaps frighten the vampire with the flashlight?  Yes!  LIGHT ON and WAVE FLASHLIGHT sends him flying away.  I guess it doesn't have to be sunlight after all!  We'll LIGHT OFF to conserve the batteries, assuming this game adheres to that convention.

Now can we KILL MONK with the knife?  We don't actually succeed in doing so, but THE MONK HAS BECOME FRIGHTENED AND RUN AWAY, which will suffice for our needs.  This gives us access to the Ming vase, but since we don't have anywhere to stash treasures yet it doesn't seem like we should fill our limited inventory with them.

Hmmmm.  Aha!  We can take the elevator Down from the first floor -- I hadn't tried that.  It's too dark down here to see, so I'll go back and fetch the batteries from the kitchen where I left them.  We can exit the basement elevator to the north or south.  South is yet another telephone booth; continuing south, we find the torture chamber, with a bag of gold and a set of stocks, also treasures it seems. 

South again is the workshop, with exits east and west.  East is a freezer, where a protoplasmic blob guards a wrinkled parchment.  There's a dirt-floored room to the east, where we could probably DIG FLOOR -- but YOU CAN'T DIG THE FLOOR?  Ah, we must ask the parser to DIG DIRT -- but YOU DON'T HAVE ANYTHING TO DIG WITH

We can continue south to an empty laboratory, and go E from here to the pumproom, where we find a can of bug spray and a savage beast.  Again, this beast doesn't block our path -- we can head south to the furnace room, with exits to the east and south.  East is a dusty coal bin, and east from the bin wraps back around to the workshop.  South from the furnace room leads back to the elevator in similar fashion.

Well, presumably we can use music to soothe the savage beast, and yes, PLAY BANJO does so -- THE BEAST HAS WANDARDED [is that like drownded?] OFF IN A STATE OF BLISS!  And now we can drop the banjo and GET SPRAY -- well, GET CAN, actually.  Might as well try to SPRAY BLOB -- and that sends it scurrying through a crack in the floor, providing access to the parchment.  READ PARCHMENT suggests that we use "THEM" IN A TELEPHONE BOOTH, IN THE LIVING ROOM, and IN THE DINING ROOM.  This information should help, assuming it relates to the magic words!

Let's try the magic words in the basement telephone booth.  SAY SHAZAAM makes us disoriented and sends us to the family room?  It looks like the locked door in the foyer has vanished, though no new exits are apparent, and we no longer need to turn on the flashlight when we go into the basement.  That's powerful magic!  Let's try using one in the dining room -- nope, none of these words seem to work here.

I'll start over and see if I can figure out how these work.  I try to SAY ABRACADABRA in the basement telephone booth, and this time I end up in the guest room.  UGABOOM goes to the pantry, and SEERSUCKER to the laboratory after subsequent restarts.  But nothing seems to change otherwise???

Let's try the first floor telephone booth instead.  Nope, nothing seems to happen here at all.  And when I try to SAY ABRACADABRA again in the basement, it seems the magic word sends me to a random destination.  What about the phone booth upstairs with the gold coins?  Nope, nothing happens here either.  So the basement must be the right place to start.

Is there an order in which we're supposed to use these incantations?  It seems like only one word works -- after that, nothing happens even in the basement telephone booth.  Does it matter which word we use where?  Let's go to the living room next and try there.  Nope.  First floor telephone booth?  Nope.  Second floor?  Nope.  Ack!

Time to dig into the code, methinks -- the magic word logic is pretty convoluted, and as it turns out, it's just plain buggy.  There seem to be two stages to it -- each stage checks to see if we're in a specific valid room, i.e. the basement telephone booth first and the dining room second, so that kind of makes sense.  But it compares X (the object of the command, i.e. the magic word) to a P array of floating point numbers that seem unlikely to ever match a value of 0, 1, 2, or 3.  It looks like P is initialized to a random value between 1 and 4, but it isn't being rounded to an integer so a match for 1 of 4 words would be pretty rare.  Z also gets randomized after a bad guess to a number that may prevent any guess from working, as there are only two possibilities, 0 and 1, and Z ends up as a floating point number between 0 and 3.  Was this feature ever playtested?  My first thought was that I should force P(0) and P(1) to something consistent so the game can be played successfully and more predictably, so I edited line 5 and attempted to restart and continue.

The next thing I learn is that if we move around too long in the dark basement without light, we end up getting killed by something unseen but gruelike in its habits and habitat, ending the game.  So we'll be more careful about that on the next try.  Saying the correct magic word in the telephone booth yields an old leather glove, and in the dining room it produces an aluminum dime.

I'm stuck again, so I try to crack the next puzzle by willing the shovel into inventory by altering the O array.  So let's try using the shovel in the dirt-floored room -- now it seems we can't DIG FLOOR or DIG DIRT either?  Ahhhh... our location is partly determined by variable Z, which is roundable to 0 but is not actually 0 when the dig logic checks our location.  So line 75 doesn't quite work right unless we force Z to a nice round 0.  Now DIG DIRT turns up a rusted key.

I'm beginning to realize what's going on here, though I wouldn't have figured it out if I hadn't recently been reading some old magazine articles about dialects of Microsoft BASIC.  The game works a lot better if we modify line 1 to start with DEFINT A-Z:  -- Model 100 BASIC supports this and now these variables all behave much better, allowing random numbers to land cleanly on an integer instead of a messy floating point value that won't match many game logic comparisons.

I remove my modifications to line 5, to be a good sport now that I've realized where House Adventure's biggest issue lies, and it takes me a few tries, but SAY SHAZAAM in the basement telephone booth yields the old leather glove, and SAY ABRACADABRA in the dining room produces the aluminum dime.  Nothing ever happens in the living room, though, so the parchment is a little misleading.

Now the telephone booth room on the second floor takes us (as I'm sure the author intended) back to the telephone booth on the first floor; actually, this is randomized, taking us to different telephone booths each time we enter one.  And I find the rusted key and a clove of garlic on the floor of the dirt-floored room, without having to do any digging; not sure if that was intended, but it works for me.

With the rusted key, we can finally UNLOCK the DOOR in the foyer.  This lets us go to the front porch, where we can see the front yard, and I suspect this is where we need to bring treasures.  It also appears that monsters now run away but turn up elsewhere, as they are not randomized away into nonexistent rooms any more,so we need to keep track of where we left important items for shooing them off again.

Let's round up the treasures we know about -- the diamond, the gold... and it turns out the set of stocks are not stock certificates as I was picturing, but actual non-portable as-in-"put-the-prisoner-in-the" stocks (it's a torture chamber after all!)  The wooden box also counts -- it seems we get credit for hauling anything not nailed down out to the front porch!  The hairbrush, the sorcerer's handbook, the... uh-oh.  I've run into the leopard again, and after we take items out of the house, they disappear!  So perhaps we'd better collect things in the foyer instead, in case we need them again.

Starting fresh, it seems some items are randomized, and I'm seeing some objects I didn't encounter before, like a block of dry ice in the dining room.  And I exhaust my flashlight batteries before I manage to get anything out of the house.  Sigh.

The batteries only last 40 turns, tracked by a variable U in the code, and with the tight inventory limit it's pretty difficult to get everything out of the basement.  There's also no clear victory condition when we die or quit -- just a score for how many items we got out of the house?  I cope with the battery life by occasionally doing a QUIT, U = 0, CONT sequence.  Yes, it is cheating.  No, I am not ashamed of myself. I don't think it's possible to carry a light source and remove everything from the basement in 40 turns, and if we wander in the dark for more than a few turns we are consumed by an unseen menace, so that's not an option.

What's going on with the telephone booth rooms?  They seem a lot more stable since I restarted.  Do they react to having the dime in inventory?  Yes!  Now they start teleporting us randomly around again.  But while the design intends for it to be possible to reach a "secret" fourth telephone booth in a separate section of the third floor we can't otherwise reach, it's nearly impossible for this to happen given the random number algorithm used in line 7.  This can be patched imperfectly by changing the code to randomly pick a number between 0 and 5, instead of 0 and 4; the odds of it being greater than or equal to 4 are much better now.  (After the fact, I realize that multiplying the random number by 4.999 would prevent a bad value of 5 from coming up without substantially altering the odds of it being 4.)

Good, now we randomly find ourselves in a new telephone booth, with an exit to the east.  This leads to a barroom with a block of dry ice, and an exit leads east to the game room.  North of this point is the computer room, with a UNITRON 30/50 MAINFRAME and a shovel.  Traveling north of the computer room takes us back to the first floor telephone booth.

Finding our way back again, we establish that south of the game room is the art hall, where we see a silk pillow and a werewolf, guarding it of course.  To the west is a nondescript bedroom.  We can WAVE GARLIC (is that canon?) to ward off the werewolf and take the silk pillow, so we can take the Ming vase formerly guarded by the insane monk (a steal from Colossal Cave there, though more insistent in implementation, as we can't drop the vase at all without the pillow present.)

I try to use the glove to take the dry ice, but I end up dying with a scream, followed by "REMEMBER?"  Hmmmm.  Maybe that's what the imposter business on the title screen is about -- the dry ice in the living room is not the real dry ice?  Or it's the last thing we should take out of the house?  Or dry ice is an imposter for real ice?  There are two locations where it appears, though, so that's probably what this means, especially as we have to get into the hidden telephone booth area to find the real one.  I think.

I grab the shovel from the computer room and finally DIG DIRT in the dirt-floored room, but nothing comes up.  At least we can dispose of the shovel.  I haven't grabbed the diamond from the closet yet this round, so I'll do that.

Now let's see if we're allowed to pick up the dry ice from the barroom... yes, we can GET ICE here without dying.  We do need the glove in order to do so -- if we try to drop it first while carrying the dry ice, we're prevented: YOU'LL BURN YOURSELF IF YOU DROP THE GLOVE NOW!  So that's done, but it seems I'm still short an item, namely the hundreds of gold coins from the second floor telephone booth.

We can't GET COINS directly, but if we have the wooden box in inventory we can.  And after we drop it and all of the other remaining items outside, victory is ours -- with an end message that's just as bugged up as the rest of the game!

Playing House Adventure was not a great deal of fun -- it took a lot longer than I was expecting due to its general quality problems, though somehow it kept drawing me back, probably because having the source code made it possible to finish, in theory at least.  I was able to fix a couple of game-breaking bugs, though I also had to cheat quite a bit to extend battery life and occasionally continue after an untimely demise. 

And this completes my tour through the handful of TRS-80 Model 100 text adventures I currently know to be in circulation -- pity this last one was probably the least polished of the batch!  Onward!

Tuesday, September 9, 2014

Adventure of the Week: Dreamer (1983)

This week's subject might be one of the earliest intentionally surreal and experimental adventures, in a vein modern interactive fiction authors continue to explore.  Dreamer was written by Jorge Mir in BASIC for the TRS-80 Color Computer, as another magazine contest entry published in The Rainbow Book of Adventures in early 1983.

Dreamer was designed to run in a mere 4K of RAM, the basic early Color Computer configuration that saw very little commercial support.  The objective is to explore all 26 rooms without being killed, but the tight memory constraints result in a novel engine approach -- there's no real parser, so there's nothing in the way of feedback, and the puzzles consist almost exclusively of guessing exactly the phrase that the game wants.

Mr. Mir claims his game is suitable for beginners, and in a way he's right -- since there's not much complexity to it, anyone can sit down and guess at phrases until something happens.  But I can't really encourage anyone to play this game today -- it's not so much an adventure game as a series of brick walls, and I had to peek at the code on a few occasions when guessing wore thin.  So feel free to experience Dreamer vicariously by reading on into the...

***** SPOILERS AHEAD! *****

We are LOST IN THE FOREST as we begin.  We have nothing in inventory; in fact, it seems there is no I or INV command, so we probably won't have to deal with any objects.  There's no exit list given, so movement will have to be by trial and error.  But it seems we can move in all directions without really going anywhere -- again, hard to verify without inventory -- and no verb I try seems to do anything.

Trying to use the title as a jumping-off point, I attempt to SLEEP and DREAM and WAKE, with no response to any of it.  I try to SEARCH WALL and JUMP and YELL, also to no avail.  I try to CLOSE EYES and IMAGINE something that might happen.  I DIG and EXAMINE FOREST and CLIMB TREE, but nothing ever occurs.

At last I try battling the parser on its own terms, and GO WEST finally brings me somewhere new -- to the edge of the forest, near a house.  Here, if I try to E I am at least given a useful response -- I CAN'T E, whereas in the forest I got no feedback at all to any phrase I tried.  We can't go anywhere else from here using compass directions, but we can GO HOUSE to approach its door.

We can't, however, GO DOOR, or OPEN DOOR, or EXAMINE DOOR, or KNOCK DOOR or RING BELL.  We can't PUSH or PULL or MOVE or SLIDE it either.  And we can only GO EAST here, which gets us lost in the forest again.  Ah!  We can UNLOCK DOOR.  This might be our house, as we've seen no evidence of a key, although since this is a dream there's not necessarily an answer to the question.  Once we've done that, the door stands open, but we can't GO DOOR or ENTER DOOR.  We have to ENTER HOUSE.

At this point I wonder if we're being graded at all, so I try to SCORE -- and I CAN'T SCORE.  Okay.  We can see STAIRS and FURNITURE here.  But we can't GO STAIRS or GO UPGOing EAST puts us back in the forest again.  We can't CLIMB STAIRS or USE STAIRS, nor STAND on, USE, MOVE or CLIMB the furniture.  We can, however, GO UPSTAIRS.

I'm beginning to realize how this game manages to work in 4K -- every location has a specific "command," really a phrase that we must hit upon exactly to get to the next stage.  There's no real parser at work here, which is why the engine is so strict yet arbitrary in its demands.  This does not make the game very much fun, I might add.

Upstairs we find a bedroom with a window, a bed, and some stairs again.  We'll try to GO DOWNSTAIRS, which actually works, leading to a family room with a fireplace and TV set.  We can GO FIREPLACE to find ourselves in the dark, and (it turns out) GO NORTH to find ourselves out in the forest again, though not in the starting LOST location this time.

We can see A HOUSE FAR AWAY, but we can't GO HOUSE from here.  GO NORTH takes us back to the starting location, lost in the forest, and we have to find our way back here exactly as we did before.  GO SOUTH takes us to a river bank with a cave.  We can't ENTER CAVE, but we can GO CAVE.  Inside we see a large box and a light to the east.

We can't OPEN BOX, but we can GET BOX -- and finally something produces a negative response, as THE BOX WAS FULL OF POISONOUS SPIDERS.  YOU ARE NOW DEAD!  YOU ONLY GOT TO SEE 11 ROOMS.  So this is how we're scored, then... if we die, we at least learn how well we performed to the author's exacting specifications.

Starting over again, we choose to ignore the box and GO EAST instead, arriving outside the cave near a hungry bear and a tree.  CLIMB TREE proves fatal, as THE BEAR CLIMBED THE TREE ALSO AND ATE YOU!  We've now seen 12 rooms.  Of 26?  This is going to seem like a very long adventure despite its simplicity.  Maybe a peek at the code will make up for the lack of a save game -- it appears we can GOTO 4 to pick up wherever we died and try something else.  I'll allow myself this concession for the sake of efficiency.

With this trick speeding things up, I try some other possibilities.  We can't PET BEAR or KILL BEAR or WRESTLE BEAR, but we can RUN to escape to a hill with a small cabin.  GO CABIN brings us to its door, where we also see a horse.  Unfortunately, we cannot GO HORSE or RIDE HORSE, nor do anything with the door.  But we can ENTER CABIN regardless.

Here we find some food and a saddle.  GET SADDLE actually responds like a normal adventure game -- the saddle disappears from the screen, leaving the food behind, though this is in actuality a simulation of normal adventure behavior.  But we can't GET FOODEAT FOOD proves, as I suspected, that it's poisonous, and we die with 16 rooms under our collective belt.  After we get the saddle, we need to EXIT CABIN.

We can't SADDLE UP, or SADDLE HORSE, or GO HORSE, but now that we have the saddle we can RIDE HORSE to a large lake.  We can't SWIM or DIVE or EXAMINE LAKE or GO LAKE or DIVE LAKE or DRINK LAKE or DRINK WATER or anything else that seems reasonable to try.  We're still on the horse, but we can't DISMOUNT or GET DOWN or GET OFF, and directional navigation doesn't get us anywhere.  I finally had to look at the BASIC code to see that Mr. Mir threw us a curve on this one -- we have to abandon the two-word approach used almost everywhere else, and dismount and/or overcome a serious drug habit as we GET OFF HORSE!

Now we can see a small boat, and GO BOAT to approach a small island.  Of course, we can't GO ISLAND, or SWIM ISLAND, or EXIT BOAT.  We have to ROW BOAT to reach the island.  Here we find some sand and a shovel; we can't GET SHOVEL or DIG, but we can DIG SAND to find a bottle.  We can't GET BOTTLE or OPEN BOTTLE, or READ BOTTLE or GET NOTE (guessing there might be one in it)... but we can, in desperation, BREAK BOTTLE.

Now we find ourselves magically transported to A STRANGE LOOKING PLACE where we see a magic wand, and a blue cloud engulfing us.  GET WAND transports us to a palace, where we see a WELL ARMED GUARD (somehow I picture Ray Harryhausen's interpretation of Kali instead of the author's intended imagery) and some DIAMONDS ON A TABLE.  Fortunately, since the engine really only recognizes a couple of responses for any given location, we can freely attempt to KILL GUARD and STAB GUARD and GOUGE OUT EYES OF GUARD without irritating him in the least.

As it turns out, what we really want to do is give in to our base impulses and simply GET DIAMONDS -- and now we have an ANGRY GUARD at hand, probably because he's envisioning his next job evaluation.  Let's try the bear strategy again, and RUN... and we find ourselves at home!  It may have only been a dream, but victory is ours!

Dreamer has an interesting concept at its core, but in execution it's a novelty, rather than a true adventure -- the solution is so constrained that it's more of a guessing game along narrative lines.  But it was fun to fight through it anyway, and I appreciate the technical variety found in low-memory adventures -- they are always forced to compromise in some way, and Dreamer does squeeze a lot of story into 4K of RAM.

Tuesday, September 2, 2014

Adventure of the Week: Lighthouse Adventure (1983)

Our journey through The Rainbow Book of Adventures for the TRS-80 Color Computer circa 1983 continues this week, with Chris Wilkinson's Lighthouse Adventure.  Written in BASIC and available as a type-in as well as on tape and disk at the time, this is a treasure hunt with a little more atmosphere (and more typos) than usual -- we're looking for a golden cargo, seized by smugglers and hidden away in late 1700s New England.

The parser is slightly more sophisticated than the norm, as it supports PUTting objects in or on other objects, although usage is sometimes very situational and the dictionary doesn't recognize TAKE, only GET, which kept tripping me up.

I always urge interested readers to venture forth before listening to my own tales of erring-do, as much of the joy of adventuring lies in discovery, and Lighthouse Adventure is a fun but straightforward game that only took me a few hours to play through.  Beyond this point, I will recount my own experience in detail, and there are bound to be...

***** SPOILERS AHEAD! *****

As the game gets underway, we find ourselves standing on a rocky peninsula south of an old lighthouse.  There are some rocks here, and EXAMINE ROCKS reveals that we can GET FLINT.  We have nothing else in inventory at the moment.

The area surrounding our starting point seems to be a maze of rocky ground, so we'll have to come back and map it more carefully.  For now, we'll head north to the ground floor of the lighthouse, with exits leading up, down and back out to the south.

Downstairs is the generator room, with a hole in the wall which we can EXAMINE to see a pulley system, now visible as an object in the room.  EXAMINE GENERATOR similarly reveals a switch.  We can't convince the parser to let us FLIP SWITCH or TURN SWITCH, but if we PULL SWITCH then NOTHING HAPPENS.  Clearly the old facility is in need of some repair.

Heading upstairs, we find a bedroom with a piece of paper prominently displayed.  READ PAPER reveals some clues in the form of a poem:
Presumably the meaning will become clearer later on, probably just after we've died, in the great adventure game tradition.  We can climb further up to the top of the lighthouse, with rocks below and an opening in the wall.  EXAMINE OPENING yields only I CAN SEE DOWN A LONG WAY.  Since we've just started the game, I'll try to GO OPENING and ENTER OPENING, to no avail, and also discover that I DON'T KNOW HOW TO JUMP.  Probably a good thing, that.

The map so far is pretty small, so we'll go back to the basement and mess with the pulley system a little.  It appears to be a dumbwaiter, so we'll try to PULL PULLEY and observe that THE PLATFORM STARTS TO RISE.  The same happens if we PUSH PULLEY, so it appears to be a one-way movement.  And I can't find a way to climb into the hole or otherwise try to ride the dumbwaiter. 

Let's try to map out the peninsula with the few objects we have collected in inventory.  This doesn't take much doing -- there are really only two peninsula "rooms," one of which is the starting location, with all other exits leading to the other room, from which one exit leads west back to the starting location.  So we haven't learned anything new outdoors, and this game's frontiers probably lie within the lighthouse itself; it is the Lighthouse Adventure, after all.

Can we put something in the dumbwaiter?  I try to PUT ROCKS, but before prompting me for a destination, my attempt is greeted with HOW CAN I ; I$ I DON'T HAVE A MUSKET (a little bit of code cleanup missed there, it appears.)  So apparently the rocks are meant as ammunition?  Not so fast -- it seems trying to PUT anything at all produces the same response, so that verb probably has a specific purpose.

What else can we try?  A second EXAMINE GENERATOR reveals a panel, and while we can't examine it (I was picturing a control panel) we can PULL PANEL to open it, revealing A CORRIDOR LEADING DOWN.  Now we're getting somewhere!  Before we head down, I'll examine the generator one more time to see if it's hiding any other secrets, and the third attempt comes up empty.

The passage leads downward to a long corridor carved out of the rock, where a lantern has been left behind for our convenience.  Of course, it has no oil in it, so we can't light it yet.  South of this point we encounter a guard room, with, surprisingly enough, a live guard who WON'T LET ME PASS, and a rope connected to the wall.  EXAMINE GUARD prompts, "WHAT'S THE PASSWORD?"  So we'll have to discover that somewhere.  Fortunately, he's not particularly suspicious and allows us to walk discreetly back north.

To the east, we find a store room, with a tool box, weapon rack, musket, and dagger.  The musket is already loaded, so we don't have to deal with that just yet.  EXAMINE RACK reveals nothing special, but if we OPEN RACK we find some bullets, in case we need to reload.  We have a six-item inventory limit, the game now reveals, so I'll drop the rocks and the piece of paper.  OPEN BOX produces a can of oil, with which we can FILL LANTERN -- WITH WHAT? -- OIL, after which the can mysteriously vanishes along with its contents.

And here I encounter a common adventuring bug -- if we OPEN RACK and OPEN BOX again, the oil and the bullets magically reappear in their original places.  But since we didn't officially DROP them, they're still counted against the inventory limit!  So we can now only carry four items, and we'll have to restart and be careful about trying to break the game logic.  (Actually, using the oil as intended causes this same bug to manifest, so we really have a five-item inventory limit after this point.)

Heading west this time from the corridor entrance, we find a large dining hall sporting a fireplace and a dead smuggler.  EXAMINE SMUGGLER simply verifies that he's dead, but SEARCH SMUGGLER turns up a folded note.  We can READ it to see that THERE'S ONE WORD WRITTEN ON IT ....MARPLE....  Could this be the password?  Or was the smuggler simply an Agatha Christie fan with tattoo plans?

Before we try the password, we'll examine the fireplace to find a cup there.  We can't enter objects in this game, it seems, so we'll take the cup with us and assume there's no secret passage hidden in the fireplace.  The guard room's rope appears to be a bell-pull.  We'll try to SAY MARPLE here... and yes, the guard says, "GOOD TO SEE YOU AGAIN, CAP'N" before vanishing into thin air.  Are these ghost smugglers?

We are now free to head south, but I'll try to PULL ROPE before going there.  NOTHING SEEMED TO HAPPEN?  Okay.  We stroll south into the chart room, where we can EXAMINE MAPS to see RATHER BADLY EXECUTED PICTURES OF ISLANDS WITH LARGE 'X'S DRAWN ON THEM.  (Presumably, all the smuggler's 'X's live in T'X's.)  East of the chart room is the Captain's Room, where a closed coffin is a surprising addition to the expected decor.

We can OPEN COFFIN to find a skeleton, and EXAMINE SKELETON to uncover a PIRATES LOG.  Fortunately, it's the kind we can READ to learn that it was written by a Captain James, lamenting the loss of his crew to one or more serpents (the late captain's lack of punctuation makes it difficult to interpret "THE SERPENTS TAKEN ALL BUT ME.")  This final entry trails off, and doesn't give us a lot of information, though perhaps the aforementioned BEAST is a serpent of some kind.

If we EXAMINE COFFIN, we espy a knob on its bottom and... um... PULL KNOB, opening a hidden door to the north.  This leads to a metal storage cabinet -- these smugglers do maintain a tidy operation -- with a RING (IT LOOKS MAGIC) and a bottle.  The ring has HIEROGLYPHICS AROUND IT, and the bottle contains a liquid we can't seem to identify.  We can WEAR RING -- IT FIT'S [sic] WELL.  And if we FILL CUP -- WITH WHAT? -- BOTTLE, we... encounter an adventure-crashing syntax error in line 166.  I'll go ahead and peek at the BASIC code with a LIST 166, since the error has pinpointed this location, and learn that what was supposed to happen was the cup was supposed to dissolve.  So it's probably a bottle of acid.  Fortunately we can GOTO 31 and continue the adventure; I'll drop the cup, since its only purpose may be to reveal the nature of the liquid.

We can SEARCH FIREPLACE again to spot a button, and PUSH BUTTON to open a secret panel leading north into a narrow path with a lagoon to the west, an exit to the east and a door to the north.  East is a small passageway containing a flute, and we can continue south to an ENOURMOUS [sic] VAULTED CHAMBER containing a TREASURE CHEST!  Hmmmm... something tells me it's not going to be quite this easy.

I guess the ring counts as something beautiful worn, and we ought to be able to play the flute for some music.  We can't OPEN CHEST, though, and EXAMINE CHEST suggests only that it is VERY UTILITARIAN.  These smugglers know their storage, all right. 

What about the door to the north?  If we try to open it, we learn it's jammed shut; actually, examination reveals that it's locked.  The chest is far too heavy to lift.  Can we pour acid on it?  Nope, it seems we can only POUR BOTTLE on something we have in inventory.  READ MAPS establishes that our avatar can't read Spanish.  We can't PUT BOTTLE into the opening at the top of the lighthouse, or anywhere else; now that we have the musket, it appears we just get NO EFFECT from any PUT attempt.

Actually, it turns out we can POUR BOTTLE -- IN OR ON WHAT? -- DOOR, and the jammed door disintegrates.  This allows us to access a large room containing a boat.  I wish this game had a SAVE facility, but we'll have to prepare for the unknown as best we can.  EXAMINE BOAT suggests that IT'S BIG ENOUGH FOR TWO OF ME.  We can't GO BOAT or ENTER BOAT or SET SAIL or LAUNCH BOAT or GET BOAT, but we can SAIL BOAT to find ourselves out on the lagoon.

We can return from the waters by heading E, and floating W, we encounter A HUGE SEA SERPENT!  IT LOOK'S [sic] TERRIBLY FERROCIOUS [sic or ironic]  -- we can try to SHOOT SERPENT, but BULLETS HAVE NO EFFECT ON A SERPENT THIS SIZE.  The musket remains loaded, at least, and we can try to WAVE RING instead... or SHOW RING... nope.  PLAY FLUTE?  Yes!  THE MONSTER SMILES HAPPILY AND DISSAPEARS [sic].

We can now reach a wide beach on the west side of the lagoon, where a trolley stands.  We can GET TROLLEY, so it must not be the streetcar variety, but just in case I'll try to RIDE TROLLEY and BOARD TROLLEY to the expected lack of effect.  What use could this be?  I carry it back to the treasure chest, and nothing visibly changes there.  I try to return to the beach, but I left the flute behind and now the sea serpent has returned, preventing that possibility.  Sigh.

Further exploration establishes that the bell-pull opens and closes the passage from the generator room to the smugglers' area, not of any immediate use.  Oh, here's an idea -- let's try to PUT CHEST -- ON OR IN WHAT? -- TROLLEY.  This works!  It's the British usage of the word, and there's a usage hint right there in The Rainbow Book of Adventures.  The physics aren't really presented in any convincing way here, but we can now GET TROLLEY and wheel the treasure chest out of the caves.

Of course, I CAN'T GET THE TROLLEY UP THE STAIRS once we get back to the generator room, so we'll have to use the dumbwaiter.  We can't PUT TROLLEY anywhere, but we can PUT CHEST -- ON OR IN WHAT? -- HOLE, and then PULL PULLEY to send it to the top of the lighthouse.  We have to put it back on the trolley there, and now we can come back down and exit the lighthouse -- to victory?  Well, we have the treasure chest in hand, but now we're just standing forlornly on the rocky peninsula with it.

I try to GO HOME, but that's not going to work.  How else can we make off with our ill-gotten salvaged gains?  Do we have to open the chest?  We can't THROW CHEST from the top of the lighthouse, but if we DROP CHEST there, it falls and smashes open on the rocks below.

In my haste to exit the lighthouse and recover the treasure from the rocks, however, I accidentally overstep by one move and find myself in the generator room again, where I run into a fatal bug.  I can't go back upstairs with the trolley in hand, once I've found it, and even if I DROP TROLLEY the game continues to insist I can't go upstairs, rendering me a prisoner.  And I can't PUT the TROLLEY itself in the dumbwaiter, only when it's attached to the chest, which is no longer possible!  So I've gotten myself trapped here, within what seems like an inch of victory.

Having one more go from the start, we manage to get out of the lighthouse to see the gold bullion scattered at its base.  Fortunately, all we have to do is GET BULLION -- no, whoops, GET GOLD -- and victory is ours!

Lighthouse Adventure is a fun little treasure hunt, despite a few bugs.  It manages to convey a sense of its world with minimal text, and I appreciated its logical puzzles that reward careful exploration.  I took a peek at the source code after finishing and it looks like we can try to shoot at the guard -- confirming he is a ghost as the bullets pass through him -- and we can also blow the door away with the musket, instead of using the acid.  The attention to detail is unusual for a type-in game, and Mr. Wilkinson is to be commended for allowing a variety of approaches.  A pleasantly brief adventure.