aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2005-01-03 11:33:12 +0000
committerTravis Howell2005-01-03 11:33:12 +0000
commitab432327d89e239c077eda6d64f50253773e9d76 (patch)
treed2615e176485e972c2b9743881442e972d1ded19
parent63be4b64350f72463965c2716e1e0cc43ade2f98 (diff)
downloadscummvm-rg350-ab432327d89e239c077eda6d64f50253773e9d76.tar.gz
scummvm-rg350-ab432327d89e239c077eda6d64f50253773e9d76.tar.bz2
scummvm-rg350-ab432327d89e239c077eda6d64f50253773e9d76.zip
Add missing control changes, patch #1094825.
svn-id: r16416
-rw-r--r--sound/softsynth/adlib.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/sound/softsynth/adlib.cpp b/sound/softsynth/adlib.cpp
index 072a1fbc24..d77c7e4992 100644
--- a/sound/softsynth/adlib.cpp
+++ b/sound/softsynth/adlib.cpp
@@ -669,6 +669,7 @@ void AdlibPart::pitchBend(int16 bend) {
void AdlibPart::controlChange(byte control, byte value) {
switch (control) {
+ case 0: break; // Bank select. Not supported
case 1: modulationWheel(value); break;
case 7: volume(value); break;
case 10: break; // Pan position. Not supported.
@@ -679,10 +680,15 @@ void AdlibPart::controlChange(byte control, byte value) {
case 91: break; // Effects level. Not supported.
case 93: break; // Chorus level. Not supported.
case 119: break; // Unknown, used in Simon the Sorcerer 2
- case 121: break; // Unknown, used in Simon the Sorcerer 1
+ case 121: // reset all controllers
+ modulationWheel(0);
+ pitchBendFactor(0);
+ detune(0);
+ sustain(0);
+ break;
case 123: allNotesOff(); break;
default:
- warning("Adlib: Unknown control change message %d", (int) control);
+ warning("Adlib: Unknown control change message %d (%d)", (int) control, (int)value);
}
}