> > bug #326 is the Colone's Bequest bug where ego falls down the stairs when
> > not holding the lantern. In SSCI, she falls to her death. in FSCI, she
> > bounces back out and moves oddly from then on.
> >
> > I've done side-by-side debugging on this problem as well, and found the
> > following difference.
>
> [...]
>
> > pc=25ae acc=0001 o=0684 fp=6374 sp=6374
> > Step #2296366
> > 25ae: [W] ret
> >
> > pc=776c acc=0000 o=aada fp=6360 sp=636c
> > prev=0 sbase=6336 globls=1958 &restmod=0
> > Step #2296367
> > 776c: [B] pTos 0c (x)
>
> [...]
>
> > In Sierra SCI, the accumulator is 1 after the ret instruction. in FSCI, it
> > is 0. backtrace shows:
> >
> [...]
> > 6:[5] Act::doit()
> > obj@0684 pc=2323 sp=635c fp=6356
> > 7:[6] MoveTo::doit()
> > obj@aada pc=776e sp=636e fp=6360
>
> Did you backtrace at the beginning of the instruction sequence you print,
> or afterwards?
afterwards.
> If afterwards, I'd need a trace from before that.
Call stack (current base: 9):
0:[ffffffff] CB1::replay()
obj@0eea pc=0b7d sp=6338 fp=6338
1:[0] Game::replay()
obj@0eea pc=57a6 sp=633c fp=633c
2:[1] CB1::doit()
obj@0eea pc=0cab sp=6344 fp=6340
3:[2] Game::doit()
obj@0eea pc=5841 sp=6348 fp=6348
4:[3] kAnimate(7924, 0001)
5:[4] ego::doit()
obj@0684 pc=4eab sp=6352 fp=6352
6:[5] Act::doit()
obj@0684 pc=2323 sp=635c fp=6356
7:[6] MoveTo::doit()
obj@aada pc=776c sp=636c fp=6360
8:[7] kDoBresen(aada)
9:[8] ego::canBeHere()
obj@0684 pc=2574 sp=6378 fp=6374
> I can only think of two cases where a 'ret' would (implicitly) cause the
> accumulator to change:
> a) if a varselector read is on the stack
> b) if the 'ret' terminated a vm call from below a kernel function
It looks like the ret terminated the kDoBresen, but I could be wrong. There is
a list gotten from cast::Elements that might be worth investigating, but how
do I see the key/value pairs in Sierra SCI's debugger? I know how to use listi
nfo in FSCI already, but need to compare the values to the original
implementation.
Hope this helps, let me know what else I can do!