From 793d073744238dd5ba866202e7040d4b1809776b Mon Sep 17 00:00:00 2001 From: athrxx Date: Sat, 16 Mar 2024 15:50:53 +0100 Subject: [PATCH] SCUMM: (IMS/Midi) - fix gs setting (the device shouldn't pretend to be an MT-32, otherwise the engine will send sysex instruments instead of doing normal program changes) --- engines/scumm/imuse/drivers/midi.cpp | 8 ++++---- engines/scumm/imuse/drivers/midi.h | 2 +- engines/scumm/imuse/imuse.cpp | 3 +-- engines/scumm/imuse/imuse.h | 3 +-- engines/scumm/imuse/imuse_internal.h | 1 - 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/engines/scumm/imuse/drivers/midi.cpp b/engines/scumm/imuse/drivers/midi.cpp index fc038acd8dd..a8474dad4a3 100644 --- a/engines/scumm/imuse/drivers/midi.cpp +++ b/engines/scumm/imuse/drivers/midi.cpp @@ -401,9 +401,9 @@ int IMuseDriver_GMidi::open() { createChannels(); if (_gsMode) - initDeviceAsRolandGS(); - else - initDevice(); + initRolandGSMode(); + + initDevice(); return res; } @@ -520,7 +520,7 @@ void IMuseDriver_GMidi::initDevice() { } } -void IMuseDriver_GMidi::initDeviceAsRolandGS() { +void IMuseDriver_GMidi::initRolandGSMode() { byte buffer[12]; int i; diff --git a/engines/scumm/imuse/drivers/midi.h b/engines/scumm/imuse/drivers/midi.h index 1c072c4dce8..e2714ebf549 100644 --- a/engines/scumm/imuse/drivers/midi.h +++ b/engines/scumm/imuse/drivers/midi.h @@ -66,7 +66,7 @@ protected: private: virtual void initDevice(); - void initDeviceAsRolandGS(); + void initRolandGSMode(); virtual void deinitDevice(); void setNoteFlag(byte chan, byte note) { if (_notesPlaying && chan < 16 && note < 128) _notesPlaying[note] |= (1 << chan); } diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp index d6c4721baeb..9979875c64d 100644 --- a/engines/scumm/imuse/imuse.cpp +++ b/engines/scumm/imuse/imuse.cpp @@ -44,8 +44,7 @@ namespace Scumm { //////////////////////////////////////// IMuseInternal::IMuseInternal(ScummEngine *vm, MidiDriverFlags sndType, uint32 initFlags) : - _native_mt32((initFlags & kFlagNativeMT32) || (initFlags & kFlagRolandGS)), // GS Mode emulates MT-32 on a GS device, so _native_mt32 should always be true - _enable_gs(initFlags & kFlagRolandGS), + _native_mt32(initFlags & kFlagNativeMT32), _newSystem(initFlags & kFlagNewSystem), _midi_adlib(nullptr), _midi_native(nullptr), diff --git a/engines/scumm/imuse/imuse.h b/engines/scumm/imuse/imuse.h index a711d5dd9fa..c25efc578b2 100644 --- a/engines/scumm/imuse/imuse.h +++ b/engines/scumm/imuse/imuse.h @@ -57,8 +57,7 @@ public: enum { kFlagNewSystem = 1 << 0, - kFlagNativeMT32 = 1 << 1, - kFlagRolandGS = 1 << 2 + kFlagNativeMT32 = 1 << 1 }; public: diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h index 1753f075bfb..721abbf1b3a 100644 --- a/engines/scumm/imuse/imuse_internal.h +++ b/engines/scumm/imuse/imuse_internal.h @@ -417,7 +417,6 @@ class IMuseInternal : public IMuse { protected: const bool _native_mt32; - const bool _enable_gs; const bool _newSystem; const MidiDriverFlags _soundType; MidiDriver *_midi_adlib;