aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2010-11-10 14:28:45 +0000
committerFilippos Karapetis2010-11-10 14:28:45 +0000
commit9d1006c7a3503cd603a9266e6ae589fe8c090d83 (patch)
tree023a6b5fc47f527294327c68a44ff463b46888bb /engines/sci
parent380121fb556bf137fe78a2acbf3baa112a2fad19 (diff)
downloadscummvm-rg350-9d1006c7a3503cd603a9266e6ae589fe8c090d83.tar.gz
scummvm-rg350-9d1006c7a3503cd603a9266e6ae589fe8c090d83.tar.bz2
scummvm-rg350-9d1006c7a3503cd603a9266e6ae589fe8c090d83.zip
SCI3: Some changes
- Placed the SCI3 version detection in the proper place - Some new types of SCI3 MT-32 patches (e.g. in the Lighthouse SCI3 demo) are ignored, for now svn-id: r54188
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/resource.cpp10
-rw-r--r--engines/sci/sound/drivers/midi.cpp12
2 files changed, 12 insertions, 10 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 6501fa27b6..e9a88df541 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -2079,10 +2079,9 @@ void ResourceManager::detectSciVersion() {
} else if (!heaps->empty()) {
s_sciVersion = SCI_VERSION_2_1;
return;
-// Enable SCI3 games by uncommenting the below lines
-// } else {
-// s_sciVersion = SCI_VERSION_3;
-// return;
+ } else {
+ s_sciVersion = SCI_VERSION_3;
+ return;
}
}
@@ -2170,9 +2169,6 @@ void ResourceManager::detectSciVersion() {
case kResVersionSci11:
s_sciVersion = SCI_VERSION_1_1;
return;
- case kResVersionSci3:
- s_sciVersion = SCI_VERSION_3;
- return;
default:
s_sciVersion = SCI_VERSION_NONE;
error("detectSciVersion(): Unable to detect the game's SCI version");
diff --git a/engines/sci/sound/drivers/midi.cpp b/engines/sci/sound/drivers/midi.cpp
index 6611753420..a8f20dc0e2 100644
--- a/engines/sci/sound/drivers/midi.cpp
+++ b/engines/sci/sound/drivers/midi.cpp
@@ -893,10 +893,16 @@ int MidiPlayer_Midi::open(ResourceManager *resMan) {
res = resMan->findResource(ResourceId(kResourceTypePatch, 1), 0);
if (res) {
- if (!isMt32GmPatch(res->data, res->size))
+ if (!isMt32GmPatch(res->data, res->size)) {
mapMt32ToGm(res->data, res->size);
- else
- error("MT-32 patch has wrong type");
+ } else {
+ if (getSciVersion() <= SCI_VERSION_2_1) {
+ error("MT-32 patch has wrong type");
+ } else {
+ // Happens in the SCI3 interactive demo of Lighthouse
+ warning("TODO: Ignoring new SCI3 type of MT-32 patch for now (size = %d)", res->size);
+ }
+ }
} else {
// No MT-32 patch present, try to read from MT32.DRV
Common::File f;