aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/detection.cpp')
-rw-r--r--engines/scumm/detection.cpp37
1 files changed, 10 insertions, 27 deletions
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp
index 6da3578530..b47982af00 100644
--- a/engines/scumm/detection.cpp
+++ b/engines/scumm/detection.cpp
@@ -585,7 +585,6 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
// Print some debug info
int filesize = tmp->size();
- if (d.md5Entry->filesize != filesize)
debug(1, "SCUMM detector found matching file '%s' with MD5 %s, size %d\n",
file.c_str(), md5str.c_str(), filesize);
@@ -599,7 +598,7 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
}
if (isDiskImg)
- closeDiskImage((ScummDiskImage*)tmp);
+ closeDiskImage((ScummDiskImage *)tmp);
delete tmp;
}
@@ -649,8 +648,15 @@ static void detectGames(const Common::FSList &fslist, Common::List<DetectorResul
dr.language = detectLanguage(fslist, g->id);
// Detect if there are speech files in this unknown game
- //if (detectSpeech(fslist, g))
- // dr.game.guioptions &= ~GUIO_NOSPEECH;
+ if (detectSpeech(fslist, g)) {
+ if (strchr(dr.game.guioptions, GUIO_NOSPEECH[0]) != NULL) {
+ if (g->id == GID_MONKEY || g->id == GID_MONKEY2)
+ // TODO: This may need to be updated if something important gets added in the top detection table for these game ids
+ dr.game.guioptions = GUIO0();
+ else
+ warning("FIXME: fix NOSPEECH fallback");
+ }
+ }
// Add the game/variant to the candidates list if it is consistent
// with the file(s) we are seeing.
@@ -965,9 +971,6 @@ GameList ScummMetaEngine::detectGames(const Common::FSList &fslist) const {
::detectGames(fslist, results, 0);
- // TODO: We still don't handle the FM-TOWNS demos (like zakloom) very well.
- // In particular, they are detected as ZakTowns, which is bad.
-
for (Common::List<DetectorResult>::iterator
x = results.begin(); x != results.end(); ++x) {
const PlainGameDescriptor *g = findPlainGameDescriptor(x->game.gameid, gameDescriptions);
@@ -981,26 +984,6 @@ GameList ScummMetaEngine::detectGames(const Common::FSList &fslist) const {
// Based on generateComplexID() in advancedDetector.cpp.
dg["preferredtarget"] = generatePreferredTarget(*x);
- // HACK: Detect and distinguish the FM-TOWNS demos
- if (x->game.platform == Common::kPlatformFMTowns && (x->game.features & GF_DEMO)) {
- if (x->md5 == "2d388339d6050d8ccaa757b64633954e") {
- // Indy + Loom demo
- dg.description() = "Indiana Jones and the Last Crusade & Loom";
- dg.updateDesc(x->extra);
- dg["preferredtarget"] = "indyloom";
- } else if (x->md5 == "77f5c9cc0986eb729c1a6b4c8823bbae") {
- // Zak + Loom demo
- dg.description() = "Zak McKracken & Loom";
- dg.updateDesc(x->extra);
- dg["preferredtarget"] = "zakloom";
- } else if (x->md5 == "3938ee1aa4433fca9d9308c9891172b1") {
- // Indy + Zak demo
- dg.description() = "Indiana Jones and the Last Crusade & Zak McKracken";
- dg.updateDesc(x->extra);
- dg["preferredtarget"] = "indyzak";
- }
- }
-
dg.setGUIOptions(x->game.guioptions + MidiDriver::musicType2GUIO(x->game.midi));
dg.appendGUIOptions(getGameGUIOptionsDescriptionLanguage(x->language));