diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/instrument.cpp | 7 |
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. |