aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/imuse/imuse.cpp6
-rw-r--r--engines/scumm/imuse/imuse_player.cpp3
2 files changed, 5 insertions, 4 deletions
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp
index de592972aa..50a13308d8 100644
--- a/engines/scumm/imuse/imuse.cpp
+++ b/engines/scumm/imuse/imuse.cpp
@@ -241,11 +241,11 @@ bool IMuseInternal::supportsPercussion(int sound) {
case MKTAG('S', 'P', 'K', ' '):
return false;
- case MKTAG('A', 'M', 'I', ' '): // Amiga
+ case MKTAG('A', 'M', 'I', ' '): // MI2 Amiga
return false;
- case MKTAG('R', 'O', 'L', ' '):
- return true;
+ case MKTAG('R', 'O', 'L', ' '): // Roland LAPC/MT-32/CM32L track, but also used by INDY4 Amiga
+ return !_isAmiga;
case MKTAG('M', 'A', 'C', ' '): // Occurs in the Mac version of FOA and MI2
// This is MIDI, i.e. uses MIDI style program changes, but without a
diff --git a/engines/scumm/imuse/imuse_player.cpp b/engines/scumm/imuse/imuse_player.cpp
index 7ec557a768..b251e153cb 100644
--- a/engines/scumm/imuse/imuse_player.cpp
+++ b/engines/scumm/imuse/imuse_player.cpp
@@ -375,7 +375,8 @@ void Player::sysEx(const byte *p, uint16 len) {
if (a != IMUSE_SYSEX_ID) {
if (a == ROLAND_SYSEX_ID) {
// Roland custom instrument definition.
- if (_isMIDI || _isMT32) {
+ // There is at least one (pointless) attempt in INDY4 Amiga to send this, too.
+ if ((_isMIDI && !_se->_isAmiga) || _isMT32) {
part = getPart(p[0] & 0x0F);
if (part) {
part->_instrument.roland(p - 1);