Ghost King, a Scott Adams Literary Adventure Diversion (S.A.L.A.D.)

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.

Play now (ScottFree via DOSBox.js)
Play now for Commodore 64 (ScottFree port)
IFDB entry


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).

Downloadable version temporarily in the unprocessed dir:

I’ve had the same problem in both Firefox and Chrome on mac. The browser’s resize feature doesn’t work in either.

WFM Chrome/MacOS. What’s your screen/window size?

I was able to get the game to display properly in Chrome by making the browser window itself narrower.

1 Like

My screen is 2560 x 1600 with the window taking as much space as possible without being in full screen mode.

:+1: This works, thanks!

I’m wondering if this might be a default window zoom issue, those of you having trouble, are you at something other than 100%?

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.

1 Like

The current version is all visible on one screen for me, but the text is squashed together. (I’m using firefox on a mac, resolution 1920 x 1080.)

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.


Looks good!

1 Like

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.

	? 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 \"

	SETZ 11
	rem "cont"

	CT<-N 20
	X->Y OBJ_14 ROOM_17
	rem "cont"

It would be nice if it could run on a TRS-80.

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 " (&quot) 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.