Hi!
Sorry for my mistakes, here is the part of SCI code which makes freesci throw OOPS:
push 2
push0
pushi 0f
callk DoSound 4
So it really call DoSound subfunction init with objpointer 0x0f
Before this by series of ldi sag it sets: global_153=032a global_154=0b global_149=09 
global_150=0c
The funny thing, that in ksound.c no check where this is valid object or not
This is why it throws a lots of vm.c exceptions meanwhile this is exceptions from 
DoSound which try to read selector of object on address 0x0f

Second it about scripts. I try to finish code which stores class bytecode out of stack 
and test it with SQ3 rats :) And this mean that ip will be 32-bit :) 
Nikita

Reply via email to