aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sfx/midiparser.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/engines/sci/sfx/midiparser.cpp b/engines/sci/sfx/midiparser.cpp
index 5ddccf5a01..c041499771 100644
--- a/engines/sci/sfx/midiparser.cpp
+++ b/engines/sci/sfx/midiparser.cpp
@@ -31,7 +31,7 @@ namespace Sci {
static const int nMidiParams[] = { 2, 2, 2, 2, 1, 1, 2, 0 };
-enum SciSysExCommands {
+enum SciMidiCommands {
kSetSignalLoop = 0x7F,
kEndOfTrack = 0xFC,
kSetReverb = 0x50,
@@ -166,10 +166,20 @@ void MidiParser_SCI::parseNextEvent(EventInfo &info) {
break;
}
break;
- case 0x1: // unknown (example case: LB2CD)
- case 0xA: // unknown (example case: LB2CD)
+ case 0x01: // mod wheel
+ case 0x07: // channel volume
+ case 0x0A: // pan
+ case 0x40: // hold pedal
+ case 0x4E: // velocity control
+ case 0x7B: // notes off
+ // These are all handled by the music driver, so ignore them
+ break;
+ case 0x4B: // voice mapping
+ // TODO: is any support for this needed at the MIDI parser level?
+ warning("Unhanded SCI MIDI command 0x%x - voice mapping (parameter %d)", info.basic.param1, info.basic.param2);
+ break;
default:
- warning("Unhandled SCI SysEx 0x%x (parameter %d)", info.basic.param1, info.basic.param2);
+ warning("Unhandled SCI MIDI command 0x%x (parameter %d)", info.basic.param1, info.basic.param2);
break;
}
}