This week, something a little different, and as it turns out, challenging in a different sense than usual. I'm playing a TRS-80 Model I text adventure game of questionable provenance -- it announces itself as
Lost Island on the title screen, written by Tom Johnstone and Mike Matthews:
Internally, in the BASIC code, the game calls itself
LOST ON THE GREAT BARRIEIR [sic]
REEF. This initial comment line is significant, because it led me to the source, AND the typo supports my hunch that the version floating around the Internet today was typed in from the game's print appearance in the August 1983 issue of
80 Microcomputing. As further substantiation, I believe whoever typed the surviving version introduced at least three significant errors in the process -- the game as I found it is actually unsolvable, but I've provided a critical fix in the spoilers section below. (I do not have access to the original magazine listing to confirm whether I've fixed this as the authors intended - I only confirmed the game's origins thanks to finding the relevant table of contents at
Ira Goldklang's excellent TRS-80 site. My fixes are based on looking at the code and drawing what I believed to be reasonable conclusions about the intended functionality.)
Lost Island, befitting its 8-page magazine space allocation, is a short and simple island adventure. The player starts out aboard a motorboat with no fuel, and has only 100 turns before darkness, and a fatal crocodile attack, arrives. We have to reach the nearby island, obtain several artifacts, solve a couple of puzzles, and escape as quickly as possible.
Normally I recommend that interested readers go play the game at hand before reading further, but in this case I'm going to have to spoil a small aspect of the game for everyone, because it's otherwise impossible to finish. Finding and re-typing the entire original magazine listing would presumably spoil a great deal more, so consider this first section a...
**** REQUIRED SPOILER ****
The program as found online (my copy is from a disk image called BASIC1.DSK) contains a game-breaking error in the source code on line 2300. As it exists, this line reads:
2300 IF NN$="KEY" THEN PRINT "IT IS NOT POSSIBLE TO HOOK SUCH A THING": GOTO 270
I concluded that this should be changed to:
2300 IF NN$<>"KEY" THEN PRINT "IT IS NOT POSSIBLE TO HOOK SUCH A THING": GOTO 270
There are a couple of other bugs in the code that I believe to be transcription errors as well, but this is the only one that absolutely MUST be fixed to allow the game to be solved. I'll mention some others below.
If you want to visit the
Lost Island on your own, make this patch and go forth and play now. Otherwise, feel free to continue with the...
**** GENUINE SPOILERS AHEAD! ****
I am inclined to (dis)credit the anonymous typist with a number of misspellings in the game --
SIMILER MEANING,
SMITHERINES,
YOU ARE CARRING TOO MUCH, and my favorite, the
NAVEL MESS HALL.
And I must blame the authors for some more substantial issues here -- the game gives us 100 turns to finish, with a
TIME command to see how we're doing. But the parser's vocabulary is very limited, and invalid commands that it doesn't understand still count against the turn limit, so parser battles can in fact be lethal over the long term.
GO TRUCK, for example, yields
HOW IS IT POSSIBLE TO ENTER SUCH A THING!, and we can't pick up the
DEAD FISH by typing
GET FISH, but must
GET DEAD. If we try to
DRIVE TRUCK we are told that
IT IS NOT POSSIBLE TO DRINK THAT, so this kind of thing is an ongoing annoyance.
We can die within a few turns of starting the game by walking
S or
W from the cannon room, in which case we are blown to
SMITHERINES as we try to exit if we have neglected to
TURN CANNON - if we have done so, it blows up our formerly handy lifeboat. But there's no way around it -- we just have to find a replacement later on, keeping in mind that we can only get the rubber dingy with
GET RUBBER, rather than
GET DINGY.
This one I lay to the typist's charge -- the
EXAMINE verb returns
I CAN'T SEE THAT HERE whenever it lacks a specific response for the item under examination, but this is clearly a code typo where
ESLE was entered instead of
ELSE on line 1340.
The map is schematic, with no surprises and straightforward compass-point maneuvering. At one point,
YOU ARE STANDING ON THE SOUTHWEST CORNER OF A TROPICAL ISLAND; I hadn't realized islands had corners, but it's an accurate description of the map.
There are a few in-game hints, though they aren't very useful and one is misleading. A sign at the edge of the swamp reads
CARNIVORES DEVOUR MANY INTERESTING ITEMS!, which is only a hint that we can
FEED CROCODILE, as there's no way to
KILL or
OPEN the beast. We can
LISTEN SHELL after finding one on the beach to learn that
THERE MAY BE MORE THAN ONE KEY TO SOLVING THIS ADVENTURE! -- this is true, as we need both a key and a hairpin to open a couple of locks -- but that's pretty standard adventure game practice. There's a truly useless clue on a beachfront sign, which reads
TRY TO DIG UP AS MANY CLUES AS POSSIBLE! -- but we can
DIG everywhere and find absolutely nothing, except in a few rooms where instead we are told
THE GROUND HERE IS TOO HARD TO DIG IN.
The worst trap in the game is a tempting tree -- we can follow standard adventuring practice and
CLIMB TREE, which causes us to lose a whopping 50 of our precious turns, as
ARRGGHHH!! A COCONUT HAS JUST FALLEN ON MY HEAD AND KNOCKED ME OUT! We die immediately if we
DRINK WATER from the river or try to
KILL CROCODILE, and can also sink into quicksand.
There's an
ABORIGINE in the game, but he or she serves no apparent purpose, although we can
GET ABORIGINE and carry the poor person around. I am pleased to confirm that the game doesn't consider the local citizenry suitable as crocodile feed, so we are not made to be complicit in any variety of genocide.
The game has a six-item inventory limit, but it's not a major problem -- we can ignore many of the game's objects, and it's possible to get everything done without having to spend a single turn to
DROP anything.
The toughest puzzle I ran into involved retrieving the key from the swamp; it stumped me for a while, but in the final analysis a bug was to blame.
GET KEY tells us only that we can't reach it. We can bring and
DROP PLANK to keep ourselves from sinking into the bog (as would otherwise happen within a few turns). Elsewhere we find a bit of line, and
EXAMINE LINE reveals that
IT HAS A HOOK ON THE END. This seems handy for the purpose and implies that
HOOK works as a verb, but try as I might I could not
HOOK KEY. What confused me further is that
HOOK [any other object] returned
I CAN'T SEE THAT HERE, while
HOOK KEY returned
IT IS NOT POSSIBLE TO HOOK SUCH A THING. Finally I gave up and took a look at the code, and discovered what I am quite certain is an error, fixed above. As typed, the game refused to acknowledge the
KEY as the object of
HOOK -- but if we get past that check, the next bit of code tests to see if we are in the room where the key originates and also have the
LINE in inventory, and if so then it puts the key in inventory. So I concluded that the code was incorrectly entered, fixed the first test so that
KEY would be accepted as the target of
HOOK, and was able to finish the game.
Incidentally, this game uses a different and radically less efficient room/object model than the norm -- it maintains an array of strings for each location and for inventory, and actually moves string values around. That is, rather than having a persistent DEAD FISH object that maintains its own state, including its location, a "DEAD FISH" string gets removed from one array and entered into the first available slot in another one. The code spends a lot of time hunting through arrays and doing comparisons to see if a particular string is "in" the room or inventory, and the approach makes this BASIC adventure even slower than most. Array limits also mean that each room can only hold up to 10 items; if the player tries to drop an eleventh item in any location, the game is forced to claim that
THIS ROOM IS PILED HIGH WITH JUNK AND I DON'T HAVE ANY ROOM TO PUT ANYTHING.
Another error that I presume is a typo -- we can't
EXAMINE TRUCK in the location where the truck resides; we can only examine it when we're in the
NAVEL MESS HALL, where the truck is not. I believe the related "LC=" location check was incorrectly typed.
We can
OPEN TRUCK in the correct location if we have the hair pin, which we pursue by executing an
OPEN DOOR in the crocodile room;
UNLOCK DOOR is not recognized, but we can only
OPEN the door if we have the key. An exit south becomes available after the door is open, leading us to the belly-button cafeteria -- sorry,
NAVEL MESS HALL -- where
EXAMINE CHAIR reveals a crack in the lug.
BREAK LUG does not work, but
BREAK CHAIR does, revealing the hair pin. Then we can
OPEN TRUCK to reveal the
FUEL CAN, and use the
RUBBER DINGY to go back to the motorboat.
We don't have to actually use the fuel to make our escape -- we just
DROP FUEL in the boat, and victory is presumed:
Lost Island, a.k.a.
Lost on the Great Barrier Reef, ended up as an entertaining meta-adventure for me, as the version available online has bugs which were likely not in the published listing. This was actually a pleasant change of pace -- I had to do a fair amount of code-level exploration to get the game into solveable condition, which made up for the actual design's simplicity. Many of the in-game characters, creatures and items never actually come into play - the
ABORIGINE, JELLY FISH, LEECH,
SKULL and
SEA URCHIN seem interesting but provie completely irrelevant - and there are really only a few puzzles to solve. So while this is far from a great game, and not even a very good one, I still had fun working through it.