MT-32 reverb config parsed incorrectly
|Reported by:||SF/sven3000||Owned by:||bluegr|
ScummVM doesn't correctly parse the reverb data in the MT-32 patch resource. It also doesn't send the default reverb settings to the MT-32. This problem seems to apply to every SCI0 and SCI1 game.
In the MidiPlayer_Midi::readMt32Patch (engines/sci/sound/driver/midi.cpp) function, the _reverbConfig array is initialized in the wrong order. It is read row-wise while it is stored column-wise. The attached patch includes a fix for this function.
In addition, the reverb settings stored in _reverbConfig need to be sent to the MT-32 somewhere. The real SCI engine (observed by running the games in DOSBox) sends this command before it first plays music.
I think the best place to put it would probably be MidiParser_SCI::sendInitCommands (engines/sci/sound/midiparser_sci.cpp), but that seems to send it more often than the real SCI does. If you know a better place to put it, be my guest.
Because I wasn't sure where to put it, the attached patch does NOT include this! It only fixes the reverb config parsing!
This behaviour was observed with ScummVM 1.2.0 and svn revision 54451, on Windows 7 x64, and with multiple games including KQ4 and KQ5.
Ticket imported from: #3117434. Ticket imported from: patches/1366.
Change History (7)
comment:1 by , 9 years ago
|Summary:||MT-32 reverb config parsed incorrectly → SCI: MT-32 reverb config parsed incorrectly|
comment:3 by , 9 years ago
|Game:||King's Quest 4|
|Summary:||SCI: MT-32 reverb config parsed incorrectly → MT-32 reverb config parsed incorrectly|