diff --git a/engines/mohawk/detection.cpp b/engines/mohawk/detection.cpp index 46943b8d005..01b21616e45 100644 --- a/engines/mohawk/detection.cpp +++ b/engines/mohawk/detection.cpp @@ -36,12 +36,19 @@ static const PlainGameDescriptor mohawkGames[] = { {"myst", "Myst"}, {"makingofmyst", "The Making of Myst"}, {"riven", "Riven: The Sequel to Myst"}, + {"zoombini", "Logical Journey of the Zoombinis"}, {"cstime", "Where in Time is Carmen Sandiego?"}, + {"csworld", "Where in the World is Carmen Sandiego?"}, + {"csamtrak", "Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)"}, {"carmentq", "Carmen Sandiego's ThinkQuick Challenge"}, {"carmentqc", "Carmen Sandiego's ThinkQuick Challenge Custom Question Creator"}, {"maggiesfa", "Maggie's Farmyard Adventure"}, + {"jamesmath", "James Discovers/Explores Math"}, + {"treehouse", "The Treehouse"}, {"greeneggs", "Green Eggs and Ham"}, {"seussabc", "Dr Seuss's ABC"}, + {"1stdegree", "In the 1st Degree"}, + {"csusa", "Where in the USA is Carmen Sandiego?"}, {"seussps", "Dr Seuss's Preschool"}, {"tortoise", "Aesop's Fables: The Tortoise and the Hare"}, {"arthur", "Arthur's Teacher Trouble"}, diff --git a/engines/mohawk/detection.h b/engines/mohawk/detection.h index ad5d0688a04..cfe4c5811ef 100644 --- a/engines/mohawk/detection.h +++ b/engines/mohawk/detection.h @@ -35,7 +35,14 @@ enum MohawkGameType { GType_LIVINGBOOKSV2, GType_LIVINGBOOKSV3, GType_LIVINGBOOKSV4, - GType_LIVINGBOOKSV5 + GType_LIVINGBOOKSV5, + GType_ZOOMBINI, + GType_CSWORLD, + GType_CSAMTRAK, + GType_JAMESMATH, + GType_TREEHOUSE, + GType_1STDEGREE, + GType_CSUSA, }; #define GAMEOPTION_ME GUIO_GAMEOPTIONS1 diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h index b707a330f1b..023399e7d8d 100644 --- a/engines/mohawk/detection_tables.h +++ b/engines/mohawk/detection_tables.h @@ -758,6 +758,123 @@ static const MohawkGameDescription gameDescriptions[] = { 0 }, + { + { + "zoombini", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("ZOOMBINI.MHK", "98b758fec55104c096cfd129048be9a6"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_ZOOMBINI, + 0, + 0 + }, + + { + { + "zoombini", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("ZOOMBINI.MHK", "0672f65c40dd065840c896e41c13f980"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_ZOOMBINI, + 0, + 0 + }, + + { + { + "zoombini", + _s("Missing game code"), // Reason for being unsupported // "v2.0", + AD_ENTRY1("ZOOMBINI.MHK", "506b1122ffa740e2566cf0b583d24478"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_ZOOMBINI, + 0, + 0 + }, + { + { + "zoombini", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("ZOOMBINI.MHK", "6ae0bdf791266b1fe3d4fabbf44c3faa"), + Common::DE_DEU, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_ZOOMBINI, + 0, + 0 + }, + { + { + "zoombini", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("ZOOMBINI.MHK", "8231e58525143ccf6e8b747df34b139f"), + Common::FR_FRA, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_ZOOMBINI, + 0, + 0 + }, + + { + { + "csworld", + _s("Missing game code"), // Reason for being unsupported // "v3.0", + AD_ENTRY1("C2K.MHK", "605fe88380848031bbd0ff84ade6fe40"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_CSWORLD, + 0, + 0 + }, + { + { + "csworld", + _s("Missing game code"), // Reason for being unsupported // "v3.5", + AD_ENTRY1("C2K.MHK", "d4857aeb0f5e2e0c4ac556aa74f38c23"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_CSWORLD, + 0, + 0 + }, + + { + { + "csamtrak", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("AMTRAK.MHK", "2f95301f0bb950d555bb7b0e3b1b7eb1"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_CSAMTRAK, + 0, + 0 + }, + // Harry and the Haunted House v1.0E // English Windows 3.11 // From strangerke @@ -987,6 +1104,52 @@ static const MohawkGameDescription gameDescriptions[] = { 0 }, + { + { + "jamesmath", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("BRODER.MHK", "007299da8b2c6e8ec1cde9598c243024"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_JAMESMATH, + 0, + 0 + }, + + // This is in the NEWDATA folder, so I assume it's a newer version ;) + { + { + "jamesmath", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("BRODER.MHK", "53c000938a50dca92860fd9b546dd276"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_JAMESMATH, + 0, + 0 + }, + + { + { + "treehouse", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("MAINROOM.MHK", "12f51894d7f838af639ea9bf1bc8f45b"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_TREEHOUSE, + 0, + 0 + }, + { { "greeneggs", @@ -1154,6 +1317,54 @@ static const MohawkGameDescription gameDescriptions[] = { 0 }, + { + { + "1stdegree", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("AL236_1.MHK", "3ba145492a7b8b4dee0ef4222c5639c3"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_1STDEGREE, + 0, + 0 + }, + + // In The 1st Degree + // French Windows + // From Strangerke + { + { + "1stdegree", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("AL236_1.MHK", "0e0c70b1b702b6ddca61a1192ada1282"), + Common::FR_FRA, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_1STDEGREE, + 0, + 0 + }, + + { + { + "csusa", + _s("Missing game code"), // Reason for being unsupported, + AD_ENTRY1("USAC2K.MHK", "b8c9d3a2586f62bce3a48b50d7a700e9"), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSUPPORTED, + GUIO1(GUIO_NOASPECT) + }, + GType_CSUSA, + 0, + 0 + }, + { { "tortoise", diff --git a/engines/mohawk/resource.h b/engines/mohawk/resource.h index 4daa5057372..b4b7204a02a 100644 --- a/engines/mohawk/resource.h +++ b/engines/mohawk/resource.h @@ -92,6 +92,10 @@ namespace Mohawk { #define ID_BMAP MKTAG('B','M','A','P') // Old Mohawk Bitmap #define ID_BCOD MKTAG('B','C','O','D') // Book Code +// JamesMath Resource FourCC's +#define ID_TANM MKTAG('t','A','N','M') // Animation? +#define ID_TMFO MKTAG('t','M','F','O') // ??? + // CSTime Resource FourCC's #define ID_CINF MKTAG('C','I','N','F') // Case Info #define ID_CONV MKTAG('C','O','N','V') // Conversation @@ -107,6 +111,10 @@ namespace Mohawk { #define ID_DATA MKTAG('D','a','t','a') // Game Sound Chunk #define ID_CUE MKTAG('C','u','e','#') // Game Sound Chunk +// Mohawk MIDI Tags +#define ID_MIDI MKTAG('M','I','D','I') // Game Sound (Third Tag), instead of WAVE +#define ID_PRG MKTAG('P','r','g','#') // MIDI Patch + // Common Resource FourCC's #define ID_TBMP MKTAG('t','B','M','P') // Standard Mohawk Bitmap #define ID_TWAV MKTAG('t','W','A','V') // Standard Mohawk Sound diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp index 25791721943..e0a674f2112 100644 --- a/engines/mohawk/sound.cpp +++ b/engines/mohawk/sound.cpp @@ -196,6 +196,9 @@ Audio::RewindableAudioStream *Sound::makeAudioStream(uint16 id, CueList *cueList Audio::RewindableAudioStream *audStream = nullptr; switch (_vm->getGameType()) { + case GType_ZOOMBINI: + audStream = makeMohawkWaveStream(_vm->getResource(ID_SND, id)); + break; case GType_LIVINGBOOKSV1: audStream = makeLivingBooksWaveStream_v1(_vm->getResource(ID_WAV, id)); break;