aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound/midiparser_sci.cpp
diff options
context:
space:
mode:
authormd52011-05-12 04:34:20 +0300
committermd52011-05-12 04:34:20 +0300
commit3b75ff9132a01b08ddc6f4828f8a27705bebb790 (patch)
treed1e958579d4f2699f24e3ce1ed26bf8854fc4876 /engines/sci/sound/midiparser_sci.cpp
parent69b1485a22dc2b8a2cfe0bd10edcbaad0da0cf6e (diff)
downloadscummvm-rg350-3b75ff9132a01b08ddc6f4828f8a27705bebb790.tar.gz
scummvm-rg350-3b75ff9132a01b08ddc6f4828f8a27705bebb790.tar.bz2
scummvm-rg350-3b75ff9132a01b08ddc6f4828f8a27705bebb790.zip
SCI: Added a warning for SCI0 games like in bug #3297881
LB1 Amiga doesn't contain MT-32 music tracks. Added a warning for this situation
Diffstat (limited to 'engines/sci/sound/midiparser_sci.cpp')
-rw-r--r--engines/sci/sound/midiparser_sci.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index 18652f0678..95b165468d 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -221,6 +221,7 @@ byte *MidiParser_SCI::midiFilterChannels(int channelMask) {
byte command = 0, lastCommand = 0;
int delta = 0;
int midiParamCount = 0;
+ bool containsMidiData = false;
_mixedData = outData;
@@ -247,6 +248,9 @@ byte *MidiParser_SCI::midiFilterChannels(int channelMask) {
}
}
if ((1 << curChannel) & channelMask) {
+ if (curChannel != 0xF)
+ containsMidiData = true;
+
if (command != kEndOfTrack) {
// Write delta
while (delta > 240) {
@@ -304,6 +308,11 @@ byte *MidiParser_SCI::midiFilterChannels(int channelMask) {
*outData++ = 0x00;
*outData++ = 0x00;
+ // This occurs in the music tracks of LB1 Amiga, when using the MT-32
+ // driver (bug #3297881)
+ if (!containsMidiData)
+ warning("MIDI parser: the requested SCI0 sound has no MIDI note data for the currently selected sound driver");
+
return _mixedData;
}