#6407 SCI: QFG1 - Knocking down nest while running freezes game

closed-fixed
M. Kiewitz
5
2014-10-31
2013-09-08
Anonymous
No

In the screen immediately north of the town gates in QFG1 (EGA), throwing a rock at the nest is supposed to reveal a ring. However, if you're running at the time, the game freezes when your character attempts to take the ring.

Tested on Debian x86_64 with both distro package and latest nightly, EGA version of QFG1 as purchased from GOG. A savefile is attached; simply type "throw rock at nest" to exhibit the bug. Type "walk" or "sneak" beforehand to show correct behavior.

Discussion


  • Anonymous
    2013-09-08

    Savegame exhibiting bug

     
    Attachments
  • digitall
    digitall
    2013-09-09

    • summary: Knocking down nest while running freezes QFG1 --> SCI: QFG1 - Knocking down nest while running freezes game
     
  • douglas
    douglas
    2014-07-12

    Replicated with mingw-w64-stable-bccbdb75 1.7.0pre64-gbccbdb7 (64-bit) in Windows 7 using Anonymous' savegame.

     
  • digitall
    digitall
    2014-09-07

    Replicated with savegame, both the bug and avoiding by walking. This may be a scripting bug.

    Ran under GDB, triggered the lockup and broke execution to get a backtrace:
    #2 0x0000000000407a73 in OSystem_SDL::delayMillis (this=0xa1a010, msecs=10)
    at backends/platform/sdl/sdl.cpp:500
    #3 0x000000000043817e in Sci::kGetEvent (s=0x11da060, argc=2, argv=0x11f94e8)
    at engines/sci/engine/kevent.cpp:203
    #4 0x000000000046d38e in Sci::callKernelFunc (s=0x11da060, kernelCallNr=28,
    argc=2) at engines/sci/engine/vm.cpp:383
    #5 0x000000000046f30e in Sci::run_vm (s=0x11da060)
    at engines/sci/engine/vm.cpp:866
    #6 0x000000000042fab9 in Sci::SciEngine::runGame (this=0x1095870)
    at engines/sci/sci.cpp:718

     
    Last edit: digitall 2014-09-07
  • digitall
    digitall
    2014-09-07

    Attaching backtrace from ScummVM SCI internal debugger. The first two images show the full backtrace after "throw rock at nest" but before the point of lockup in the "run" case, the third shows the backtrace after lockup.

     
  • digitall
    digitall
    2014-09-07

    Second shot...

     
  • digitall
    digitall
    2014-09-07

    • labels: Actor behavior --> Actor behavior, Script bugs
     
  • This is likely the pathfinder not getting as close to the target as the script is expecting; there are some similar bugs in the tracker. (But the new tracker search function doesn't like me enough to let me easily find them.)

     
  • M. Kiewitz
    M. Kiewitz
    2014-10-31

    Just a little update on this one.

    I was just able to replicate it using the original SCI interpreter by Sierra, which means it's actually a game bug (possibly the only one in the whole game). I should be able to patch the script to fix it.

     
  • M. Kiewitz
    M. Kiewitz
    2014-10-31

    A bit more information:
    the bug exists in at least version 1.000 and 1.012 of the PC version
    It was definitely fixed by Sierra in the Japanese PC-9801 version

    Script patch done.
    fixed in 5b42fa81961d86b20659e50f10eb828b900dd1d9

     
  • M. Kiewitz
    M. Kiewitz
    2014-10-31

    • labels: Actor behavior, Script bugs --> Actor behavior, Script bugs, Also occurs in the original
    • status: open --> closed-fixed
    • assigned_to: M. Kiewitz