aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sound/soundcmd.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index e317796aad..6ee23d7fc8 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -232,6 +232,10 @@ reg_t SoundCommandParser::parseCommand(int argc, reg_t *argv, reg_t acc) {
uint16 controller = argv[4].toUint16();
uint16 param = argv[5].toUint16();
+ if (!channel)
+ error("invalid channel specified on cmdSendMidi");
+ channel--; // channel is given 1-based, we are using 0-based
+
_midiCommand = (channel | midiCmd) | ((uint32)controller << 8) | ((uint32)param << 16);
}