aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2011-08-19 14:39:35 +0200
committerJohannes Schickel2011-08-19 14:39:35 +0200
commit0d887aa2459db04daddfd2a150f1d1ae4499091b (patch)
tree3a51b05146748561b6cad66c55d6ac2c5e4e74a6
parent1e0b05ff992665467f762d61947a51407d1f1c41 (diff)
downloadscummvm-rg350-0d887aa2459db04daddfd2a150f1d1ae4499091b.tar.gz
scummvm-rg350-0d887aa2459db04daddfd2a150f1d1ae4499091b.tar.bz2
scummvm-rg350-0d887aa2459db04daddfd2a150f1d1ae4499091b.zip
SCUMM: Fix AdLib output in (MI2/)Indy4 Amiga.
Indy4 Amiga features only ROL tracks, thus with 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc the MIDI -> AdLib conversion was broken. Fixed that now by allowing ROL tracks to be played on AdLib output for Amiga games. This probably also affected Monkey Island 2 Amiga, but I don't have it to test.
-rw-r--r--engines/scumm/sound.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 5aded50600..d8235206f8 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -1157,14 +1157,16 @@ int ScummEngine::readSoundResource(ResId idx) {
// only contains a ROL resource for sound id 60. Formerly we tried
// to play that via the AdLib or FM-Towns audio driver resulting
// in strange noises. Now we behave like the original did.
- // We make an exception for priority 2 for the Mac output since
- // we're doing GM -> AdLib conversion.
- if ((_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_TOWNS) && pri != 10 && pri != 2)
+ // We make an exception for Macintosh, which uses priority 2 for
+ // its sound resources, and Amiga games, which feature only ROL
+ // resources, since we are a doing Midi -> AdLib conversion for
+ // these.
+ if ((_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_TOWNS) && pri != 10
+ && pri != 2 && _game.platform != Common::kPlatformAmiga)
pri = -1;
debugC(DEBUG_RESOURCE, " tag: %s, total_size=%d, pri=%d", tag2str(tag), size, pri);
-
if (pri > best_pri) {
best_pri = pri;
best_size = size;