aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'scumm')
-rw-r--r--scumm/instrument.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/scumm/instrument.cpp b/scumm/instrument.cpp
index 1e443784d8..c845ab8ec2 100644
--- a/scumm/instrument.cpp
+++ b/scumm/instrument.cpp
@@ -419,7 +419,12 @@ void Instrument_Roland::saveOrLoad (Serializer *s) {
void Instrument_Roland::send (MidiChannel *mc) {
if (_native_mt32) {
- _instrument.device_id = mc->getNumber();
+// _instrument.device_id = mc->getNumber();
+ _instrument.device_id = 0x10;
+ int address = 0x010000 + mc->getNumber() * 246;
+ _instrument.address[0] = (address >> 14) & 0x7F;
+ _instrument.address[1] = (address >> 7) & 0x7F;
+ _instrument.address[2] = (address ) & 0x7F;
mc->device()->sysEx ((byte *) &_instrument, sizeof (_instrument));
} else {
// Convert to a GM program change.