[Scummvm-cvs-logs] SF.net SVN: scummvm: [21022] scummvm/trunk/engines/scumm/imuse/imuse.cpp
Jamieson630 at users.sourceforge.net
Jamieson630 at users.sourceforge.net
Thu Mar 2 18:52:02 CET 2006
Revision: 21022
Author: Jamieson630
Date: 2006-03-02 18:51:11 -0800 (Thu, 02 Mar 2006)
ViewCVS: http://svn.sourceforge.net/scummvm?rev=21022&view=rev
Log Message:
-----------
Added MT-32 device-specific reset on shutdown. Rearranged MT-32 initialization sequence to give the ScummVM welcome message a better chance of showing up on the LCD panel.
Modified Paths:
--------------
scummvm/trunk/engines/scumm/imuse/imuse.cpp
Modified: scummvm/trunk/engines/scumm/imuse/imuse.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse/imuse.cpp 2006-03-03 02:49:41 UTC (rev 21021)
+++ scummvm/trunk/engines/scumm/imuse/imuse.cpp 2006-03-03 02:51:11 UTC (rev 21022)
@@ -654,6 +654,12 @@
}
if (_midi_native) {
+ if (_native_mt32) {
+ // Reset the MT-32
+ _midi_native->sysEx((byte *) "\x41\x10\x16\x12\x7f\x00\x00\x01\x00", 9);
+ g_system->delayMillis(250);
+ }
+
_midi_native->close();
delete _midi_native;
_midi_native = 0;
@@ -1228,10 +1234,18 @@
int len;
// Reset the MT-32
- memcpy(&buffer[0], "\x41\x10\x16\x12\x7f\x00\x00\x01\x00", 9);
- midi->sysEx(buffer, 9);
- g_system->delayMillis(100);
+ midi->sysEx((byte *) "\x41\x10\x16\x12\x7f\x00\x00\x01\x00", 9);
+ g_system->delayMillis(250);
+ // Setup master tune, reverb mode, reverb time, reverb level,
+ // channel mapping, partial reserve and master volume
+ midi->sysEx((byte *) "\x41\x10\x16\x12\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", 31);
+ g_system->delayMillis(250);
+
+ // Map percussion to notes 24 - 34 without reverb
+ midi->sysEx((byte *) "\x41\x10\x16\x12\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", 52);
+ g_system->delayMillis(250);
+
// Compute version string (truncated to 20 chars max.)
strcat(info, gScummVMVersion);
len = strlen(info);
@@ -1239,7 +1253,7 @@
len = 20;
// Display a welcome message on MT-32 displays.
- memcpy(&buffer[4], "\x20\x00\x00", 3);
+ memcpy(&buffer[0], "\x41\x10\x16\x12\x20\x00\x00", 7);
memcpy(&buffer[7], " ", 20);
memcpy(buffer + 7 +(20 - len) / 2, info, len);
byte checksum = 0;
@@ -1247,18 +1261,7 @@
checksum -= buffer[i];
buffer[27] = checksum & 0x7F;
midi->sysEx(buffer, 28);
- g_system->delayMillis(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->delayMillis(250);
-
- // Map percussion to notes 24 - 34 without reverb
- 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->delayMillis(250);
+ g_system->delayMillis(1000);
}
void IMuseInternal::initGM(MidiDriver *midi) {
More information about the Scummvm-git-logs
mailing list