Your father is dead and you’re sure your uncle is responsible. You tried to tell your mother so. Instead of believing you, she married him. Now you’re going to uncover the truth and set things right…
GHOST KING is the first entry in the fictitious Scott Adams Literary Adventure Diversions (S.A.L.A.D.) series, not-actually-launched in 1980 to adapt classic tales to 8-bit microcomputer adventures. Based on Hamlet by William Shakespeare and the style of Scott Adams and Adventure International. Created hastily and with minimal proofreading in Mike Taylor’s ScottKit.
This looks like a lot of fun! Are there any ways to play apart from the website? Or if not, is there a way to adjust the screen size of the DOSBox program? I can’t seem to find a way to see the whole screen at once, so I have to keep scrolling up and down between the input at the bottom and the results at the top of the screen.
Edit: Oh, I just noticed you submitted to the IF Archive! I’ll get it from there when it’s ready.
What browser/device combo is giving you that trouble? I may be able to tweak the site, but it has “just worked” on any desktop browser I’ve tried (and been broken in some way on mobile).
The window zoom doesn’t work in either browser I tried. The text below the virtual screen will scale as expected but the virtual screen itself stays the same size.
I’ve made a CSS fix that I think should at least be livable on both very wide and very tall screens. Optimizing it looks like it needs someone who knows more about this stuff than I do, but please tell me if it’s still unviewable for you and if that’s the case, what window resolution you’re using.
Tweaked again. I’ve opened at various window sizes and everything at a reasonable size and aspect seemed at least readable. Really nailing it for a variety of browser and size combos probably needs more CSS than I am capable of, and/or an approach that doesn’t rely on DOSBox.
There’s something weird about the code, you have two EXRM0’s in a row, and a CONT in a .cont, which as far as I remember doesn’t make much sense.
>KILL CLAU
? IN ROOM_5 && BIT 10 && -BIT 11
"*DEAD FOR A DUCAT!*^Wait NOT CLAUDIUS at all!^I killed Polonius, \"
"Ophelia's dad^'What a RASH and BLOODY deed!' Gertrude runs away!^Time to \"
"LUG THE GUTS!"
DELAY
DROPX OBJ_16
CONT
.cont
EXRM0
EXRM0
SETZ 11
CONT
rem "cont"
.cont
CT<-N 20
X->Y OBJ_14 ROOM_17
rem "cont"
The double-EXRM0 is what ScottKit calls swap_room and you’re right, it doesn’t make sense except that it’s the best* available workaround to ScottKit Issue 38.
We discuss this a bunch in what started out as a thread about the 99 message limit and then turned into a thread about ScottKit’s iffy management of situations requiring continue. (Casual glancing at a couple of decompiled original SA games suggests that he does in fact use continue a little differently for lengthy actions than SK does, but aside from being inefficient I’m not sure there’s anything wrong with continue-inside-continue. In any case it’s a compiler question.)
As for running on a TRS-80, yes, I agree, but I couldn’t find an accessible workflow to test it and try to make that happen. Do you have one?
*- okay sure all of the other workarounds were equally pretty but I wanted to pick one and stick with it, and that’s the one I picked.
If your game respects the limits of the Scott Adams 8.5 interpreter for TRS-80, there are some possibilities to tinker with The Adventure System (I did this to fix the James Bond Adventure game, visible on CASA).
To replace the " (") in strings, it seems preferable to use the ` (&grave) instead of the ’ (&apos)
You’re right, it does look like ` is the authentic quotation mark for SA games, I’ll keep that in mind for S.A.L.A.D. #2.
I would really appreciate a collaborator for this. I have found that my enthusiasm for learning how to operate emulators for platforms that I have very little person experience with has significantly diminished since the early 1990s when it was in fact one of my most favoritest things to do.
Another thing, don’t mix in your code automatic-actions and player-inputs. Automatic actions will be ignored if they are not placed first (with Scott Adams’ interpreter).
Ah, yes, I see now looking at a couple of decompiled SA adventures that all of the occur events are at the top and then the actions follow. It wasn’t clear to me that that was a limitation/requirement of the original interpreters.
That’s unfortunate from a writing perspective but is easy-ish to clean up in source before building a binary for a classic interpreter. I suppose it doesn’t hurt to ask for some sort of “compile-strict” mode, either…
Thank you for going through the effort of building the TRS-80 disk!
Can you point to specific documentation on this 8.5 interpreter, and ideally highlight all of the areas where the GK object code violates it? I’ll file an optimistic feature request for ScottKit to compile with strict compliance, but it will definitely help if we have the specifics of what that means.