aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2012-09-01 20:15:12 +0300
committerFilippos Karapetis2012-09-01 20:17:27 +0300
commit7824d0e8e9116e2610072a92c99c6d80ae9db19f (patch)
tree3e6bdf7d44a688d8f82c6721e7e6ba602099dc81 /engines/sci
parent341c3abad549aeb6217fbb1325249c6d3a1a00e8 (diff)
downloadscummvm-rg350-7824d0e8e9116e2610072a92c99c6d80ae9db19f.tar.gz
scummvm-rg350-7824d0e8e9116e2610072a92c99c6d80ae9db19f.tar.bz2
scummvm-rg350-7824d0e8e9116e2610072a92c99c6d80ae9db19f.zip
SCI: Limit the hack used for sound initialization to the Fun Seeker's demo only
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/drivers/adlib.cpp3
-rw-r--r--engines/sci/sound/music.cpp11
2 files changed, 10 insertions, 4 deletions
diff --git a/engines/sci/sound/drivers/adlib.cpp b/engines/sci/sound/drivers/adlib.cpp
index db9317e071..191e13db0a 100644
--- a/engines/sci/sound/drivers/adlib.cpp
+++ b/engines/sci/sound/drivers/adlib.cpp
@@ -807,6 +807,9 @@ int MidiPlayer_AdLib::open(ResourceManager *resMan) {
int size = f.size();
const uint patchSize = 1344;
+ // Note: Funseeker's Guide also has another version of adl.drv, 8803 bytes.
+ // This isn't supported, but it's not really used anywhere, as that demo
+ // doesn't have sound anyway.
if ((size == 5684) || (size == 5720) || (size == 5727)) {
byte *buf = new byte[patchSize];
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index ffd51da673..a8a65d2aa4 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -125,10 +125,13 @@ void SciMusic::init() {
_pMidiDrv->setTimerCallback(this, &miditimerCallback);
_dwTempo = _pMidiDrv->getBaseTempo();
} else {
- // Happens in the Fun Seeker's Guide demo, which doesn't have any sound
- // anyway (nor works if anything other than PC Spearker is set), so this
- // shouldn't be fatal
- warning("Failed to initialize sound driver");
+ if (g_sci->getGameId() == GID_FUNSEEKER) {
+ // HACK: The Fun Seeker's Guide demo doesn't have patch 3 and the version
+ // of the Adlib driver (adl.drv) that it includes is unsupported. That demo
+ // doesn't have any sound anyway, so this shouldn't be fatal.
+ } else {
+ error("Failed to initialize sound driver");
+ }
}
// Find out what the first possible channel is (used, when doing channel