aboutsummaryrefslogtreecommitdiff
path: root/scumm/imuse.cpp
diff options
context:
space:
mode:
authorJamieson Christian2003-10-07 12:00:53 +0000
committerJamieson Christian2003-10-07 12:00:53 +0000
commit577fe4c5fb97d0d29669b67fbf49abd09a31dded (patch)
tree31d4094bbb37daa706a03d688ca2740e4801aa4a /scumm/imuse.cpp
parentea482be9872198cf1988ed30ee577b7194c18233 (diff)
downloadscummvm-rg350-577fe4c5fb97d0d29669b67fbf49abd09a31dded.tar.gz
scummvm-rg350-577fe4c5fb97d0d29669b67fbf49abd09a31dded.tar.bz2
scummvm-rg350-577fe4c5fb97d0d29669b67fbf49abd09a31dded.zip
Patch [818296] Modified MT-32 intialization sequence.
svn-id: r10666
Diffstat (limited to 'scumm/imuse.cpp')
-rw-r--r--scumm/imuse.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/scumm/imuse.cpp b/scumm/imuse.cpp
index 602627ef4b..a1fd7dddf6 100644
--- a/scumm/imuse.cpp
+++ b/scumm/imuse.cpp
@@ -1178,12 +1178,12 @@ void IMuseInternal::initMidiDriver(MidiDriver *midi) {
}
void IMuseInternal::initMT32(MidiDriver *midi) {
- byte buffer[32] = "\x41\x10\x16\x12\x00\x00\x00 ";
+ byte buffer[52];
char info[256] = "ScummVM ";
int len;
// Reset the MT-32
- memcpy(&buffer[4], "\x7f\x00\x00\x01\x00", 5);
+ memcpy(&buffer[0], "\x41\x10\x16\x12\x7f\x00\x00\x01\x00", 9);
midi->sysEx(buffer, 9);
g_system->delay_msecs (100);
@@ -1204,14 +1204,16 @@ void IMuseInternal::initMT32(MidiDriver *midi) {
midi->sysEx(buffer, 28);
g_system->delay_msecs (500);
- // Set master volume to 100%
- memcpy(&buffer[4], "\x10\x00\x16\x64\x76", 5);
- midi->sysEx(buffer, 9);
- g_system->delay_msecs (500);
+ // Setup master tune, reverb mode, reverb time, reverb level,
+ // channel mapping, partial reserve and master volume
+ memcpy(&buffer[4], "\x10\x00\x00\x40\x00\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x64\x77", 27);
+ midi->sysEx(buffer, 31);
+ g_system->delay_msecs (250);
- // Set partial reserve equally for all channels
- memcpy(&buffer[4], "\x10\x00\x04\x04\x04\x04\x04\x04\x04\x04\x04\x00\x4C", 13);
- midi->sysEx(buffer, 17);
+ // Setup rythm part
+ memcpy(&buffer[4], "\x03\x01\x10\x40\x64\x07\x00\x4a\x64\x06\x00\x41\x64\x07\x00\x4b\x64\x08\x00\x45\x64\x06\x00\x44\x64\x0b\x00\x51\x64\x05\x00\x43\x64\x08\x00\x50\x64\x07\x00\x42\x64\x03\x00\x4c\x64\x07\x00\x44", 48);
+ midi->sysEx(buffer, 52);
+ g_system->delay_msecs (250);
}
void IMuseInternal::init_queue() {