Opened 5 months ago

Closed 5 months ago

Last modified 5 months ago

#11211 closed defect (fixed)

QFG4: Squid Statue Puzzle Crash

Reported by: illum1nerdi Owned by: sluicebox
Priority: normal Component: Engine: SCI
Keywords: Cc: illum1nerdi, sluicebox
Game: Quest for Glory 4

Description

OS: Windows 10 Pro v1903
ScummVM Version: Win64 v2.1.0
Game: QFG4 DOS CD

Issue:
When attempting to solve the Squid Pillar puzzle I get the following crash upon entering the final letter in 'AVOOZL':

User picked target 'qfg4-cd' (gameid 'sci')...

Looking for a plugin supporting this gameid... SCI [all games]
Starting 'Sierra SCI Game'

Invalid arithmetic operation (require unsigned number - params: 0012:069e and 0000:0000) from method runesPuz::handleEvent (room 800, script 801, localCall ffffffff)!

The runes dial refuses to spin a full rotation as specified in the following PR: https://github.com/scummvm/scummvm/commit/c1610a9fd1d07c3652509e673be6e111f55df623

Due to the rune dial not spinning properly, I have to click on some of the letters multiple times in order to get the dial to "land" on the letter and properly "light up" - I suspect this is what is causing the crash since I have to click 7 or 8 times to actually get through the puzzle.

It would appear that the bugs fixed in that PR have returned - as stated earlier, the rune spinner does not turn a full rotation and I previously was able to get crashes from Grooper when sliding down the pathway on the same screen at the beginning of the game, but those have since disappeared and I was able to work around them.

Additionally I have viewed stutters from the walk cycle of my hero so it seems like the symptoms fixed by that PR have returned or are otherwise not being patched by 2.1.0 for some reason? Possible regression?

Thanks!

Attachments (1)

qfg4-cd.017 (67.5 KB ) - added by illum1nerdi 5 months ago.
Savegame located at Squid Monolith. Crash is repeatable for me in v2.1.0

Download all attachments as: .zip

Change History (8)

by illum1nerdi, 5 months ago

Attachment: qfg4-cd.017 added

Savegame located at Squid Monolith. Crash is repeatable for me in v2.1.0

comment:1 by illum1nerdi, 5 months ago

Cc: illum1nerdi added

comment:2 by sluicebox, 5 months ago

Cc: sluicebox added
Keywords: QFG4 removed

Thanks for the detailed report and saved game. I can't reproduce that crash yet with your save, I tried a few times, can you walk me through the exact puzzle clicks, and maybe timings, that triggers this? (When should I pause, when should I click fast)

If you can get it to crash again, can you type "bt" into the text console and paste or screenshot the results? That could help me reproduce it too.

Just to clarify, the dial not spinning all the way around and the walking stutter are not bugs that we fix. They are original game behavior that is unfixable. They cause several crashes, and we fix those crashes as they're discovered. From your error message, I think this is something different.

I fixed a puzzle bug where a letter would light up a but you wouldn't get credit. Now as soon as the letter turns red you get credit for it. It's possible that my fix introduced the crash you're seeing, or maybe it's something else.

comment:3 by sluicebox, 5 months ago

Nevermind! I can reproduce it, and it's totally my fault.

in reply to:  3 comment:4 by illum1nerdi, 5 months ago

Replying to sluicebox:

Nevermind! I can reproduce it, and it's totally my fault.

LOL glad you were able to repro it, I'm unable to NOT repro it.

JUST in case your bug differs from mine, here's that callstack trace from my crash that you requested:

Call stack (current base: 0x0):

0: script 64994 - Glory::replay()

obj@0001:4520 pc=0003:0551 sp=ST:0007 fp=ST:0000 argp:ST:0001

1: script 0 - Glory::doit()

by 0 obj@0001:4520 pc=0001:02b3 sp=ST:000d fp=ST:0009 argp:ST:0008

2: script 64994 - Game::doit()

by 1 obj@0001:4520 pc=0003:070d sp=ST:0012 fp=ST:000f argp:ST:000e

3: script 64996 - User::doit()

by 2 obj@001d:0a72 pc=001d:00ad sp=ST:0014 fp=ST:0014 argp:ST:0013

4: script 64996 - User::handleEvent(001d:0a48)

by 3 obj@001d:0a72 pc=001d:0339 sp=ST:001e fp=ST:0017 argp:ST:0015

5: script 64999 - mouseDownHandler::handleEvent(001d:0a48)

by 4 obj@0003:15c0 pc=0004:05fa sp=ST:0025 fp=ST:0021 argp:ST:001f

6: script 801 - runesPuz::handleEvent(0012:03e7)

by 5 obj@03e9:0b47 pc=03e9:03d8 sp=ST:0029 fp=ST:0028 argp:ST:0026

Thanks for all the hard work on QFG4 - I know that Blade Runner is getting a lot of the love right now but QFG4 is one of my favorite games of all time, so glad to see it working so well :)

comment:5 by sluicebox <22204938+sluicebox@…>, 5 months ago

In 0334d953:

SCI32: Fix QFG4 error when clicking after runes puzzle

Fixes a bug in a script patch, trac #11211

comment:6 by sluicebox, 5 months ago

Owner: set to sluicebox
Resolution: fixed
Status: newclosed

Thanks for the kind words, I'm glad you're enjoying it!

The error occurs if you click during the delay between selecting the final letter and the screen switching back to the room.

The fix will appear in the next daily development build in about 24 hours, which should be labeled October 18th. If you test that and find a problem, please reopen this issue. Thanks again for finding this!

comment:7 by sluicebox <22204938+sluicebox@…>, 5 months ago

In beffe7f0:

SCI32: Fix QFG4 error when clicking after runes puzzle

Fixes a bug in a script patch, trac #11211

Note: See TracTickets for help on using tickets.