Page 1 of 2

Westbury Mystery

Posted: Fri Nov 20, 2020 7:28 pm
by auraes
I had decompiled the game Westbury Mystery, by Dorothy Millard, with UnQuill, and this had revealed the presence of corrupted data. After contacting John Elliott (the author of UnQuill), it seems that it came from the game's disk image. It is therefore possible that the distributed game is not fully playable. I don't know if there's an undamaged version anywhere...

Re: Westbury Mystery

Posted: Fri Nov 20, 2020 8:22 pm
by Strident
Where did you get your copy of the game from?

Presumably Dorothy has a copy?

I think the IFarchive has copies of the files that were on Dorothy's old web site...
https://www.ifarchive.org/indexes/if-ar ... llard.html

Re: Westbury Mystery

Posted: Sat Nov 21, 2020 7:00 am
by auraes
I've looked at several copies including Dorothy's site and the one from ifarchive, but it seems to be the same everywhere. I had contacted Dorothy about this issue, but I didn't get an answer.
I would have to test the game to make sure the bug is not coming from Unquill or the snapshot or whatever, but it's quite long. If I knew the original database code that seems to be damaged, it would be easier; it's between "TWIS *" and "JUMP *" in the Event Table .

Code: Select all

1d59: TWIS *     Conditions:
                 Actions:
 ccd:               MESSAGE   3 
 ccf:               DONE   
 cd0:               ??28?? 
 cd1:               INVEN  
 cd2:               ??24??    6   22 
 cd5:               ANYKEY 
 cd6:               ??29?? 
 cd7:               ANYKEY 
 cd8:               ??3b??
 1d5d: JUMP *     Conditions:

Re: Westbury Mystery

Posted: Sat Nov 21, 2020 1:41 pm
by Strident
Very odd... Even the "readable" parts of that TWIS * entry seem potentially mangled and wrong, so it does make you wonder if the rest of the database is similarly garbled.

I've not played any of Dorothy's C64 games... I only played the ones that got Spectrum ports back in the day.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 12:53 am
by ahope1
I managed to play the version from the IF Archive, and, making no attempt to solve the game myself, I just followed Dorothy's walkthrough -- which, by the way, has a few minor errors -- and I was able to complete the game with a 100% score:

E3A69C8B-AC85-491D-927A-06F95CF27F72.jpeg
E3A69C8B-AC85-491D-927A-06F95CF27F72.jpeg (248.58 KiB) Viewed 4686 times

Incidentally, the game seems to be large, complicated, and quite fiddly. I imagine it would be frustrating to try to solve it without help. One of the least fun sequences in the walkthrough was this:
GET RAG (it blows away), E, GET RAG (blows away again), E, GET RAG (blows away), W, W, W, GET RAG (blows away), E, E, GET RAG (blows away), W, GET RAG (blows away), E, E, GET RAG (at last you get it)
:x

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 6:35 am
by auraes
It's a good thing that the game is playable, maybe the damaged code only affects default answers to standard verbs, but not useful to finish the game.
I hadn't thought of this before, but maybe for these games made with The Quill, Dorothy organized her code a bit the same way. I'm going to look at the other games, and see what's after TWIS * and the verbs she gives a default answer to, but doesn't use for these games.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 8:50 am
by Strident
Does the rest of the database look okay apart from the section you've posted? We've used unQuill on some heavily modified Quilled games in the past and, although the database initially looks readable, it quite often it doesn't make much sense when you look at it closely... especially if the data has been shifted slightly in memory as part of the modification.

If the rest of the database is okay then you could potentially identify what the garbled section refers to by looking at the vocab list; remembering that the Quill will list the tables in vocab order.

Even what's readable in that garbled section looks odd... INVEN followed by some sort of object/location check and then a couple of ANYKEYs.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 9:06 am
by auraes
Strident wrote:
Mon Nov 23, 2020 8:50 am
remembering that the Quill will list the tables in vocab order.
I hadn't even thought about it! There's JUMP right after the TWIS, so there doesn't seem to be anything missing (maybe another JUMP as there are many of them). The remaining code in the database seems to be correct.
John Elliott modified UnQuill because the code in Westbury Mystery made it crash. That's no longer the case, but the problem remains in the decompilation of the code.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 2:27 pm
by ahope1
Westbury Mystery has a "RAM save" feature that allows you to save your position in the game in RAM rather than to tape or disc.

Was RAMsave a standard feature of Quill on the C64?

❓

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 3:41 pm
by auraes
No, there is no RAMSAVE or RAMLOAD instruction for The Quill or Adventure Writer C64 (I tested). The Quill-AdventureWriter-Reference document, from Strident, indicates that only the Sinclair QL has it.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 5:11 pm
by Strident
The QL had a native RAMSAVE/RAMLOAD command and the Spectrum version had Ramsave through The Patch. I'm not familiar enough with C64 Quill (or C64 Quilled games) to know how authors manage to implement it in that system. A third-party code tweak could easily explain the issues with unQuill etc.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 5:22 pm
by Strident
This section...

Code: Select all

 cd0:               ??28?? 
 cd1:               INVEN  
 cd2:               ??24??    6   22 
 cd5:               ANYKEY 
 cd6:               ??29?? 
 cd7:               ANYKEY 
 cd8:               ??3b?? 
is not connected to the earlier TWIS * entry. as that terminates with a done. So the section of code above seems to be one, or potentially two, different entries that site between TWIS * and JUMP *.

I'm guessing, given the JUMP entry below, that the garbled code should also be a JUMP * entry.

Code: Select all

1d5d: JUMP *     Conditions:
 cd1:               AT       36 
 cd3:               WORN     22 
 cd5:               WORN     41 
 cd7:               WORN     59 
                 Actions:
 cda:               MESSAGE  94 
 cdc:               ANYKEY 
 cdd:               DROPALL
 cde:               GET      22 
 ce0:               WEAR     22 
 ce2:               GET      41 
 ce4:               WEAR     41 
 ce6:               GET      59 
 ce8:               WEAR     59 
 cea:               PLUS     30    3 
 ced:               GOTO     68 
 cef:               DESC   
So... the question is, what might it refer to? Time to look at the message table and see if anything leaps out. The inclusion of the INVEN condact is strange... unless that is a result of the corruption.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 5:24 pm
by auraes
Strident wrote:
Mon Nov 23, 2020 5:11 pm
I'm not familiar enough with C64 Quill (or C64 Quilled games) to know how authors manage to implement it in that system. A third-party code tweak could easily explain the issues with unQuill etc.
On the C64, the RAMSAVE/RAMLOAD is handled by the interpreter. A SAVE/LOAD instruction displays the message 32: "Disc, Tape or RAM?"

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 5:29 pm
by auraes
Strident wrote:
Mon Nov 23, 2020 5:22 pm
Time to look at the message table and see if anything leaps out.
Yes, perhaps a message is not being used or some of them do contain a clue.

Re: Westbury Mystery

Posted: Mon Nov 23, 2020 10:53 pm
by ahope1
Excerpts from a couple of documents in the C64 download of Quill at 8-bit.info suggest that Westbury might be a game made with the Illustrator package, which provides the RAMsave feature: