aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/drivers/adlib.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/sound/drivers/adlib.cpp b/engines/sci/sound/drivers/adlib.cpp
index 44e52cf768..2e56b023e0 100644
--- a/engines/sci/sound/drivers/adlib.cpp
+++ b/engines/sci/sound/drivers/adlib.cpp
@@ -703,8 +703,15 @@ void MidiDriver_AdLib::setVelocityReg(int regOffset, int velocity, int kbScaleLe
void MidiDriver_AdLib::setPatch(int voice, int patch) {
if ((patch < 0) || ((uint)patch >= _patches.size())) {
- // This happens a lot at least in pq2, seems to me as if it's meant for mt32 actually
- warning("ADLIB: Invalid patch %i requested", patch);
+ // This happens a lot at least in PQ2. This game has a small patch.003 (1344 bytes),
+ // containing 48 instruments. However it has several songs which use instruments
+ // not specified in that patch (namely, songs 1, 3, 5, 9, 15, 16, 17, 23, 25, 27,
+ // 29, 32, 36, 38, 44, 45, 46 all use instruments not specified in patch.003).
+ // These were probably written for MT32. These warnings in PQ2 can probably go away
+ // if a bigger patch.003 file is used (one that contains all the instruments used
+ // by the songs, i.e. 5382 bytes)
+ warning("ADLIB: Invalid patch %i requested (patch.003 contains %d instruments)",
+ patch, _patches.size());
patch = 0;
}