Opened 19 years ago
Closed 19 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 |
Version: | 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 , 19 years ago
comment:2 by , 19 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:4 by , 19 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 , 19 years ago
Summary: | MT32 emulation causes sigsegv → MT32 emulation causes sigsegv on BE systems |
---|
comment:6 by , 19 years ago
Owner: | set to |
---|
comment:7 by , 19 years ago
"Before this, an error about initializing wave cache is displayed." -> what is the precise error, then?
comment:8 by , 19 years ago
Owner: | changed from | to
---|---|
Resolution: | → worksforme |
Status: | new → closed |
comment:9 by , 19 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.
You forgot to mention most important thing.
This is on BE platform running Linux.