Scott Adams interpreter discrepancies

Here’s a video of BeebScott in action, from my blog:

4 Likes

If you decompile adv05.dat (The Count) with ScottKit, you see that the room that the player is moved to on SLEEP is actually the closet. In ADVENTUR/CMD the effect (when running ADVENT/D5) looks quite odd:

More discrepancies between Scott Adams interpreters: ScottFree and PerlScott fail to display the correct room description in The Count when you start the game and immediately enter SLEEP three times in a row. The video in my previous post shows what happens in ADVENTUR/CMD — this is the intended, correct behaviour: you die, the game is over, and the room description changes to “I am in a LOT OF TROUBLE (And so Are you!)”.

But in ScottFree, the room description remains “I’m lying in a large brass bed”. Same in PerlScott. ScottKit sort of gets it right but not completely: the correct line (“I am in a LOT OF TROUBLE…”) is displayed on screen, but it’s displayed below the “game is now over” message! Maybe that’s unavoidable because ScottKit implements a “conversational” interface rather than a split-screen one.

But Spatterlight gets it right, as does BeebScott.*

I’ve updated the test game, cases.DAT, so that when you QUIT, it will attempt to take you to a new room (“the Quit Room”) just before the game ends. Here it is in ADVENTUR/CMD:

[*] There were two official versions of The Count for the BBC Micro, both released in the 1980s, but only one of them got this behaviour right!

1 Like

I’m intrigued; which version got it right? I had the Mak Judik Electron version and that had a bug that prevented you from getting back in through the bedroom window after climbing out with the sheet.

The Mak Jukic version. Run it here and enter SLEEP three times to die and activate the correct game-over room description.

1 Like

For example, ScottKit’s demo game Crystal Of Chaos doesn’t work in ADVENTUR/CMD, for precisely this reason (failing to cater for ADVENTUR/CMD’s different implementation of AUTOGET/AUTODROP):

The problem can be fixed by adding explicit unconditional GET and DROP actions for the objects affected by this issue (GET HONEY and DROP VASE in this example), hence my Pull Request.

1 Like

I agree. I think AUTOGET/AUTODROP is something a compiler do, as opposed to something an interpreter do.

Found another discrepancy between the behaviours of different Scott Adams game interpreters. This time, it’s to do with the way the maximum inventory-size limit is implemented:

https://github.com/ahope1/BeebScott/issues/10#issue-1532564008

Not sure how I should resolve this issue.

I think that this is one of the ScottFree bugs fixed in the asfd interpreter (acronym for Another ScottFree Driver, found at Index: if-archive/scott-adams/interpreters/scottfree). The readme mentions

Fixed a bug that would only stop you from getting items if you were
exactly at your carring capacity. Situations can arise when you are
over capacity (such as chigger bites in Adventureland).

This should be fixed in the Spatterlight ScottFree as well, which is now ported over to (the pending release of) Gargoyle. Please let me know if it isn’t.

1 Like

I have actually direct contact with Scott Adams itself, but he’s hopelessy tangled inside the web of born-again “christianism”… I have asked him multiple times about the discrepancies, but seems much more interested in proselitying “christianism” than answering & clarifying about historical technical questions :frowning:

Best regards from Italy,
dott. Piergiorgio.

It’s probably just nice that he’s responded at all to you. I can understand it may be frustrating to not get answers, but I realistically wouldn’t expect anyone to remember intricacies of code they wrote over thirty-odd years ago. I’ve talked to several, less prolific text adventure authors who have forgotten whole versions of games (and even whole games themselves).

2 Likes

It would be interesting to see if any other terps treat this differently. As I see it, BeebScott is part of the original Byte magazine lineage. In contrast, ScottFree/ScottKit is a clean rewrite, which, at least in theory, could mean that BeebScott is more faithful to the original codebase. I should check what PerlScott does at some point here to make sure that I haven’t tried to “correct” the code by looking too closely at ScottFree :sweat:

From the few rare and limited communications I’ve had with Scott Adams, it’s clear that he’s a very passionate and genuinely nice individual, which I respect, even if I may not share some of the things he’s passionate about. It’s okay. He didn’t ask to be a niche public figure or to be responsible for a historical legacy. I’m happy that he sometimes chooses to interact with fans about something that he happened to do for seven years, a long time ago, as a very young man.

