[Scummvm-git-logs] scummvm master -> ec03fd52431ab7fa9d7675731d4b671acbd61daa
athrxx
noreply at scummvm.org
Wed Sep 7 20:44:42 UTC 2022
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:
ec03fd5243 SCUMM: (SAMNMAX) - fix GM/AdLib distinction
Commit: ec03fd52431ab7fa9d7675731d4b671acbd61daa
https://github.com/scummvm/scummvm/commit/ec03fd52431ab7fa9d7675731d4b671acbd61daa
Author: athrxx (athrxx at scummvm.org)
Date: 2022-09-07T22:43:54+02:00
Commit Message:
SCUMM: (SAMNMAX) - fix GM/AdLib distinction
In SAMNMAX the player wouldn't properly distinguish between GM and AdLib, because the sound all have the same 'Midi' tag. Now, this gets tested in a way than works for all targets.
Changed paths:
engines/scumm/imuse/imuse_player.cpp
diff --git a/engines/scumm/imuse/imuse_player.cpp b/engines/scumm/imuse/imuse_player.cpp
index 2184336ccee..d10011c0e2e 100644
--- a/engines/scumm/imuse/imuse_player.cpp
+++ b/engines/scumm/imuse/imuse_player.cpp
@@ -109,8 +109,10 @@ bool Player::startSound(int sound, MidiDriver *midi) {
_isMT32 = _se->isMT32(sound);
_isMIDI = _se->isMIDI(sound);
_supportsPercussion = _se->supportsPercussion(sound);
- _isGM = (_supportsPercussion && !_isMT32); // Unlike IMuseInternal::isMIDI(), IMuseInternal::supportsPercussion() really filters out all non-MIDI things...
- _isAdLibOrFMTowns = (_se->_midi_adlib && !_isMIDI);
+ // IMuseInternal::supportsPercussion() filters out more non-MIDI things than IMuseInternal::isMIDI(),
+ // but still not the AdLib in Samnmax, so we make an extra test for that...
+ _isGM = (_supportsPercussion && !(_se->_game_id == GID_SAMNMAX && !_se->_midi_native && _se->_midi_adlib) && !_isMT32);
+ _isAdLibOrFMTowns = (_se->_midi_adlib && !_isMT32 && !_isGM);
_parts = nullptr;
_active = true;
@@ -1032,8 +1034,10 @@ void Player::fixAfterLoad() {
_isMT32 = _se->isMT32(_id);
_isMIDI = _se->isMIDI(_id);
_supportsPercussion = _se->supportsPercussion(_id);
- _isGM = (_supportsPercussion && !_isMT32); // Unlike IMuseInternal::isMIDI(), IMuseInternal::supportsPercussion() really filters out all non-MIDI things...
- _isAdLibOrFMTowns = (_se->_midi_adlib && !_isMIDI);
+ // IMuseInternal::supportsPercussion() filters out more non-MIDI things than IMuseInternal::isMIDI(),
+ // but still not the AdLib in SAMNMAX, so we make an extra test for that...
+ _isGM = (_supportsPercussion && !(_se->_game_id == GID_SAMNMAX && !_se->_midi_native && _se->_midi_adlib) && !_isMT32);
+ _isAdLibOrFMTowns = (_se->_midi_adlib && !_isMT32 && !_isGM);
}
}
More information about the Scummvm-git-logs
mailing list