[Scummvm-git-logs] scummvm master -> 5c2a9bfcfac1503a55b46a4e5dabc1d25459f006
athrxx
noreply at scummvm.org
Fri Jun 7 12:21:24 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5c2a9bfcfa SCUMM: (MI2) - fix regression
Commit: 5c2a9bfcfac1503a55b46a4e5dabc1d25459f006
https://github.com/scummvm/scummvm/commit/5c2a9bfcfac1503a55b46a4e5dabc1d25459f006
Author: athrxx (athrxx at scummvm.org)
Date: 2024-06-07T14:20:17+02:00
Commit Message:
SCUMM: (MI2) - fix regression
(bug no.: 15152 - Wrong instruments used in MT-32 playback)
Changed paths:
engines/scumm/imuse/imuse_part.cpp
engines/scumm/imuse/imuse_player.cpp
diff --git a/engines/scumm/imuse/imuse_part.cpp b/engines/scumm/imuse/imuse_part.cpp
index 4c21f59ec88..7440752c61c 100644
--- a/engines/scumm/imuse/imuse_part.cpp
+++ b/engines/scumm/imuse/imuse_part.cpp
@@ -195,7 +195,7 @@ void Part::fix_after_load() {
set_pri(_pri);
set_pan(_pan);
- if (!_se->_dynamicChanAllocation && !_mc) {
+ if (!_se->_dynamicChanAllocation && !_mc && !_percussion) {
_mc = _se->allocateChannel(_player->getMidiDriver(), _pri_eff);
if (!_mc)
_se->suspendPart(this);
@@ -341,6 +341,7 @@ void Part::uninit() {
void Part::off() {
if (_mc) {
+ _mc->sustain(false);
_mc->allNotesOff();
if (!_se->reassignChannelAndResumePart(_mc))
_mc->release();
diff --git a/engines/scumm/imuse/imuse_player.cpp b/engines/scumm/imuse/imuse_player.cpp
index 4aa32035d2e..631308a4dda 100644
--- a/engines/scumm/imuse/imuse_player.cpp
+++ b/engines/scumm/imuse/imuse_player.cpp
@@ -477,7 +477,7 @@ uint16 Player::sysExNoDelay(const byte *msg, uint16 length) {
// just type 0, since that one leads to hardware messages. This is not a perfect solution, but it seems to work
// as intended.
- if (_isMT32 && ((msg[0] == IMUSE_SYSEX_ID && msg[1] == 0) || msg[0] == ROLAND_SYSEX_ID))
+ if (_isMT32 && (!_scanning && (msg[0] == IMUSE_SYSEX_ID && msg[1] == 0) || msg[0] == ROLAND_SYSEX_ID))
return length >= 25 ? 70 : 20;
return 0;
More information about the Scummvm-git-logs
mailing list