[Scummvm-git-logs] scummvm master -> 3454101f592093f67bb63c1711bcad4f4fc06cc1
eriktorbjorn
eriktorbjorn at telia.com
Wed Jul 7 10:28:48 UTC 2021
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:
3454101f59 SCUMM: Fix missing iMuse instruments (mainly Mac MI2 and FoA)
Commit: 3454101f592093f67bb63c1711bcad4f4fc06cc1
https://github.com/scummvm/scummvm/commit/3454101f592093f67bb63c1711bcad4f4fc06cc1
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2021-07-07T12:27:54+02:00
Commit Message:
SCUMM: Fix missing iMuse instruments (mainly Mac MI2 and FoA)
The way the condition for checking if an instrument is valid, it should
be valid if the music player and MIDI driver agree on whether it's MT-32
MIDI. Otherwise, it's only valid if the instrument can be mapped to or
from MT-32.
But the way the check was written, it would always look for an
instrument mapping, since || binds harder than the ? operator.
All MT-32 instruments can be mapped to General MIDI, but a few General
MIDI instrument can't be mapped to MT-32. So theoretically, this should
have happened a lot. However, the GM instruments that can't be mapped
are mostly sound effects. The only cases where I've actually heard it
is with the Mac versions of Monkey Island 2 and Fate of Atlantis. They
provide their own digitized instruments, so who knows how those numbers
were assigned.
Two obvious early cases were the swamp music in Monkey Island 2 and the
New York music in Fate of Atlantis. Both were missing a "wood block"
instrument, among other things.
Changed paths:
engines/scumm/imuse/instrument.cpp
diff --git a/engines/scumm/imuse/instrument.cpp b/engines/scumm/imuse/instrument.cpp
index 83af48970d..c2fec7cd8e 100644
--- a/engines/scumm/imuse/instrument.cpp
+++ b/engines/scumm/imuse/instrument.cpp
@@ -136,9 +136,9 @@ public:
void copy_to(Instrument *dest) override { dest->program(_program, _mt32); }
bool is_valid() override {
return (_program < 128) &&
- ((_native_mt32 == _mt32) || _native_mt32
+ ((_native_mt32 == _mt32) || (_native_mt32
? (MidiDriver::_gmToMt32[_program] < 128)
- : (MidiDriver::_mt32ToGm[_program] < 128));
+ : (MidiDriver::_mt32ToGm[_program] < 128)));
}
};
More information about the Scummvm-git-logs
mailing list