aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}