Opened 14 years ago

Closed 14 years ago

#2010 closed defect (worksforme)

MT32 emulation causes sigsegv on BE systems

Reported by: SF/lemmit Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 2

Description

scummvm -v

ScummVM 0.8.0CVS (Apr 29 2005 01:27:29)
Features compiled in: Vorbis MP3 ALSA zLib

When trying to load the game with mt32 emu enabled, I get a
reproducible crash. The crash happens when initialising notes (for
example: initializing note C 0). Crash happens at a random note.
Before this, an error about initializing wave cache is displayed.

debugging led to the following:

1. sounds/softsynth/mt32/tables.cpp:654 calls InitNote
2. initNote calls initWave at line 575
3. in initWave, line 509 causes the crash

The game is in english, VGA floppy version

Platform is Linux, PPC

here's a few lines from gdb:
#0 0x0fb7b338 in sinl () from /lib/libm.so.6
#1 0x10204c5c in putchar ()
#2 0x102051fc in putchar ()
#3 0x10205628 in putchar ()
#4 0x102059dc in putchar ()
#5 0x10202b28 in putchar ()
#6 0x10201638 in putchar ()
#7 0x101a83f8 in putchar ()
#8 0x1006bb20 in ?? ()
#9 0x1006bb20 in ?? ()
Previous frame identical to this frame (corrupt stack?)

Ticket imported from: #1192316. Ticket imported from: bugs/2010.

Change History (9)

comment:1 by sev-, 14 years ago

You forgot to mention most important thing.

This is on BE platform running Linux.

comment:2 by eriktorbjorn, 14 years ago

Line 509 in sound/softsynth/mt32/tables.cpp would be this one:

saw += sin(sinus * sa) / sinus;

Perhaps a division by zero, though that wouldn't explain
stack corruption...

By the way, I was a bit surprised at the next line,
"sinus++;" since I didn't know you could even do that on
floating-point values. I always thought ++ was a request for
the "next value", but perhaps that was just my teacher's
opinion.

comment:3 by SF/lemmit, 14 years ago

> This is on BE platform running Linux.

sev — what do you mean?

comment:4 by sev-, 14 years ago

To process your bug report appropriately, we need you to
provide the following additional information:

* ScummVM version (PLEASE test the latest CVS/Daily build)
* Bug details, including instructions on reproducing it
* Language of game (English, German, ...)
* Version of game (talkie, floppy, ...)
* Platform and Compiler (Win32, Linux, MacOS, ...)
* Attach a save game if possible
* If this bug only occurred recently, please note the last
version without the bug, and the first version including
the bug. That way we can fix it quicker by looking at the
changes made.

This should only take you a little time but will make it much easier for
us to process your bug report in a way that satisfies both you and us.

Thank you for your support!

comment:5 by sev-, 14 years ago

Summary: MT32 emulation causes sigsegvMT32 emulation causes sigsegv on BE systems

comment:6 by fingolfin, 14 years ago

Owner: set to kingguppy

comment:7 by fingolfin, 14 years ago

"Before this, an error about initializing wave cache is displayed."
-> what is the precise error, then?

comment:8 by fingolfin, 14 years ago

Owner: changed from kingguppy to fingolfin
Resolution: worksforme
Status: newclosed

comment:9 by fingolfin, 14 years ago

The MT-32 emu works just fine on my PowerPC system
(G4 PowerBook, running OS X 10.3).

Maybe your waveform cache is corrupt. W/o getting additional
information from the bug submitter, we'll have to close this item.

Set to pending for now.

Note: See TracTickets for help on using tickets.