Opened 2 years ago
Closed 2 years ago
#13527 closed defect (fixed)
AGOS: MIDI setControllerDefault() crash with SIMON1-FLOPPY if MT_FM.IBK is missing
Reported by: | dwatteau | Owned by: | dwatteau |
---|---|---|---|
Priority: | high | Component: | Engine: AGOS |
Version: | Keywords: | ||
Cc: | Game: | Simon the Sorcerer 1 |
Description
Using ScummVM 2.6.0git from 2022-05-30 on OpenBSD/amd64 7.1.
A 2022-04-30 build runs fine, so I think this may be related to the recent audio changes in AGOS.
With the floppy English version of Simon the Sorcerer 1 from GOG, and this default configuration:
[simon1] description=Simon the Sorcerer 1 (Floppy/DOS/English) extra=Floppy opl3_mode=false path=/home/games/SIMON1_FLOPPY_EN engineid=agos gameid=simon1 language=en dos_music_tempos=true platform=pc guioptions=sndNoSpeech launchNoLoad lang_English
The game immediately and systematically crashes at startup with this backtrace:
(lldb) bt * thread #1, stop reason = signal SIGSEGV * frame #0: 0x000007a26625b26f libc.so.96.1`memset at memset.S:47 frame #1: 0x0000079f8360dfba scummvm`signed char* Common::fill<short>(first=0x00000000000000e8, last=0x00000000000000f8, val=0) at algorithm.h:112:2 frame #2: 0x0000079f8360d53e scummvm`MidiDriver_Multisource::setControllerDefault(this=0x0000000000000000, type=CONTROLLER_DEFAULT_PROGRAM, value=0) at mididrv_ms.cpp:242:3 frame #3: 0x0000079f8360d3f7 scummvm`MidiDriver_Multisource::setControllerDefault(this=0x0000000000000000, type=CONTROLLER_DEFAULT_PROGRAM) at mididrv_ms.cpp:232:3 frame #4: 0x0000079f80b8e89f scummvm`AGOS::MidiPlayer::open(this=0x000007a189b4f280) at midi.cpp:329:20 frame #5: 0x0000079f80b697de scummvm`AGOS::AGOSEngine::init(this=0x000007a1f2b45000) at agos.cpp:615:20 frame #6: 0x0000079f80b694fc scummvm`AGOS::AGOSEngine_Elvira1::init(this=0x000007a1f2b45000) at agos.cpp:151:34 frame #7: 0x0000079f80b6c3c4 scummvm`AGOS::AGOSEngine::run(this=0x000007a1f2b45000) at agos.h:218:9 frame #8: 0x0000079f808bce2b scummvm`scummvm_main + 10699 frame #9: 0x0000079f808b8aa3 scummvm`main + 195 frame #10: 0x0000079f80895612 scummvm`__start + 322
(OpenBSD uses --disable-seq-midi --enable-sndio if this matters.)
Change History (3)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
Summary: | AGOS: MIDI setControllerDefault() crash with SIMON1-FLOPPY on OpenBSD → AGOS: MIDI setControllerDefault() crash with SIMON1-FLOPPY if MT_FM.IBK is missing |
---|
comment:3 by , 2 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
I've added some error messages when the instrument bank is missing or invalid.
Note:
See TracTickets
for help on using tickets.
With some
-d9
debug, I see that there was aFile::open: opening 'MT_FM.IBK' failed
just before the crash.Indeed, I was missing this file (I guess I forgot it back then, because GOG does have it, at least now) and the docs do mention it, but maybe the engine should make this a fatal error, instead of letting the program have a low-level crash? Especially since the game wouldn't crash until now, if you missed that file.
Thanks.