As a sidetrack, perhaps there’s some knowledge that could be gleaned from physically visiting The Strong National Museum of Play and examining the source code, etc., that was donated: https://archives.museumofplay.org/repositories/3/resources/152

4 Likes

Scott does seem like a lovely guy. It was his games that got me into IF in the first place, so I was delighted when he started following me on Twitter. He’s had some serious health issues recently, which is something to be aware of. People often turn to religion after a brush with mortality. I’m not religious myself but I respect anyone’s right to believe whatever brings them comfort.

2 Likes

I wanted to throw one more example I didn’t see listed here of a Scott Adams Interpreter variant that depends on autoget - David Malmberg took the existing PET engine from 1979 and besides adding disk load/save functionality, implemented a version of autoget that checks both the noun array and all the “getable” items, then wrote “Castle Adventure” some time after December 1980 (based on the comments).

I had previously written my own game interpreter in 6502 machine code that played Adventureland and Pirate’s Adventure from the data statements in the original PET BASIC games. When I got a copy of Castle Adventure, it didn’t work and I had to re-implement the search loop for GET and DROP to also check the item strings.

I can’t seem to find an on-line copy of the exact version I have but here’s one that’s close (the biggest change is they appear to have renumbered the program line numbers for the printed version) http://archive.6502.org/publications/micro/micro_54_nov_1982.pdf#page=42

There’s also a variant of Castle Adventure for the Commodore 64 in the Interactive Fiction archive, but it has a couple of structural changes (removing load/save routines and chaining to a menu program for all the programs on the disk) as well as some specific presentation changes for the Commodore 64.

Outside of a few differences, all the variations of Castle Adventure can be traced back to the original 1979 version of the game engine.

2 Likes

From what I remember, I think at least one of the C64 versions was an unofficial publication by Keypunch…
http://solutionarchive.com/game/id%2C2225/Castle+Adventure.html

It’d be interesting to see if there are any references anywhere for a version of Castle that predates the Micro type-in version. I guess it might’ve been floating around all the various PET user groups.

I almost certainly got my copy for the PET from someone in the local user group (COPUG). My version is substantially like the one in Micro except mine has line numbers that match the earlier Adventure International version for the PET, which is why I think they renumbered with sequential-by-one line numbers for publication.

1 Like

Certainly by 1981 he was mentioning writing adventures in his bio (such as that in the October 1981 issue of Micro). So there may be evidence out there to support a 1981 date for Castle Adventure. I think David’s PET version of Dog Star is generally attributed to be from around 1980/81.

I wasn’t aware of David Malmberg’s work!

Very cool! Do you think it’s possible to get Castle Adventure (or Crusade Adventure) working with modern terps (perhaps with minor rewrites to the game code)? I guess I’ll need to manually type it in and see if it works at some point :sweat:

I’m having a hard time tracking down Crusade Adventure. The AGT version of Crusade Adventure the game says:

…which is the issue where Castle Adventure was published. Are Castle Adventure and Crusade adventure the same game?

Specifically:

Makes me wonder if mr Malmberg was an amateur coder at the time, or if “management systems” is what they called “computers” at that company.

1 Like

Yes, Crusade Adventure is the AGT implementation of Castle Adventure; hence the reference to the original Micro magazine article.

Re. how early Castle Adventure might be, in a Brass Lantern interview, David said

Reverse-engineering could’ve technically preceded Scott’s magazine articles describing the system.

We’re veering off-topic here, I think, but here’s an article on David’s work for Foremost-McKesson, if you are interested…

David was a very early convert to microcomputers so, yes, I guess you could say he started off as an amateur coder, even if computers became part of his day job; his PET screen print routine appeared in the very first issue of Compute! in 1979.

2 Likes

Ah, that’s interesting. That might explain why I wasn’t able to get the data file to work with other Scott Adams interpreters.

Don’t type it in. I can send you a copy of the BASIC listing for the Apple II and the PET. Just send me a PM if you want either or both.

According to the remarks in both the Apple II and PET listings, David’s game is based on the data structure explained in Creative Computing August 1979, and the TRS-80 interpreter in SoftSide July 1980 and BYTE December 1980. The Micro article was published in November 1982.

EDIT: I just noticed that the original article also acknowledges the articles in Creative Computing, SoftSide and BYTE.