Friday 7 October 2022

David Meny's "Pirate Island" (1985)

I was contacted by David Meny about whether there was a place to play his old BASIC text adventure  games online (Escape from S.S.A.D.B. and Pirate Island).  I had already converted his SSADB (which he had noticed) and was working on his Pirate Island (PISLAND). He gave me permission to share them.

They can be played here: https://archive.org/details/@james_gerrie

In the course of porting Pirate Island, I noticed a few oddities:

First, the solution/walkthrough posted by Dorthy on the CASA archive seems to be missing an "OPEN DOOR" at the very beginning, which I needed to add to get out of the cabin you start in. It's possible the PC version she played was different.  The only thing with that possibility was that I worked from a PC GWBASIC source file that I found online.

Second, there seems no reason the player should be able to simply GET GARLIC after giving the captain the coordinates to find the Island.  The puzzle would seem to be that you should BUY the GARLIC from the cook after the captain gives you the bag of silver (your "pay") for providing the coordinates.  I think the fact that this changes after you give the coordinates to the Captain might simply be the result of a confusion between the flag variable for signaling that the correct coordinates have been provided and the flag for indicating that one has been given the bag of silver.  In any case, I changed it so you still have to BUY the GARLIC from the cook after your interaction with the captain, and also added a check that indicates that you do in fact have the silver to do so.  Otherwise, you could buy the garlic even without being given the silver (and you could also do it from any room, if you knew about it already).  I also added a check to allow you to GET the garlic (and not be killed by the cook) if you happened to put it down after buying it. I also fixed another oddity. You could put the bag of silver down but then you couldn't pick it up again (GET).  That routine only searched 12 items, instead of 14 (the bag of silver is item 14), so it couldn't see the bag was available to pick up if it was dropped.  I also noticed that the printing of a list of items in any room only seemed to print one item, even if others were in the room.  So I made it so that the program prints an exhaustive list of items in a room.

Finally, in the course of porting I streamlined the code and stripped out some redundant variables, fixed some problems with initialization and re-initialization and corrected a few spelling and style errors. I also had to shorten some messages in order to fit the program into the 20K available to expanded MC-10 (with its 16K expansion pack). I also changed it so that the SCORE actually adds to 200/200 when you win rather than 210/200 and I changed the way the score ratings function. Instead of not triggering a category reference if you happened to hit a score exactly at the junction between categories (i.e. searching on > rather than using a >= check to demarcate the categories), now the categories are exhaustive in the ranges they cover.

I also added a game SAVE and LOAD feature (it can only be used in a full emulator, not the online version).  In my correspondence with Mr. Meny I had asked whether his games had this function and he had commented that some recent online reviews he'd come across commented negatively on the absence of SAVE/LOAD, which he felt was a little humourous for relatively small 1980s BASIC text adventures.  I agree. The games don't need it, but it was helpful for me in game testing Pirate Island and relatively easy with the array save command of the MC-10 (CLOAD*Array). I just had to collate all the the arrays (and various flag variables) into a single comprehensive multidimensional array.

Here's a brief demo:

No comments:

Post a Comment