Opened 10 years ago

Closed 10 years ago

#4614 closed defect (fixed)

TUCKER: crash when talking to old lady at the brain

Reported by: SF/codemarvin Owned by: cyxx
Priority: normal Component: Engine: Tucker
Keywords: Cc:
Game: Bud Tucker

Description

Hi,

Bud Tucker in Double Trouble (DOS/German)

the game crashes every time when I start talking to the old lady that sits below the big brain.
savegame is attached, simply load and talk with lady to reproduce.

System:
openSUSE 11.1 (i586)
2.6.27.29-0.1-default

ScummVM 1.0.0pre044231 (Sep 21 2009 20:49:29)
Features compiled in: Vorbis ALSA zLib

here is the last output from -d3:
--snip--
executeTableInstruction() instruction ssp
executeTableInstruction() instruction tpo
executeTableInstruction() instruction bus
Opening hashed: speech/sam0980.wav
executeTableInstruction() instruction wa+
executeTableInstruction() instruction c1s
Opening hashed: speech/sam0981.wav
executeTableInstruction() instruction wa+
executeTableInstruction() instruction bus
Opening hashed: speech/sam0982.wav
executeTableInstruction() instruction wa+
executeTableInstruction() instruction c1s
Opening hashed: speech/sam0983.wav
executeTableInstruction() instruction was
executeTableInstruction() instruction c1s
Opening hashed: speech/sam1028.wav
executeTableInstruction() instruction sse
loadActionsTable() _nextAction 3
executeTableInstruction() instruction wa+
executeTableInstruction() instruction opt
Segmentation fault
--snip--

Here is the backtrace of gdb:
--snip--
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6fe2b90 (LWP 29728)]
0x08901d07 in Audio::Channel::isFinished (this=0x8cc8f58) at sound/mixer.cpp:76
76 return _input->endOfStream();
(gdb) bt
#0 0x08901d07 in Audio::Channel::isFinished (this=0x8cc8f58) at sound/mixer.cpp:76
#1 0x08901629 in Audio::MixerImpl::mixCallback (this=0x8c86c68, samples=0x8c943d0 "", len=470)
at sound/mixer.cpp:230
#2 0x08051ad8 in OSystem_SDL::mixCallback (sys=0x8c33468, samples=0x8c943d0 "", len=1880)
at backends/platform/sdl/sdl.cpp:661
#3 0xb7ded3d2 in ?? () from /usr/lib/libSDL-1.2.so.0
#4 0xb7df51bb in ?? () from /usr/lib/libSDL-1.2.so.0
#5 0xb7e4381d in ?? () from /usr/lib/libSDL-1.2.so.0
#6 0xb7dd21b5 in start_thread () from /lib/libpthread.so.0
#7 0xb7c143be in clone () from /lib/libc.so.6
--snip-
Cheers

Ticket imported from: #2863721. Ticket imported from: bugs/4614.

Attachments (1)

tucker-de.8 (300 bytes ) - added by SF/codemarvin 10 years ago.

Download all attachments as: .zip

Change History (10)

by SF/codemarvin, 10 years ago

Attachment: tucker-de.8 added

comment:1 by jvprat, 10 years ago

Owner: set to cyxx

comment:2 by cyxx, 10 years ago

Can't reproduce the issue with the french version.
Does it still crash if you try remove or rename the "speech/sam1028.wav" file ?

comment:3 by SF/codemarvin, 10 years ago

After renaming the audio file, it did not crash any more (good guess :-))

Here are some information on the wav file:
It is a 1s sample stating "How can I help you, darling?"
In audacity it looks ok. lame can convert it seemlessly.

size, date etc:
66344 1996-11-21 17:00 speech/sam1028.wav_

file:
speech/sam1028.wav_: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz

comment:4 by cyxx, 10 years ago

Do you have the possibility to run valgrind ?
Maybe it's not related to the wav playback code at all, but some memory corruption when drawing the conversation options (something similar to item #2613839)
Thanks

comment:5 by cyxx, 10 years ago

Do you have the possibility to run valgrind ?
Maybe it's not related to the wav playback code at all, but some memory corruption when drawing the conversation options (something similar to item #2613839)
Thanks

comment:6 by cyxx, 10 years ago

I added some code to clip the text if needed (in case the the german texts are too long), svn revision 44393.
Can you compile the trunk and check if it helps ?

comment:7 by SF/codemarvin, 10 years ago

Got the trunk and compiled to this version (hopefully it is correct one):
ScummVM 1.1.0svn44394 (Sep 27 2009 13:49:22)

With this trunk version the game did not crash any more and speech/sam1028.wav also was played fine and as expected.
Just for my understanding: are you clipping texts like subtitles or from the text-choices?
Or are you clipping the wav files?

The valgrind part I have not done, as your new code seems to fix the problem.
Do you still need anything with valgrind from me?
Cheers

comment:8 by cyxx, 10 years ago

I added clipping when drawing text conversation choices to prevent drawing "outside" of the screen buffer.
You can forget about the valgrind part now. Thanks for testing !

change backported to branch-1-0-0 as revision 44395

comment:9 by cyxx, 10 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.