#9871 closed defect (fixed)

FULL THROTTLE: Crash when skipping intro (also in original)

Reported by: salty-horse Owned by: sev-
Priority: low Component: Engine: SCUMM
Keywords: Cc:
Game: Full Throttle

Description

During the intro, if you press ESC at a particular moment the game crashes.

This happens at the second part of the intro (so you can press ESC once to reach it). Press ESC when the camera focuses on Ben's eyes (right after Corley asks "who's the guy that drove over my car?!").

The DOS interpreter crashes with this message:
`WRAP` not found in 000... illegal block len 0

ScummVM crashes with:

#3  0x00007fc34cd26bf2 in __GI___assert_fail (assertion=0x7fc333063101 "cptr", file=0x7fc333062fac "engines/scumm/palette.cpp", line=1319, function=0x7fc333063106 "const byte *Scumm::ScummEngine::getPalettePtr(int, int)") at assert.c:101
#4  0x00007fc332ef9342 in Scumm::ScummEngine::getPalettePtr (this=0x39ee620, palindex=0, room=0) at engines/scumm/palette.cpp:1319
#5  0x00007fc332efa219 in Scumm::ScummEngine::darkenPalette (this=0x39ee620, redScale=255, greenScale=255, blueScale=255, startColor=16, endColor=255) at engines/scumm/palette.cpp:974
#6  0x00007fc332f6bf26 in Scumm::ScummEngine_v6::o6_roomOps (this=0x39ee620) at engines/scumm/script_v6.cpp:1639
#7  0x00007fc332f72106 in Common::Functor0Mem<void, Scumm::ScummEngine_v6>::operator() (this=0x39d53a0) at ./common/func.h:388
#8  0x00007fc332f73afe in Scumm::ScummEngine::executeOpcode (this=0x39ee620, i=156 '\234') at engines/scumm/script.cpp:493
#9  0x00007fc332f73982 in Scumm::ScummEngine::executeScript (this=0x39ee620) at engines/scumm/script.cpp:486

Change History (4)

comment:1 Changed 22 months ago by salty-horse

Component: --Unset--Engine: SCUMM
Game: Full Throttle
Priority: normallow

comment:2 Changed 21 months ago by BenCastricum

Owner: set to BenCastricum

Here's the cause of it:

$ ./scummvm-tools/descumm -7 dumps/script-59.dmp    
<...>
[00C3] (95) beginOverride()
[00C4] (73) jump 5b8
<...>
[01C1] (BA) talkActor(sound(0x2155, 0xA) + "Who's the guy that drove over my car?!",7)
[01FC] (A9) wait.waitForMessage()
[01FE] (6C) breakHere()
[01FF] (A4) VAR_VIDEONAME[0] = "squint.san"
[0211] (C9) kernelSetFunctions.startVideo([0])
[021B] (9C) roomOps.screenEffect(257)
[0220] (7B) loadRoom(0)
[0224] (B1) delaySeconds(1)
[0228] (7B) loadRoom(5)
[022C] (74) startSound(4)
[0230] (61) drawObject(47,0)
[0237] (B1) delaySeconds(2)
[023B] (AC) soundKludge([14,4,1536,0,30])
[024E] (A4) VAR_VIDEONAME[0] = "ks_11.san"
[025F] (C9) kernelSetFunctions.startVideo([0])
[0269] (9C) roomOps.screenEffect(129)
[026E] (7B) loadRoom(98)
[0272] (70) setState(485,1)
[0279] (7F) putActorInXY(5,71,157,255)
[0286] (6C) breakHere()
[0287] (BA) talkActor(sound(0xFFFFA47F, 0xA) + "Maybe Old Man Corley got himself in trouble.",2)
<...>
[05B8] (5D) if (VAR_OVERRIDE) {
[05BE] (9C)   roomOps.darkenPalette(255,16,255)
[05C9] (**) }
[05C9] (96) endOverride()

Briefly room 0 is loaded (during the scene with Ben's eyes). When at that time user aborts the intro a jump to 05B8 occurs. Next function is a palette operation, but room 0 has no palette (as far as I can see it's just a dummy room).

comment:3 Changed 21 months ago by BenCastricum

PR993 should fix it.

Last edited 21 months ago by BenCastricum (previous) (diff)

comment:4 Changed 21 months ago by sev-

Owner: changed from BenCastricum to sev-
Resolution: fixed
Status: newclosed

Thanks to Ben, PR993 fixed it, merged.

Note: See TracTickets for help on using tickets.