aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound/midiparser_sci.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/sound/midiparser_sci.cpp')
-rw-r--r--engines/sci/sound/midiparser_sci.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index 0b9d7617b8..95b165468d 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#include "sci/engine/kernel.h"
@@ -224,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;
@@ -250,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) {
@@ -307,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;
}