Hi,
On Sat, 20 May 2000, Chris Kehler wrote:
> > This one looks like a script version mismatch; I'll add some code to make
> > this more robust.
> > Which interpreter version does your KQ4 run on in DOS (in case you have a
> > DOS to test on)?
> > (press LSHIFT-RSHIFT-PAD+ in the game to find out)
>
> I don't have a DOS machine handy, but sierra.exe seems to contain the
> string 0.000.274.
Interesting! The oldest interpreter I have is 0.000.294; yours might have
some new weirdnesses.
> > Please try explicitly setting the interpreter version in FreeSCI
> > (0.000.396 should give you 'old script' behaviour, 0.000.397 and later
> > will use the newer, much more common scripts)
>
> Lars' commit from this morning/last night fixed the version detection,
I'll add the stability fixes anyway.
> which brings it back to the old bomb out spot:
[...]
> Emulating SCI version 0.000.396
> Calling KQ4::play()
> Invalid kernel function 0x68 requested
> pc=4928 acc=0004 o=1fe8 fp=368e sp=3690
> prev=0 sbase=368c globls=323a &restmod=0
> Step #13
> 4928: [B] callk <invalid>[68] 00
> Kernel params: ()
0x68 is usually GetSaveDir(), which is actually called very early in most
SCI programs (step #13 looks realistic).
However, only 98 (or so) kernel function names were listed, so we have to
assume that your KQ4 is missing more than one kernel function name (later
games usually don't have the name of the last kernel function).
I'll set the number of kernel functions to 0x6e for games older than
0.000.297, and call the default functions. That should fix this problem.
> If I had any clue how to use the debugger, I'd poke at it myself ;)
Actually, most kernel functions are described in the online documentation
(or you can use "list cmds" and use "man foo" to get a description of
"foo")).
The most commonly used functions are "s" and "debuglog", you might want to
check those first.
llap,
Christoph