diff options
author | Eugene Sandulenko | 2012-02-10 03:46:50 -0800 |
---|---|---|
committer | Eugene Sandulenko | 2012-02-10 03:46:50 -0800 |
commit | 0deea6fbf89d608130d89b06dce2497e036d68aa (patch) | |
tree | dec5a5f89294b4d566600100b0a39ef071c19ef0 /engines | |
parent | 40b6b3a3af38b668e63f4936d22b4d792b233587 (diff) | |
parent | 5db023646a8c685469bfe9dc551a282f8240ae04 (diff) | |
download | scummvm-rg350-0deea6fbf89d608130d89b06dce2497e036d68aa.tar.gz scummvm-rg350-0deea6fbf89d608130d89b06dce2497e036d68aa.tar.bz2 scummvm-rg350-0deea6fbf89d608130d89b06dce2497e036d68aa.zip |
Merge pull request #177 from BenCastricum/5db023646a8c685469bfe9dc551a282f8240ae04
SCUMM: Use regular detection algorithms for FMTOWNS demos.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/scumm/detection.cpp | 23 | ||||
-rw-r--r-- | engines/scumm/detection_tables.h | 10 | ||||
-rw-r--r-- | engines/scumm/scumm-md5.h | 8 |
3 files changed, 14 insertions, 27 deletions
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp index d925cc9198..3e1ad53ed6 100644 --- a/engines/scumm/detection.cpp +++ b/engines/scumm/detection.cpp @@ -971,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); @@ -987,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)); diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h index d10c1df37f..a44497f193 100644 --- a/engines/scumm/detection_tables.h +++ b/engines/scumm/detection_tables.h @@ -70,6 +70,9 @@ static const PlainGameDescriptor gameDescriptions[] = { { "samnmax", "Sam & Max Hit the Road" }, { "tentacle", "Day of the Tentacle" }, { "zak", "Zak McKracken and the Alien Mindbenders" }, + { "indyloom", "Indiana Jones and the Last Crusade & Loom" }, + { "indyzak", "Indiana Jones and the Last Crusade & Zak McKracken" }, + { "zakloom", "Zak McKracken & Loom" }, #ifdef ENABLE_SCUMM_7_8 { "ft", "Full Throttle" }, @@ -210,6 +213,9 @@ static const GameSettings gameVariantsTable[] = { {"zak", "V1", "v1", GID_ZAK, 1, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, {"zak", "V2", "v2", GID_ZAK, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, {"zak", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)}, + {"zakloom", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)}, + {"indyloom", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)}, + {"indyzak", "FM-TOWNS", 0, GID_ZAK, 3, 0, MDT_TOWNS, GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)}, {"indy3", "EGA", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, {"indy3", "No AdLib", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, @@ -437,6 +443,10 @@ static const GameFilenamePattern gameFilenamesTable[] = { { "indy3", "%02d.LFL", kGenRoomNum, UNK_LANG, UNK, 0 }, + { "indyloom", "%02d.LFL", kGenRoomNum, UNK_LANG, UNK, 0 }, + { "indyzak", "%02d.LFL", kGenRoomNum, UNK_LANG, UNK, 0 }, + { "zakloom", "%02d.LFL", kGenRoomNum, UNK_LANG, UNK, 0 }, + { "loom", "%02d.LFL", kGenRoomNum, UNK_LANG, UNK, 0 }, { "loom", "%03d.LFL", kGenRoomNum, UNK_LANG, UNK, "VGA" }, // Loom CD diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h index 1649e2a5f9..301361d916 100644 --- a/engines/scumm/scumm-md5.h +++ b/engines/scumm/scumm-md5.h @@ -1,5 +1,5 @@ /* - This file was generated by the md5table tool on Sun Jan 8 18:57:45 2012 + This file was generated by the md5table tool on Sun Jan 22 19:25:34 2012 DO NOT EDIT MANUALLY! */ @@ -129,7 +129,7 @@ static const MD5Table md5table[] = { { "2c04aacffb8428f30ccf4f734fbe3adc", "activity", "", "", -1, Common::EN_ANY, Common::kPlatformPC }, { "2ccd8891ce4d3f1a334d21bff6a88ca2", "monkey", "CD", "", 9455, Common::EN_ANY, Common::kPlatformMacintosh }, { "2d1e891fe52df707c30185e52c50cd92", "monkey", "CD", "CD", 8955, Common::EN_ANY, Common::kPlatformPC }, - { "2d388339d6050d8ccaa757b64633954e", "zak", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, + { "2d388339d6050d8ccaa757b64633954e", "indyloom", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, { "2d4536a56e01da4b02eb021e7770afa2", "zak", "FM-TOWNS", "", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, { "2d4acbdcfd8e374c9da8c2e7303a5cd0", "BluesBirthday", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown }, { "2d624d1b214f7faf0094daea65c6d1a6", "maniac", "Apple II", "", -1, Common::EN_ANY, Common::kPlatformApple2GS }, @@ -160,7 +160,7 @@ static const MD5Table md5table[] = { { "37ff1b308999c4cca7319edfcc1280a0", "puttputt", "HE 70", "Demo", 8269, Common::EN_ANY, Common::kPlatformWindows }, { "3824e60cdf639d22f6df92a03dc4b131", "fbear", "HE 62", "", 7732, Common::EN_ANY, Common::kPlatformPC }, { "387a544b8b10b26912d8413bab63a853", "monkey2", "", "Demo", -1, Common::EN_ANY, Common::kPlatformPC }, - { "3938ee1aa4433fca9d9308c9891172b1", "zak", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, + { "3938ee1aa4433fca9d9308c9891172b1", "indyzak", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, { "399b217b0c8d65d0398076da486363a9", "indy3", "VGA", "VGA", 6295, Common::DE_DEU, Common::kPlatformPC }, { "39cb9dec16fa16f38d79acd80effb059", "loom", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformAmiga }, { "39cb9dec16fa16f38d79acd80effb059", "loom", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformAmiga }, @@ -329,7 +329,7 @@ static const MD5Table md5table[] = { { "76b66b43e593ad4d2f1dfb5cc8f19700", "spyfox", "HE 99", "", -1, Common::NL_NLD, Common::kPlatformWindows }, { "771bc18ec6f93837b839c992b211904b", "monkey", "Demo", "EGA Demo", -1, Common::DE_DEU, Common::kPlatformPC }, { "7766c9487f9d53a8cb0edabda5119c3d", "puttputt", "HE 60", "", 8022, Common::EN_ANY, Common::kPlatformPC }, - { "77f5c9cc0986eb729c1a6b4c8823bbae", "zak", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, + { "77f5c9cc0986eb729c1a6b4c8823bbae", "zakloom", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns }, { "780e4a0ae2ff17dc296f4a79543b44f8", "puttmoon", "", "", -1, Common::UNK_LANG, Common::kPlatformPC }, { "782393c5934ecd0b536eaf5fd541bd26", "pajama", "HE 100", "Updated", -1, Common::EN_ANY, Common::kPlatformWindows }, { "784b499c98d07260a30952685758636b", "pajama3", "", "Demo", 13911, Common::DE_DEU, Common::kPlatformWindows }, |