Opened 11 years ago
Closed 10 years ago
#6407 closed defect (fixed)
SCI: QFG1 - Knocking down nest while running freezes game
Reported by: | (none) | Owned by: | m-kiewitz |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | original script | |
Cc: | Game: | Quest for Glory 1 |
Description
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.
Ticket imported from: #3614986. Ticket imported from: bugs/6407.
Attachments (4)
Change History (15)
by , 11 years ago
comment:1 by , 11 years ago
Summary: | Knocking down nest while running freezes QFG1 → SCI: QFG1 - Knocking down nest while running freezes game |
---|
comment:2 by , 10 years ago
Replicated with mingw-w64-stable-bccbdb75 1.7.0pre64-gbccbdb7 (64-bit) in Windows 7 using Anonymous' savegame.
comment:3 by , 10 years ago
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
by , 10 years ago
Attachment: | backtrace-after-throw-part1.png added |
---|
comment:4 by , 10 years ago
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.
by , 10 years ago
Attachment: | backtrace-after-throw-part2.png added |
---|
by , 10 years ago
Attachment: | backtrace-at-point-of-lockup.png added |
---|
comment:7 by , 10 years ago
Keywords: | script added |
---|
comment:8 by , 10 years ago
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.)
comment:9 by , 10 years ago
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.
comment:10 by , 10 years ago
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
comment:11 by , 10 years ago
Keywords: | original added |
---|---|
Owner: | set to |
Resolution: | → fixed |
Status: | new → closed |
Savegame exhibiting bug