Menu

#4909 GOB1 : Engine Abort on Lose

GOB: Gobliiins
closed-fixed
1
2013-11-17
2010-06-21
digitall
No

If you lose by depleting the life bar, the engine aborts with the message :
WARNING: unimplemented opcodeGob: 39 [0x27]!
Unknown block type 0 in Inter::callSub()!

My version is gob1-win-gb i.e. Gob1 Windows Multilingual

This may be a regression of the correction for bug #1324814
i.e. patch #1325224 which was very similar for the EGA version,
or something similar.

Valgrind does report a number of invalid memory accesses to
offset etc.

ScummVM 1.2.0svn50104 (Jun 21 2010 06:34:29)
Features compiled in: Vorbis FLAC MP3 ALSA RGB zLib FluidSynth
on Linux x86_32

Discussion

  • digitall

    digitall - 2010-06-21

    I have successfully replicated this with r48000, so this is not a recent regression.
    This has also been replicated by Strangerke with both UK and FR game versions.

     
  • digitall

    digitall - 2010-06-21

    Output Log running with Valgrind and -d10 --debugflag=GoblinOpcodes

     
  • Strangerke

    Strangerke - 2010-06-24

    I've added the initialization of paramCount in gob1. This fixes the valgrind error and the engine doesn't abort any longer (r50209). On the other hand, after you enter a level code to "restore" a game, the game is in a wrong state and is not playable.

    Code used to test the behavior : UOTODDV

     
  • digitall

    digitall - 2010-06-27

    I doubt the UOTODDV issue was linked to this change (except that before this you are unable to reload so would not have seen this).

    Full replication details :
    Load UOTODDV (Screen with Apple Tree and Diamond Mine, holding Picaxe, 1 life point left)
    Use the Technical Goblin's Picaxe on the second apple from right.
    You lose the game, so reload UOTODDV.
    The game is now in a stuck state with no goblin movement or switching possible, though the engine is not stuck.

    This is not associated with any valgrind issues, so it is likely that the issue is a bug in the engine scripts.

    This is likely present in the original interepeter, but I have been unable to get this to run, so can not confirm this.
    Will continue to investigate and try to trace down the root cause of this.

     
  • Sven Hesse

    Sven Hesse - 2010-06-27

    Yes, this seems to be a script bug, it happens in in the original interpreter too (which you have to start with the command line argument "290869", otherwise it immediately exists).

    Probably not much I can do about it, but will try to trace the scripts when I find the time.

     
  • Sven Hesse

    Sven Hesse - 2010-06-27
    • labels: 415217 --> Script bugs
    • priority: 5 --> 1
     
  • digitall

    digitall - 2010-06-29

    Traced problem to Script 11289 in AVT00.TOT.
    var32_1140 ( 285) and var32_236 (59) need to be reset to allow Goblin Movement.
    Have added workaround to do this i.e. r50480, and tested for that screen.

     
  • Max Horn

    Max Horn - 2010-06-30

    So, can this item be closed now?

     
  • digitall

    digitall - 2010-07-03
    • status: open --> closed-fixed
     
  • digitall

    digitall - 2010-07-03

    Workaround seems good and doesn't break non Win Gob1 versions. Closing...