Opened 4 years ago

Closed 4 years ago

#9758 closed defect (fixed)

SCI: KQ7: Death screen infinite loop

Reported by: bgK Owned by: bgK
Priority: normal Component: Engine: SCI
Version: Keywords: sci32
Cc: Game: King's Quest 7

Description (last modified by bgK)

Game: KQ7 Dos English 2.00b from
ScummVM: Current git master

In chapter 2, when trying to cross the lava chasm, Rosella dies. The death screen enters in an infinite loop after Rosella finishes speaking.

To reproduce, load the attached save, click across the chasm. Wait for the death screen to lock up.

Backtrace while in the infinite loop:

#0  0x000000000049791c in Sci::reg32_t::getOffset (this=0x3292038) at ../engines/sci/engine/vm_types.h:199
#1  0x000000000049793d in Sci::reg32_t::incOffset (this=0x3292038, offset=1) at ../engines/sci/engine/vm_types.h:207
#2  0x0000000000494d2b in Sci::run_vm (s=0x2e9d590) at ../engines/sci/engine/vm.cpp:679
#3  0x000000000048682c in Sci::invokeSelector (s=0x2e9d590, object=..., selectorId=250, k_argc=2, k_argp=0x2eb45d8, argc=0, argv=0x2eb45e0)
    at ../engines/sci/engine/selector.cpp:291
#4  0x00000000004568b8 in Sci::kListEachElementDo (s=0x2e9d590, argc=2, argv=0x2eb45d8) at ../engines/sci/engine/klists.cpp:620
#5  0x00000000004941cc in Sci::callKernelFunc (s=0x2e9d590, kernelCallNr=90, argc=2) at ../engines/sci/engine/vm.cpp:462
#6  0x0000000000495e40 in Sci::run_vm (s=0x2e9d590) at ../engines/sci/engine/vm.cpp:920
#7  0x000000000043a3a7 in Sci::SciEngine::runGame (this=0x2d1f730) at ../engines/sci/sci.cpp:654
#8  0x00000000004392dc in Sci::SciEngine::run (this=0x2d1f730) at ../engines/sci/sci.cpp:425
#9  0x000000000040df56 in runGame (plugin=0x110a870, system=..., edebuglevels=...) at ../base/main.cpp:263
#10 0x000000000040f147 in scummvm_main (argc=1, argv=0x7fffffffe868) at ../base/main.cpp:529
#11 0x000000000040c283 in main (argc=1, argv=0x7fffffffe868) at ../backends/platform/sdl/posix/posix-main.cpp:45}}}

Attachments (2)

kq7-cd.001 (49.3 KB ) - added by bgK 4 years ago.
Chapter 2 Chasm
Capture d'écran de 2017-05-06 13-49-05.png (96.0 KB ) - added by bgK 4 years ago.
SCI backtrace

Download all attachments as: .zip

Change History (8)

by bgK, 4 years ago

Attachment: kq7-cd.001 added

Chapter 2 Chasm

comment:1 by bgK, 4 years ago

Description: modified (diff)

by bgK, 4 years ago

SCI backtrace

comment:2 by bgK, 4 years ago

I attached a SCI backtrace as requested by m_kiewitz. It's not from the same death, but all deaths appear to get stuck in the same way.

comment:3 by bgK, 4 years ago

That SCI backtrace comes from the death in room 2550 when trying to ride the cart without a "fourth wheel".

comment:4 by bgK, 4 years ago

This seems to be a case of the screen not updating correctly rather than an infinite loop. The death screen buttons can still be clicked despite the mouse cursor not changing position.

comment:5 by csnover, 4 years ago

I’m not able to reproduce this bug with KQ7 2.00b from the KQ Collection (1997), so I strongly suspect that there are fan patches in the GOG release (especially knowing that they would have had to patch the firecracker puzzle) that are breaking the game. Please get in touch with me on IRC so we can compare files.

comment:6 by bgK, 4 years ago

Owner: set to bgK
Resolution: fixed
Status: newclosed

This was fixed by snover in 57dd79d4dcb977f9803c8c4d8fe6c19eaac35d90 (updating the screen in tight loops around kGetEvent)

Note: See TracTickets for help on using tickets.