Opened 4 years ago
Closed 4 years ago
#10760 closed defect (fixed)
QFG4: Crash entering the inn
|Reported by:||Vhati||Owned by:||sluicebox|
|Version:||Keywords:||sci32 original has-pull-request|
|Cc:||Game:||Quest for Glory 4|
I started a new game, grabbed the Dark One Sign, ran straight to town before sunrise, climbed the wall. The sun was up as I reach the Burgomeister's window, who did his shouty thing. When I click the inn's door, ScummVM crashed. As luck would have it, I created a save immediately before clicking the door.
I was unable to replicate this in the original interpreter.
Change History (8)
by , 4 years ago
comment:1 by , 4 years ago
ScummVM 2.1.0git3770-g15306581ab (Oct 18 2018 04:27:32)
Windows 7 64bit
QFG4 CD (English)
File - 5kb MD5 - Full MD5
RESOURCE.000 - 263dce4aa34c49d3ad29bec889007b1c - 1364ba69e3c0abb68cc0170650a56692
RESOURCE.AUD - c39521bffb1d8b19a57394866184a0ca - 71098b9e97e20c8941c0e4812d5f906f
RESOURCE.MAP - aba367f2102e81782d961b14fbe3d630 - 801a04cc6aa5d437681a2dd0b6545248
RESOURCE.SFX - 3cf95e09dab8b11d675e0537e18b499a - 7c858d7253f86dab4cc6066013c5ecec
comment:2 by , 4 years ago
Forgot to mention: the console said...
" " "
lookupSelector: Attempt to send to non-object or invalid script. Address 0000:00
00, method Grycler::init (room 260, script 64977, localCall ffffffff)!
" " "
comment:3 by , 4 years ago
Same script, different room, but sounds like the same cause as bug #10747. This will need that script to be investigate and disassembled by a SCI developer and a workaround patched into the engine.
If this is just a read of an uninitialised variable, this should be a simple solution, but if the issue is more complex, a script patch may be needed:
comment:4 by , 4 years ago
Same script, different room, but sounds like the same cause
Yep. Crashes in the same way.
) backtrace script 64992 - MoveTo::init(hero, 76d, 111d, 0041:29b4); pc=0017:0456 script 64998 - hero::setHeading(0); pc=0006:0f31 script 28 - stopGroop::doit(hero, 0, 0); pc=0013:01b12 script 64977 - Grooper::doit(hero, 0, 0); pc=0015:022e script 64998 - hero::setCycle(Grycler, stopGroop, 0); pc=0006:06af script 64977 - Grycler::init(hero, stopGroop, 0); pc=0015:0309 is the crashing opcode
) vo hero cycler [0012:036c] Grycler ) disasm 0012:036c init bc
0015:0309: 4a 06 00 send 0006 <no such object>::isKindOf[INVALID_OBJ](0018:0197)
At that moment, hero's "looper" property is stopGroop.
stopGroop's "oldCycler" property is 0000:0000.
oldCycler is already null the moment the OP savegame is restored.
comment:5 by , 4 years ago
|Keywords:||sci32 original has-pull-request added; SCI32 removed|
comment:6 by , 4 years ago
comment:7 by , 4 years ago
|Status:||new → closed|
SavedGame - Approaching the inn