namespace Fullpipe { static const ADGameDescription gameDescriptions[] = { // Fullpipe Russian version { "fullpipe", 0, AD_ENTRY1s("0654.sc2", "099f54f86d33ad2395f3b854b7e05058", 2272), Common::RU_RUS, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, // Fullpipe German version { "fullpipe", 0, AD_ENTRY1s("0654.sc2", "d8743351fc53d205f42d91f6d791e51b", 2272), Common::RU_RUS, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, AD_TABLE_END_MARKER }; } // End of namespace Fullpipe
namespace Pegasus { static const PegasusGameDescription gameDescriptions[] = { { { "pegasus", "", AD_ENTRY1s("JMP PP Resources", "d13a602d2498010d720a6534f097f88b", 2009943), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO0() }, }, { { "pegasus", "Demo", AD_ENTRY1s("JMP PP Resources", "d13a602d2498010d720a6534f097f88b", 360129), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK|ADGF_DEMO, GUIO1(GUIO_NOLAUNCHLOAD) }, }, { AD_TABLE_END_MARKER } }; } // End of namespace Pegasus
namespace Dgds { /** * Detection entries for Dynamix games * * When adding a new entry, use Game.getVersion() for the * version information. */ static const ADGameDescription DgdsGameDescriptions[] = { // Heart of China - Spanish PC {"china", "", AD_ENTRY1s("volume.rmf", "072cffb026d91b8d25d11c70f4a57fb2", 10032), Common::ES_ESP, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NONE }, // Heart of China - English PC v1.216 {"china", "", AD_ENTRY1s("volume.rmf", "2da720143c1e857490daded15682df87", 9791), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NONE }, // Rise of the Dragon - English Amiga {"dragon", "", AD_ENTRY1s("volume.rmf", "44cd1ffdfeb385dcfcd60563e1036167", 8972), Common::EN_ANY, Common::kPlatformAmiga, ADGF_NO_FLAGS, Common::GUIO_NONE }, // Rise of the Dragon - English PC v1.211 {"dragon", "", AD_ENTRY1s("volume.vga", "0d9590fdc883d6d99c06e7935423d180", 7823), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NONE }, // The Adventures of Willy Beamish - English PC v1.224 {"willy","", AD_ENTRY1s("volume.rmf", "ba5cf24ec4b6dc044b03115a0cd5f3ff", 9896), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NONE }, AD_TABLE_END_MARKER }; } // End of namespace Dgds
namespace Sword25 { // TODO: Need to decide whether we're going to implement code to detect all the various languages allowed, // both by the core data package, as well as the extra languages added by the patch file; also, I don't // think that all the languages supported by the game currently have constants in ScummVM static const ADGameDescription gameDescriptions[] = { { "sword25", "", AD_ENTRY1s("data.b25c", "f8b6e03ada2d2f6cf27fbc11ad1572e9", 654310588), Common::EN_ANY, Common::kPlatformUnknown, ADGF_NO_FLAGS, Common::GUIO_NONE }, { "sword25", "Extracted", {{"_includes.lua", 0, 0, -1}, {"boot.lua", 0, 0, -1}, {"kernel.lua", 0, 0, -1}, AD_LISTEND}, Common::EN_ANY, Common::kPlatformUnknown, GF_EXTRACTED, Common::GUIO_NONE }, AD_TABLE_END_MARKER }; } // End of namespace Sword25
namespace Draci { const ADGameDescription gameDescriptions[] = { { "draci", 0, AD_ENTRY1s("INIT.DFW", "b890a5aeebaf16af39219cba2416b0a3", 906), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { "draci", 0, AD_ENTRY1s("INIT.DFW", "9921c8f0045679a8f37eca8d41c5ec02", 906), Common::CZ_CZE, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { "draci", 0, AD_ENTRY1s("INIT.DFW", "76b9b78a8a8809a240acc395df4d0715", 906), Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { "draci", 0, AD_ENTRY1s("INIT.DFW", "9a7115b91cdea361bcaff3e046ac7ded", 906), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, AD_TABLE_END_MARKER }; } // End of namespace Draci
namespace ZVision { static const ZVisionGameDescription gameDescriptions[] = { { // Zork Nemesis English version { "znemesis", 0, AD_ENTRY1s("CSCR.ZFS", "88226e51a205d2e50c67a5237f3bd5f2", 2397741), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, GID_NEMESIS }, { // Zork Grand Inquisitor English version { "zgi", 0, AD_ENTRY1s("SCRIPTS.ZFS", "81efd40ecc3d22531e211368b779f17f", 8336944), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, GID_GRANDINQUISITOR }, { AD_TABLE_END_MARKER, GID_NONE } }; } // End of namespace ZVision
namespace Composer { static const ComposerGameDescription gameDescriptions[] = { // Magic Tales: Baba Yaga and the Magic Geese - from bug #3485018 { { "babayaga", "", AD_ENTRY1s("book.ini", "412b7f4b0ef07f442009d28e3a819974", 3852), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // Magic Tales: Baba Yaga and the Magic Geese Mac - from bug #3466402 { { "babayaga", "", AD_ENTRY1("Baba Yaga", "ae3a4445f42fe10253da7ee4ea0d37"), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // Magic Tales: Imo and the King - from bug #3485018 { { "imoking", "", AD_ENTRY1s("book.ini", "62b52a1763cce7d7d6ccde9f9d32fd4b", 3299), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // Magic Tales: Imo and the King Mac - from bug #3466402 { { "imoking", "", AD_ENTRY1("imo and the king", "b0277885fec943b5f19409f35b33964c"), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // Magic Tales: The Little Samurai - from bug #3485018 { { "littlesamurai", "", AD_ENTRY1s("book.ini", "7a851869d022a9041e0dd11e5bace09b", 3747), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // Magic Tales: The Little Samurai Mac - from bug #3466402 { { "littlesamurai", "", AD_ENTRY1("The Little Samurai", "38121dd649c24e8676aa108cf35d44b5"), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, // from Liam Finds a Story CD { { "magictales", "Magic Tales Demo: Baby Yaga, Samurai, Imo", AD_ENTRY1("book.ini", "dbc98c566f4ac61b544443524585dccb"), Common::EN_ANY, Common::kPlatformWindows, ADGF_USEEXTRAASTITLE | ADGF_DEMO, GUIO1(GUIO_NOASPECT) }, GType_ComposerV1 }, { { "liam", 0, AD_ENTRY1s("book.ini", "fc9d9b9e72e7301d011b808606eaa15b", 834), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, // Liam Finds a Story Mac - from bug #3463201 { { "liam", 0, { {"liam finds a story.ini", 0, "85a1ca6002ded8572920bbdb73d35b0a", -1}, {"page99.rsc", 0, "11b0a19c6b6d73c39e2bd289a457c1dc", -1}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, // from Liam Finds a Story CD { { "magictales", "Magic Tales Demo: Sleeping Cub, Princess & Crab", AD_ENTRY1("book.ini", "3dede2522bb0886c95667b082987a87f"), Common::EN_ANY, Common::kPlatformWindows, ADGF_USEEXTRAASTITLE | ADGF_DEMO, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { { "darby", 0, { {"book.ini", 0, "7e3404c559d058521fff2aebe5c427a8", 2545}, {"page99.rsc", 0, "49cc6b16caa1c5ec7d94a3c47eed9a02", 1286480}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { { "darby", 0, AD_ENTRY1("Darby the Dragon.ini", "d81f9214936fa70d42fc578908d4bb3d"), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { // Provided by Strangerke, "CD-Rom 100% Malin" Pack { "darby", 0, AD_ENTRY1("book.ini", "285308372f7dddff2ca5a25c9192cf5c"), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { { "gregory", 0, { {"book.ini", 0, "14a562dcf361773445255af9f3e94790", 2234}, {"page99.rsc", 0, "01f9381162467e052dfd4c704169ef3e", 388644}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { { "gregory", 0, AD_ENTRY1("Gregory.ini", "fa82f14731f28c7379c5a106df07a0d6"), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { // Provided by Strangerke, "CD-Rom 100% Malin" Pack { "gregory", 0, AD_ENTRY1("book.ini", "e54fc5c00de5f94e908a969e445af5d0"), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { // Provided by sev { "princess", 0, { {"book.ini", 0, "fb32572577b9a41ba299825ef1e3181e", 966}, {"page99.rsc", 0, "fd5ebd3b5e36c4651c50241619525355", 45418}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, // The Princess and the Crab Mac - From Bug #3461984 { { "princess", 0, { {"the princess and the crab.ini", 0, "f6b551a7304643004bd5e4df7ac1e76e", -1}, {"page99.rsc", 0, "fd5ebd3b5e36c4651c50241619525355", -1}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { // Provided by sev { "sleepingcub", 0, { {"book.ini", 0, "0d329e592387009c6387a733a3ea2235", 964}, {"page99.rsc", 0, "219fbd9bd2ff87c7023814405d753145", 46916}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, // Sleeping Cub Mac - From Bug #3461369 { { "sleepingcub", 0, { {"sleeping cub.ini", 0, "39642a4036cb51443f5e90052c3ad0b2", -1}, {"page99.rsc", 0, "219fbd9bd2ff87c7023814405d753145", -1}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_NO_FLAGS, GUIO1(GUIO_NOASPECT) }, GType_ComposerV2 }, { AD_TABLE_END_MARKER, 0 } }; } // End of namespace Composer
namespace Groovie { #define GAMEOPTION_T7G_FAST_MOVIE_SPEED GUIO_GAMEOPTIONS1 static const PlainGameDescriptor groovieGames[] = { // Games {"t7g", "The 7th Guest"}, #ifdef ENABLE_GROOVIE2 {"11h", "The 11th Hour: The Sequel to The 7th Guest"}, {"clandestiny", "Clandestiny"}, {"unclehenry", "Uncle Henry's Playhouse"}, {"tlc", "Tender Loving Care"}, #endif {0, 0} }; static const GroovieGameDescription gameDescriptions[] = { // The 7th Guest DOS English { { "t7g", "", AD_ENTRY1s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, // The 7th Guest Mac English { { "t7g", "", AD_ENTRY1s("T7GMac", "acdc4a58dd3f007f65e99b99d78e0bce", 1814029), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, #if 0 // These entries should now be identical to the first T7G Mac entry after // changing the app to only use the data part of the resource fork. They // are left disabled here as a reference. // The 7th Guest Mac English (Aztec single disc) { { "t7g", "", AD_ENTRY1s("T7GMac", "6bdee8d0f9eef6d58d02fcd7deec3fb2", 1830783), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, // The 7th Guest Mac English (Aztec bundle, provided by Thefinaleofseem) { { "t7g", "", AD_ENTRY1s("T7GMac", "0d595d4b44ae1814082938d051e5174e", 1830783), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, #endif // The 7th Guest DOS Russian (Akella) { { "t7g", "", { { "script.grv", 0, "d1b8033b40aa67c076039881eccce90d", 16659}, { "intro.gjd", 0, NULL, 31711554}, { NULL, 0, NULL, 0} }, Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, { { "t7g", "", { { "script.grv", 0, "d1b8033b40aa67c076039881eccce90d", 16659}, { "SeventhGuest", 0, NULL, -1}, { NULL, 0, NULL, 0} }, Common::EN_ANY, Common::kPlatformIOS, ADGF_NO_FLAGS, GUIO3(GUIO_NOMIDI, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED) }, kGroovieT7G, 0 }, #ifdef ENABLE_GROOVIE2 // The 11th Hour DOS English { { "11h", "", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 1 }, // The 11th Hour Macintosh English { { "11h", "", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "The 11th Hour Installer", 0, "bcdb4040b27f15b18f39fb9e496d384a", 1002987 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 1 }, // The 11th Hour Macintosh English (Installed) { { "11h", "Installed", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "el01.mov", 0, "70f42dfc25b1488a08011dc45bb5145d", 6039 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 1 }, // The 11th Hour DOS Demo English { { "11h", "Demo", AD_ENTRY1s("disk.1", "aacb32ce07e0df2894bd83a3dee40c12", 70), Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOLAUNCHLOAD, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 1 }, // The Making of The 11th Hour DOS English { { "11h", "Making Of", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOASPECT) }, kGroovieV2, 2 }, // The Making of The 11th Hour Macintosh English { { "11h", "Making Of", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "The 11th Hour Installer", 0, "bcdb4040b27f15b18f39fb9e496d384a", 1002987 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 2 }, // The Making of The 11th Hour Macintosh English (Installed) { { "11h", "Making Of (Installed)", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "el01.mov", 0, "70f42dfc25b1488a08011dc45bb5145d", 6039 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 2 }, // Clandestiny Trailer DOS English { { "clandestiny", "Trailer", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOASPECT) }, kGroovieV2, 3 }, // Clandestiny Trailer Macintosh English { { "clandestiny", "Trailer", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "The 11th Hour Installer", 0, "bcdb4040b27f15b18f39fb9e496d384a", 1002987 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 3 }, // Clandestiny Trailer Macintosh English (Installed) { { "clandestiny", "Trailer (Installed)", { { "disk.1", 0, "5c0428cd3659fc7bbcd0aa16485ed5da", 227 }, { "el01.mov", 0, "70f42dfc25b1488a08011dc45bb5145d", 6039 }, { 0, 0, 0, 0 } }, Common::EN_ANY, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT) }, kGroovieV2, 3 }, // Clandestiny DOS English { { "clandestiny", "", AD_ENTRY1s("disk.1", "f79fc1515174540fef6a34132efc4c53", 76), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO2(GUIO_NOMIDI, GUIO_NOASPECT) }, kGroovieV2, 1 }, // Uncle Henry's Playhouse PC English { { "unclehenry", "", AD_ENTRY1s("disk.1", "0e1b1d3cecc4fc7efa62a968844d1f7a", 72), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO2(GUIO_NOMIDI, GUIO_NOASPECT) }, kGroovieV2, 1 }, // Tender Loving Care PC English { { "tlc", "", AD_ENTRY1s("disk.1", "32a1afa68478f1f9d2b25eeea427f2e3", 84), Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO2(GUIO_NOMIDI, GUIO_NOASPECT) }, kGroovieV2, 1 }, #endif {AD_TABLE_END_MARKER, kGroovieT7G, 0} }; static const char *directoryGlobs[] = { "MIDI", 0 }; static const ADExtraGuiOptionsMap optionsList[] = { { GAMEOPTION_T7G_FAST_MOVIE_SPEED, { _s("Fast movie speed"), _s("Play movies at an increased speed"), "fast_movie_speed", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; class GroovieMetaEngine : public AdvancedMetaEngine { public: GroovieMetaEngine() : AdvancedMetaEngine(gameDescriptions, sizeof(GroovieGameDescription), groovieGames, optionsList) { // Use kADFlagUseExtraAsHint in order to distinguish the 11th hour from // its "Making of" as well as the Clandestiny Trailer; they all share // the same MD5. // TODO: Is this the only reason, or are there others (like the three // potentially sharing a single directory) ? In the former case, then // perhaps a better solution would be to add additional files // to the detection entries. In the latter case, this TODO should be // replaced with an according explanation. _flags = kADFlagUseExtraAsHint; _guioptions = GUIO3(GUIO_NOSUBTITLES, GUIO_NOSFX, GUIO_NOASPECT); // Need MIDI directory to detect 11H Mac Installed _maxScanDepth = 2; _directoryGlobs = directoryGlobs; } const char *getEngineID() const { return "groovie"; } const char *getName() const { return "Groovie"; } const char *getOriginalCopyright() const { return "Groovie Engine (C) 1990-1996 Trilobyte"; } bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const; bool hasFeature(MetaEngineFeature f) const; SaveStateList listSaves(const char *target) const; int getMaximumSaveSlot() const; void removeSaveState(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; }; bool GroovieMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const { if (gd) { *engine = new GroovieEngine(syst, (const GroovieGameDescription *)gd); } return gd != 0; } bool GroovieMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || (f == kSupportsDeleteSave) || (f == kSavesSupportMetaInfo); } SaveStateList GroovieMetaEngine::listSaves(const char *target) const { return SaveLoad::listValidSaves(target); } int GroovieMetaEngine::getMaximumSaveSlot() const { return SaveLoad::getMaximumSlot(); } void GroovieMetaEngine::removeSaveState(const char *target, int slot) const { if (!SaveLoad::isSlotValid(slot)) { // Invalid slot, do nothing return; } Common::String filename = SaveLoad::getSlotSaveName(target, slot); g_system->getSavefileManager()->removeSavefile(filename); } SaveStateDescriptor GroovieMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor desc; Common::InSaveFile *savefile = SaveLoad::openForLoading(target, slot, &desc); delete savefile; return desc; } } // End of namespace Groovie
namespace Grim { struct GrimGameDescription { ADGameDescription desc; GrimGameType gameType; }; static const PlainGameDescriptor grimGames[] = { {"grim", "Grim Fandango"}, {"monkey4", "Escape From Monkey Island"}, {0, 0} }; #define GAMEOPTION_LOAD_DATAUSR GUIO_GAMEOPTIONS1 static const ADExtraGuiOptionsMap gameGuiOptions[] = { { GAMEOPTION_LOAD_DATAUSR, { "Load user patch (unsupported)", "Load an user patch. Please note that the ResidualVM-team doesn't provide support for using such patches.", "datausr_load", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; static const GrimGameDescription gameDescriptions[] = { { // Grim Fandango English version (patched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "444f05f2af689c1bffd179b8b6a632bd", 57993159), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango English version (unpatched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "8b12ed530195c6c577436df27df62ecb", 58011176), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango French version (un/patched ???) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "19bc0dc9554257b1f021463de54f359f", 56268691), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Portuguese version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "89da4d4f4f90a8ea390450ed5a617f08", 57875710), Common::PT_BRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Italian version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "9e7075f3fb0427ae8136b290538d07dd", 62185775), Common::IT_ITA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Spanish version (patched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "85d3e9504c481c5ccf2119ea6e0f4e2f", 53831340), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango German version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "d304aa402098de5966816c0a11e45816", 66829347), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, /* { // Grim Fandango German version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "464138caf47e580cbb237dee10674b16", 398671), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Spanish version { "grim", "", AD_ENTRY1s("grim.tab", "b1460cd029f13718f7f62c2403e047ec", 372709), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Spanish version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "b1460cd029f13718f7f62c2403e047ec", 372020), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Italian version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "2d99c796b7a4e5c421cae49dc29dab6c", 369242), Common::IT_ITA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango French version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "3bd00ca87214862c012ac99e1758dd83", 386292), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, { // Grim Fandango Portuguese version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "4dc16be476bb6036b423bc331ca8281a", 362994), Common::PT_BRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, */ { // Grim Fandango English demo version { "grim", "Demo", AD_ENTRY1s("gfdemo01.lab", "755cdac083f7f751bec7506402278f1a", 29489930), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO1(GAMEOPTION_LOAD_DATAUSR) }, GType_GRIM }, #ifdef ENABLE_MONKEY4 { // Escape from Monkey Island English { "monkey4", "", AD_ENTRY1s("artAll.m4b", "61959da91d864bf5f4588daa4a5a3019", 18515664), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island German { "monkey4", "", AD_ENTRY1s("artAll.m4b", "007a33881478be6b6e0228d8888536ae", 18512568), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Italian { "monkey4", "", AD_ENTRY1s("artAll.m4b", "d2f010c1cd1fd002eea403282a6b9a1e", 18513451), Common::IT_ITA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Spanish { "monkey4", "", AD_ENTRY1s("artAll.m4b", "0d459954031c086a0448d2eb3fa068a1", 18514404), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island French { "monkey4", "", AD_ENTRY1s("artAll.m4b", "151af0a694382af873f325fcea293bb1", 18514420), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Portuguese { "monkey4", "", AD_ENTRY1s("artAll.m4b", "030e7637aee7886a3caad60cf102f797", 18515747), Common::PT_BRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Russian { "monkey4", "", AD_ENTRY1s("artAll.m4b", "779561a70a11dd5686974f122fc1516c", 18500052), Common::RU_RUS, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island English PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "0dc9a4df0d8553f277d8dc8e23b6249d", 34593974), Common::EN_ANY, Common::kPlatformPS2, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island German PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "5b5c7a3964c168eab44b82981db357d8", 34642186), Common::DE_DEU, Common::kPlatformPS2, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Italian PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "2de68c8fd955c1a3c50202b072bde0cb", 34642651), Common::IT_ITA, Common::kPlatformPS2, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island Spanish PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "ff6689dcca36c249ec834a3019aeb397", 34642656), Common::ES_ESP, Common::kPlatformPS2, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island French PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "5ce964a19a8672944b9b62170e45ce28", 34593681), Common::FR_FRA, Common::kPlatformPS2, ADGF_NO_FLAGS, GUIO_NONE }, GType_MONKEY4 }, { // Escape from Monkey Island demo { "monkey4", "Demo", AD_ENTRY1s("magdemo.lab", "9e7eaa1b9317ff47d5deeda0b2c42ce3", 19826116), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO_NONE }, GType_MONKEY4 }, #endif // ENABLE_MONKEY4 { AD_TABLE_END_MARKER, GType_GRIM } }; static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = { {"grimdemo", "grim", Common::kPlatformWindows}, {0, 0, Common::kPlatformUnknown} }; class GrimMetaEngine : public AdvancedMetaEngine { public: GrimMetaEngine() : AdvancedMetaEngine(Grim::gameDescriptions, sizeof(Grim::GrimGameDescription), grimGames, gameGuiOptions) { _singleid = "grim"; _guioptions = GUIO_NOMIDI; } virtual GameDescriptor findGame(const char *gameid) const { return Engines::findGameID(gameid, _gameids, obsoleteGameIDsTable); } virtual const char *getName() const { return "Grim Engine"; } virtual const char *getOriginalCopyright() const { return "LucasArts GrimE Games (C) LucasArts"; } virtual Common::Error createInstance(OSystem *syst, Engine **engine) const { Engines::upgradeTargetIfNecessary(obsoleteGameIDsTable); return AdvancedMetaEngine::createInstance(syst, engine); } virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const; virtual bool hasFeature(MetaEngineFeature f) const; virtual SaveStateList listSaves(const char *target) const; }; bool GrimMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { const GrimGameDescription *gd = (const GrimGameDescription *)desc; if (gd) *engine = new GrimEngine(syst, gd->desc.flags, gd->gameType, gd->desc.platform, gd->desc.language); return gd != 0; } bool GrimMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup); } static bool cmpSave(const SaveStateDescriptor &x, const SaveStateDescriptor &y) { return x.getSaveSlot() < y.getSaveSlot(); } SaveStateList GrimMetaEngine::listSaves(const char *target) const { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray filenames; Common::String pattern = "grim*.gsv"; filenames = saveFileMan->listSavefiles(pattern); SaveStateList saveList; char str[256]; int32 strSize; for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) { // Obtain the last digits of the filename, since they correspond to the save slot int slotNum = atoi(file->c_str() + 4); if (slotNum >= 0) { SaveGame *savedState = SaveGame::openForLoading(*file); if (savedState && savedState->isCompatible()) { savedState->beginSection('SUBS'); strSize = savedState->readLESint32(); savedState->read(str, strSize); savedState->endSection(); saveList.push_back(SaveStateDescriptor(slotNum, str)); } delete savedState; } } Common::sort(saveList.begin(), saveList.end(), cmpSave); return saveList; } } // End of namespace Grim
"Rerelease", { { "doors", 0, "d77536010e7e5ae17ee066323ceb9585", 2537 }, // game/doors { "noteold.fon", 0, "6c1d90ad55149556e79d3f7bfddb4bd7", 9252 }, // game/spict/noteold.fon { "wyrmkeep",0, "97c7064c54c28b952d37c4ebff6efa50", 52286 }, // game/spict/intro { NULL, 0, NULL, 0 } }, Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO0() }, { "lab", "", AD_ENTRY1s("doors", "7bf458df6ec30cc8ef4665e4d7c77f59", 2537), // game/doors Common::EN_ANY, Common::kPlatformAmiga, Lab::GF_LOWRES | ADGF_UNSTABLE, GUIO0() }, AD_TABLE_END_MARKER }; static const char *const directoryGlobs[] = { "game", "pict", "spict", "rooms", "h2", "intro",
namespace Made { static const MadeGameDescription gameDescriptions[] = { { // NOTE: Return to Zork entries with *.dat are used to detect the game via rtzcd.dat, // which is packed inside rtzcd.red. Entries with *.red refer to the packed file // directly, which is the "official" way. // Return to Zork - English CD version 1.0 9/15/93 (installed) // Patch #1953654 submitted by spookypeanut { "rtz", "V1.0, 9/15/93, installed, CD", AD_ENTRY1("rtzcd.dat", "e95c38ded389e39cfbf87a8cb250b12e"), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - English CD version 1.0 9/15/93 // Patch #1953654 submitted by spookypeanut { "rtz", "V1.0, 9/15/93, CD", AD_ENTRY1("rtzcd.red", "cd8b62ece4677c438688c1de3f5379b9"), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - English CD version 1.1 12/7/93 (installed) { "rtz", "V1.1, 12/7/93, installed, CD", AD_ENTRY1s("rtzcd.dat", "a1db8c97a78dae10f91d356f16ad07b8", 536064), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - English CD version 1.1 12/7/93 { "rtz", "V1.1, 12/7/93, CD", AD_ENTRY1s("rtzcd.red", "c4e2430e6b6c6ff1562a80fb4a9df24c", 276177), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - English CD version 1.2 9/29/94 (installed) // Supplied by Dark-Star in the ScummVM forums { "rtz", "V1.2, 9/29/94, installed, CD", AD_ENTRY1("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a"), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - English CD version 1.2 9/29/94 { "rtz", "V1.2, 9/29/94, CD", AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 276584), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - German CD version 1.2 9/29/94 (installed) // Supplied by Dark-Star in the ScummVM forums { "rtz", "V1.2, 9/29/94, installed, CD", AD_ENTRY1s("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a", 525824), Common::DE_DEU, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - German CD version 1.2 4/18/95 // Supplied by Dark-Star in the ScummVM forums { "rtz", "V1.2, 4/18/95, CD", AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 355442), Common::DE_DEU, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - Italian CD version 1.2 3/31/95 (installed) // Patch #2685032 submitted by goodoldgeorg { "rtz", "V1.2, 3/31/95, installed, CD", AD_ENTRY1s("rtzcd.dat", "5b86035aed0277f96e3d173542b5364a", 523776), Common::IT_ITA, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - Italian CD version 1.2 3/31/95 // Patch #2685032 submitted by goodoldgeorg { "rtz", "V1.2, 3/31/95, CD", AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354971), Common::IT_ITA, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - French CD version 1.2 5/13/95 (installed) // Patch #2685032 submitted by goodoldgeorg { "rtz", "V1.2, 5/13/95, installed, CD", AD_ENTRY1s("rtzcd.dat", "bde8251a8e34e87c54e3f93147d56c9e", 523776), Common::FR_FRA, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - French CD version 1.2 5/13/95 // Patch #2685032 submitted by goodoldgeorg { "rtz", "V1.2, 3/31/95, CD", AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354614), Common::FR_FRA, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD_COMPRESSED, 3, }, { // Return to Zork - English floppy version { "rtz", "Floppy", AD_ENTRY1("rtz.prj", "764d02f52ce1c219f2c0066677fba4ce"), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_RTZ, 0, GF_FLOPPY, 3, }, { // Return to Zork - Demo { "rtz", "Demo", AD_ENTRY1("demo.dat", "2a6a1354bd5346fad4aee08e5b56caaa"), Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO0() }, GID_RTZ, 0, GF_DEMO, 3, }, { // Return to Zork - Japanese DOS // This is the RTZCD.DAT in the base directory of the FM-Towns CD { "rtz", "", AD_ENTRY1("rtzcd.dat", "c4fccf67ad247f09b94c3c808b138576"), Common::JA_JPN, Common::kPlatformDOS, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - Japanese FM-Towns // This is in the RTZFM folder of the FM-Towns CD { "rtz", "", AD_ENTRY1("rtzcd.dat", "e949a6a42d82daabfa7d4dc0a87a9843"), Common::JA_JPN, Common::kPlatformFMTowns, ADGF_CD, GUIO1(GUIO_NOASPECT) }, GID_RTZ, 0, GF_CD, 3, }, { // Return to Zork - Japanese PC-98 // This is in the RTZ9821 folder of the FM-Towns CD { "rtz", "", AD_ENTRY1("rtzcd.dat", "0c0117e98530c736a141c2aad6834dc5"), Common::JA_JPN, Common::kPlatformPC98, ADGF_CD, GUIO0() }, GID_RTZ, 0, GF_CD, 3, }, { // The Manhole: New and Enhanced { "manhole", "", AD_ENTRY1("manhole.dat", "cb21e31ed35c963208343bc995225b73"), Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO1(GUIO_NOSPEECH) }, GID_MANHOLE, 0, GF_CD, 2, }, { // The Manhole (EGA, 5.25") { "manhole", "EGA", AD_ENTRY1("manhole.dat", "2b1658292599a861c4cd3cf6cdb3c581"), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_MANHOLE, 0, GF_FLOPPY, 1, }, { // Leather Goddesses of Phobos 2 (English) { "lgop2", "", AD_ENTRY1("lgop2.dat", "8137996db200ff67e8f172ff106f2e48"), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_LGOP2, 0, GF_FLOPPY, 2, }, { // Leather Goddesses of Phobos 2 (German) // Supplied by windlepoons (bug tracker #2675695) { "lgop2", "", AD_ENTRY1s("lgop2.dat", "a0ffea6a3b7e39bd861edd00c397641c", 299466), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_LGOP2, 0, GF_FLOPPY, 2, }, { // Leather Goddesses of Phobos 2 (French) // Supplied by goodoldgeorg (bug tracker #2675759) { "lgop2", "", AD_ENTRY1s("lgop2.dat", "f9e974087af7cf4b7ec2d8dc45d01e0c", 295366), Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_LGOP2, 0, GF_FLOPPY, 2, }, { // Leather Goddesses of Phobos 2 (Spanish) // Supplied by goodoldgeorg (bug tracker #2675759) { "lgop2", "", AD_ENTRY1s("lgop2.dat", "96eb95b4d75b9a3da0b0d67e3b4a787d", 288984), Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_LGOP2, 0, GF_FLOPPY, 2, }, { // Rodney's Funscreen { "rodney", "", AD_ENTRY1("rodneys.dat", "a79887dbaa47689facd7c6f09258ba5a"), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, GID_RODNEY, 0, GF_FLOPPY, 2, }, { AD_TABLE_END_MARKER, 0, 0, 0, 0 } }; /** * The fallback game descriptor used by the Made engine's fallbackDetector. * Contents of this struct are to be overwritten by the fallbackDetector. */ static MadeGameDescription g_fallbackDesc = { { "", "", AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor Common::UNK_LANG, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, 0, 0, 0, 0, }; } // End of namespace Made
namespace Groovie { static const PlainGameDescriptor groovieGames[] = { // Games {"t7g", "The 7th Guest"}, #ifdef ENABLE_GROOVIE2 {"11h", "The 11th Hour: The Sequel to The 7th Guest"}, {"clandestiny", "Clandestiny"}, {"unclehenry", "Uncle Henry's Playhouse"}, {"tlc", "Tender Loving Care"}, #endif // Unknown {"groovie", "Groovie engine game"}, {0, 0} }; static const GroovieGameDescription gameDescriptions[] = { // The 7th Guest DOS English { { "t7g", "", AD_ENTRY1s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieT7G, 0 }, // The 7th Guest Mac English { { "t7g", "", AD_ENTRY1s("T7GMac", "acdc4a58dd3f007f65e99b99d78e0bce", 1814029), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieT7G, 0 }, #if 0 // These entries should now be identical to the first T7G Mac entry after // changing the app to only use the data part of the resource fork. They // are left disabled here as a reference. // The 7th Guest Mac English (Aztec single disc) { { "t7g", "", AD_ENTRY1s("T7GMac", "6bdee8d0f9eef6d58d02fcd7deec3fb2", 1830783), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieT7G, 0 }, // The 7th Guest Mac English (Aztec bundle, provided by Thefinaleofseem) { { "t7g", "", AD_ENTRY1s("T7GMac", "0d595d4b44ae1814082938d051e5174e", 1830783), Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieT7G, 0 }, #endif // The 7th Guest DOS Russian (Akella) { { "t7g", "", { { "script.grv", 0, "d1b8033b40aa67c076039881eccce90d", 16659}, { "intro.gjd", 0, NULL, 31711554}, { NULL, 0, NULL, 0} }, Common::RU_RUS, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieT7G, 0 }, #ifdef ENABLE_GROOVIE2 // The 11th Hour DOS English { { "11h", "", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieV2, 1 }, // The 11th Hour DOS Demo English { { "11h", "Demo", AD_ENTRY1s("disk.1", "aacb32ce07e0df2894bd83a3dee40c12", 70), Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, Common::GUIO_NOLAUNCHLOAD | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM }, kGroovieV2, 1 }, // The Making of The 11th Hour DOS English { { "11h", "Making Of", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NOMIDI | Common::GUIO_NOLAUNCHLOAD }, kGroovieV2, 2 }, // Clandestiny Trailer DOS English { { "clandestiny", "Trailer", AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NOMIDI | Common::GUIO_NOLAUNCHLOAD }, kGroovieV2, 3 }, // Clandestiny DOS English { { "clandestiny", "", AD_ENTRY1s("disk.1", "f79fc1515174540fef6a34132efc4c53", 76), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NOMIDI }, kGroovieV2, 1 }, // Uncle Henry's Playhouse PC English { { "unclehenry", "", AD_ENTRY1s("disk.1", "0e1b1d3cecc4fc7efa62a968844d1f7a", 72), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NOMIDI }, kGroovieV2, 1 }, // Tender Loving Care PC English { { "tlc", "", AD_ENTRY1s("disk.1", "32a1afa68478f1f9d2b25eeea427f2e3", 84), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, Common::GUIO_NOMIDI }, kGroovieV2, 1 }, #endif {AD_TABLE_END_MARKER, kGroovieT7G, 0} }; static const ADParams detectionParams = { // Pointer to ADGameDescription or its superset structure (const byte *)gameDescriptions, // Size of that superset structure sizeof(GroovieGameDescription), // Number of bytes to compute MD5 sum for 5000, // List of all engine targets groovieGames, // Structure for autoupgrading obsolete targets 0, // Name of single gameid (optional) "groovie", // List of files for file-based fallback detection (optional) 0, // Flags kADFlagUseExtraAsHint, // Additional GUI options (for every game} Common::GUIO_NOSUBTITLES | Common::GUIO_NOSFX, // Maximum directory depth 1, // List of directory globs 0 }; class GroovieMetaEngine : public AdvancedMetaEngine { public: GroovieMetaEngine() : AdvancedMetaEngine(detectionParams) {} const char *getName() const { return "Groovie Engine"; } const char *getOriginalCopyright() const { return "Groovie Engine (C) 1990-1996 Trilobyte"; } bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const; bool hasFeature(MetaEngineFeature f) const; SaveStateList listSaves(const char *target) const; int getMaximumSaveSlot() const; void removeSaveState(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; }; bool GroovieMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const { if (gd) { *engine = new GroovieEngine(syst, (const GroovieGameDescription *)gd); } return gd != 0; } bool GroovieMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || (f == kSupportsDeleteSave) || (f == kSavesSupportMetaInfo); } SaveStateList GroovieMetaEngine::listSaves(const char *target) const { return SaveLoad::listValidSaves(target); } int GroovieMetaEngine::getMaximumSaveSlot() const { return SaveLoad::getMaximumSlot(); } void GroovieMetaEngine::removeSaveState(const char *target, int slot) const { if (!SaveLoad::isSlotValid(slot)) { // Invalid slot, do nothing return; } Common::String filename = SaveLoad::getSlotSaveName(target, slot); g_system->getSavefileManager()->removeSavefile(filename); } SaveStateDescriptor GroovieMetaEngine::querySaveMetaInfos(const char *target, int slot) const { SaveStateDescriptor desc; Common::InSaveFile *savefile = SaveLoad::openForLoading(target, slot, &desc); delete savefile; return desc; } } // End of namespace Groovie
#include "common/fs.h" #include "base/plugins.h" #include "tucker/tucker.h" static const PlainGameDescriptor tuckerGames[] = { { "tucker", "Bud Tucker in Double Trouble" }, { 0, 0 } }; static const ADGameDescription tuckerGameDescriptions[] = { { "tucker", "", AD_ENTRY1s("infobar.txt", "f1e42a95972643462b9c3c2ea79d6683", 543), Common::FR_FRA, Common::kPlatformPC, Tucker::kGameFlagNoSubtitles, Common::GUIO_NONE }, { "tucker", "", AD_ENTRY1s("infobar.txt", "9c1ddeafc5283b90d1a284bd0924831c", 462), Common::EN_ANY, Common::kPlatformPC, Tucker::kGameFlagEncodedData, Common::GUIO_NONE }, {
namespace Fullpipe { static const ADGameDescription gameDescriptions[] = { // Full Pipe Russian version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "a1a8f3ed731b0dfea43beaa3016fdc71", 554), Common::RU_RUS, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, // Full Pipe German version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "e4f24ffe4dc84cafc648b951e66c1fb3", 554), Common::DE_DEU, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, // Full Pipe Estonian version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "571f6b4b68b02003e35bc12c1a1d3fe3", 466), Common::ET_EST, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, // Full Pipe English version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "bffea807345fece14089768fc141af83", 510), Common::EN_ANY, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO1(GUIO_NONE) }, // Full Pipe Russian Demo version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "a0c71b47fc35a5e163fcd8d0972639bb", 70), Common::RU_RUS, Common::kPlatformWindows, ADGF_DROPPLATFORM | ADGF_DEMO, GUIO1(GUIO_NONE) }, // Full Pipe German Demo version { "fullpipe", 0, AD_ENTRY1s("4620.sc2", "e5e98df537e56b39c33ae1d5c90976fe", 510), Common::DE_DEU, Common::kPlatformWindows, ADGF_DROPPLATFORM | ADGF_DEMO, GUIO1(GUIO_NONE) }, AD_TABLE_END_MARKER }; } // End of namespace Fullpipe
namespace Grim { struct GrimGameDescription { ADGameDescription desc; GrimGameType gameType; }; static const PlainGameDescriptor grimGames[] = { {"grim", "Grim Fandango"}, {"monkey4", "Escape From Monkey Island"}, {nullptr, nullptr} }; #define GAMEOPTION_LOAD_DATAUSR GUIO_GAMEOPTIONS1 #define GAMEOPTION_SHOW_FPS GUIO_GAMEOPTIONS2 #define GUI_OPTIONS_GRIME GUIO2(GAMEOPTION_LOAD_DATAUSR, GAMEOPTION_SHOW_FPS) static const ADExtraGuiOptionsMap gameGuiOptions[] = { { GAMEOPTION_LOAD_DATAUSR, { _s("Load user patch (unsupported)"), _s("Load an user patch. Please note that the ResidualVM-team doesn't provide support for using such patches."), "datausr_load", false } }, { GAMEOPTION_SHOW_FPS, { _s("Show FPS"), _s("Show the current FPS-rate, while you play."), "show_fps", false } }, AD_EXTRA_GUI_OPTIONS_TERMINATOR }; static const GrimGameDescription gameDescriptions[] = { { // Grim Fandango English version (patched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "444f05f2af689c1bffd179b8b6a632bd", 57993159), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango English version (unpatched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "8b12ed530195c6c577436df27df62ecb", 58011176), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango French version (un/patched ???) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "19bc0dc9554257b1f021463de54f359f", 56268691), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Portuguese version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "89da4d4f4f90a8ea390450ed5a617f08", 57875710), Common::PT_BRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Italian version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "9e7075f3fb0427ae8136b290538d07dd", 62185775), Common::IT_ITA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Spanish version (patched) { "grim", "", AD_ENTRY1s("VOX0001.LAB", "85d3e9504c481c5ccf2119ea6e0f4e2f", 53831340), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango German version { "grim", "", AD_ENTRY1s("VOX0001.LAB", "d304aa402098de5966816c0a11e45816", 66829347), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, /* { // Grim Fandango German version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "464138caf47e580cbb237dee10674b16", 398671), Common::DE_DEU, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Spanish version { "grim", "", AD_ENTRY1s("grim.tab", "b1460cd029f13718f7f62c2403e047ec", 372709), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Spanish version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "b1460cd029f13718f7f62c2403e047ec", 372020), Common::ES_ESP, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Italian version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "2d99c796b7a4e5c421cae49dc29dab6c", 369242), Common::IT_ITA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango French version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "3bd00ca87214862c012ac99e1758dd83", 386292), Common::FR_FRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Portuguese version (patched) { "grim", "", AD_ENTRY1s("grim.tab", "4dc16be476bb6036b423bc331ca8281a", 362994), Common::PT_BRA, Common::kPlatformWindows, ADGF_NO_FLAGS, GUI_OPTIONS_GRIME }, GType_GRIM }, */ { // Grim Fandango English demo version { "grim", "Demo", AD_ENTRY1s("gfdemo01.lab", "755cdac083f7f751bec7506402278f1a", 29489930), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango English demo version (with intro video) { "grim", "Demo", AD_ENTRY1s("gdemo001.lab", "c04c814093be829c4811a3a0aa80833d", 46615911), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango French demo version { "grim", "Demo", { {"gfdemo01.lab", 0, "7df813f3809f2c0234213cfa4f6da062", 29533695}, {"voice001.lab", 0, "7df474e03c23692ed02e4ce45f1a6b30", 13764168}, }, Common::FR_FRA, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango German demo version { "grim", "Demo", { {"gfdemo01.lab", 0, "7df813f3809f2c0234213cfa4f6da062", 29533695}, {"voice001.lab", 0, "2788dc7fd226787f3a68ac9c853d2580", 16561196}, }, Common::DE_DEU, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Italian demo version { "grim", "Demo", { {"gfdemo01.lab", 0, "7df813f3809f2c0234213cfa4f6da062", 29533695}, {"voice001.lab", 0, "3b8ace62584380c66b73981e014ea40e", 14907410}, }, Common::IT_ITA, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, { // Grim Fandango Spanish demo version { "grim", "Demo", { {"gfdemo01.lab", 0, "7df813f3809f2c0234213cfa4f6da062", 29533695}, {"voice001.lab", 0, "a810ec11acaf9d76cd04d2f68fcdc912", 13367206}, }, Common::ES_ESP, Common::kPlatformWindows, ADGF_DEMO, GUI_OPTIONS_GRIME }, GType_GRIM }, #ifdef ENABLE_MONKEY4 { // Escape from Monkey Island English { "monkey4", "", AD_ENTRY1s("artAll.m4b", "61959da91d864bf5f4588daa4a5a3019", 18515664), Common::EN_ANY, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island German { "monkey4", "", AD_ENTRY1s("artAll.m4b", "007a33881478be6b6e0228d8888536ae", 18512568), Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Italian { "monkey4", "", AD_ENTRY1s("artAll.m4b", "d2f010c1cd1fd002eea403282a6b9a1e", 18513451), Common::IT_ITA, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Spanish { "monkey4", "", AD_ENTRY1s("artAll.m4b", "0d459954031c086a0448d2eb3fa068a1", 18514404), Common::ES_ESP, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island French { "monkey4", "", AD_ENTRY1s("artAll.m4b", "151af0a694382af873f325fcea293bb1", 18514420), Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Portuguese { "monkey4", "", AD_ENTRY1s("artAll.m4b", "030e7637aee7886a3caad60cf102f797", 18515747), Common::PT_BRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Russian { "monkey4", "", AD_ENTRY1s("artAll.m4b", "779561a70a11dd5686974f122fc1516c", 18500052), Common::RU_RUS, Common::kPlatformWindows, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island German (Mac) { "monkey4", "", { {"artAll.m4b", 0, "007a33881478be6b6e0228d8888536ae", 18512568}, {"EFMI Installer", 0, "54298c7440dafedf33d2b27c7bb24052", 9241784}, AD_LISTEND }, Common::DE_DEU, Common::kPlatformMacintosh, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island English PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "0dc9a4df0d8553f277d8dc8e23b6249d", 34593974), Common::EN_ANY, Common::kPlatformPS2, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island German PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "5b5c7a3964c168eab44b82981db357d8", 34642186), Common::DE_DEU, Common::kPlatformPS2, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Italian PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "2de68c8fd955c1a3c50202b072bde0cb", 34642651), Common::IT_ITA, Common::kPlatformPS2, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island Spanish PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "ff6689dcca36c249ec834a3019aeb397", 34642656), Common::ES_ESP, Common::kPlatformPS2, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island French PS2 { "monkey4", "", AD_ENTRY1s("artAll.m4b", "5ce964a19a8672944b9b62170e45ce28", 34593681), Common::FR_FRA, Common::kPlatformPS2, ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island demo (English) { "monkey4", "Demo", { {"magdemo.lab", 0, "9e7eaa1b9317ff47d5deeda0b2c42ce3", 19826116}, {"i9n.lab", 0, "274f8579b01e0872fe6f1ba267266149", 26951}, AD_LISTEND }, Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island demo (French) { "monkey4", "Demo", { {"magdemo.lab", 0, "9e7eaa1b9317ff47d5deeda0b2c42ce3", 19826116}, {"i9n.lab", 0, "7f1744990472261bdcbc02036ba9f7ec", 1718385}, AD_LISTEND }, Common::FR_FRA, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island demo (German) { "monkey4", "Demo", { {"magdemo.lab", 0, "9e7eaa1b9317ff47d5deeda0b2c42ce3", 19826116}, {"i9n.lab", 0, "28f6bc270b5c31970cc110c7656ff598", 1749051}, AD_LISTEND }, Common::DE_DEU, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, { // Escape from Monkey Island demo (Spanish) { "monkey4", "Demo", { {"magdemo.lab", 0, "9e7eaa1b9317ff47d5deeda0b2c42ce3", 19826116}, {"i9n.lab", 0, "53b20d930f6e8c2e0880ed7e336eeebc", 1740761}, AD_LISTEND }, Common::ES_ESP, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUI_OPTIONS_GRIME }, GType_MONKEY4 }, #endif // ENABLE_MONKEY4 { AD_TABLE_END_MARKER, GType_GRIM } }; static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = { {"grimdemo", "grim", Common::kPlatformWindows}, {nullptr, nullptr, Common::kPlatformUnknown} }; class GrimMetaEngine : public AdvancedMetaEngine { public: GrimMetaEngine() : AdvancedMetaEngine(Grim::gameDescriptions, sizeof(Grim::GrimGameDescription), grimGames, gameGuiOptions) { _guiOptions = GUIO_NOMIDI; } virtual GameDescriptor findGame(const char *gameid) const override { return Engines::findGameID(gameid, _gameIds, obsoleteGameIDsTable); } virtual const char *getName() const override { return "Grim Engine"; } virtual const char *getOriginalCopyright() const override { return "LucasArts GrimE Games (C) LucasArts"; } virtual Common::Error createInstance(OSystem *syst, Engine **engine) const override { Engines::upgradeTargetIfNecessary(obsoleteGameIDsTable); return AdvancedMetaEngine::createInstance(syst, engine); } virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override; virtual bool hasFeature(MetaEngineFeature f) const override; virtual SaveStateList listSaves(const char *target) const override; }; bool GrimMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { const GrimGameDescription *gd = (const GrimGameDescription *)desc; if (gd) { if (gd->gameType == GType_MONKEY4) { *engine = new EMIEngine(syst, gd->desc.flags, gd->gameType, gd->desc.platform, gd->desc.language); } else { *engine = new GrimEngine(syst, gd->desc.flags, gd->gameType, gd->desc.platform, gd->desc.language); } } return gd != nullptr; } bool GrimMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup); } SaveStateList GrimMetaEngine::listSaves(const char *target) const { Common::String gameId = ConfMan.get("gameid", target); Common::Platform platform = Common::parsePlatform(ConfMan.get("platform", target)); Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray filenames; Common::String pattern = gameId == "monkey4" ? "efmi###.gsv" : "grim##.gsv"; if (platform == Common::kPlatformPS2) pattern = "efmi###.ps2"; filenames = saveFileMan->listSavefiles(pattern); SaveStateList saveList; char str[256]; int32 strSize; for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) { // Obtain the last digits of the filename, since they correspond to the save slot int slotNum = atoi(file->c_str() + 4); if (slotNum >= 0) { SaveGame *savedState = SaveGame::openForLoading(*file); if (savedState && savedState->isCompatible()) { if (platform == Common::kPlatformPS2) savedState->beginSection('PS2S'); else savedState->beginSection('SUBS'); strSize = savedState->readLESint32(); savedState->read(str, strSize); savedState->endSection(); saveList.push_back(SaveStateDescriptor(slotNum, str)); } delete savedState; } } Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator()); return saveList; } } // End of namespace Grim
namespace Neverhood { static const NeverhoodGameDescription gameDescriptions[] = { { // Neverhood English version { "neverhood", 0, AD_ENTRY1s("hd.blb", "22958d968458c9ff221aee38577bb2b2", 4279716), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood English demo version { "neverhood", "Demo", AD_ENTRY1s("nevdemo.blb", "05b735cfb1086892bec79b54dca5545b", 22564568), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood earlier English demo version { "neverhood", "Demo", AD_ENTRY1s("nevdemo.blb", "9cbc33bc8ebacacfc8071f3e26a9c85f", 22357020), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood Russian version. Dyadyushka Risech { "neverhood", "DR", AD_ENTRY1s("hd.blb", "787951bf094aad9962291e69a707bdde", 4248635), Common::RU_RUS, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, // FIXME: Disabled for now, as it has broken resources that corrupt the heap // (e.g. the menu header). #if 0 { // Neverhood Russian version. Fargus { "neverhood", "Fargus", AD_ENTRY1s("hd.blb", "c87c69db423f560d3708e9de78751a7f", 4425816), Common::RU_RUS, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, #endif { AD_TABLE_END_MARKER, 0, 0, 0, 0 } }; } // End of namespace Neverhood
namespace Neverhood { static const NeverhoodGameDescription gameDescriptions[] = { { // Neverhood English version { "neverhood", 0, AD_ENTRY1s("hd.blb", "22958d968458c9ff221aee38577bb2b2", 4279716), Common::EN_ANY, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood English demo version { "neverhood", "Demo", AD_ENTRY1s("nevdemo.blb", "05b735cfb1086892bec79b54dca5545b", 22564568), Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood Russian version. Dyadyushka Risech { "neverhood", "DR", AD_ENTRY1s("hd.blb", "787951bf094aad9962291e69a707bdde", 4248635), Common::RU_RUS, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { // Neverhood Russian version. Fargus { "neverhood", "Fargus", AD_ENTRY1s("hd.blb", "c87c69db423f560d3708e9de78751a7f", 4425816), Common::RU_RUS, Common::kPlatformWindows, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, 0, 0, 0, 0, }, { AD_TABLE_END_MARKER, 0, 0, 0, 0 } }; } // End of namespace Neverhood
namespace Drascula { static const DrasculaGameDescription gameDescriptions[] = { //// Packed versions ////////////////////////////////////////////////////// { // Drascula English version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, // HACK: List packet.001 twice to ensure this detector entry // is ranked just as high as the others (which each have two // detection files). {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {NULL, 0, NULL, 0} }, Common::EN_ANY, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula French version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.002", 1, "4401123400f22f212b89f15fb4b43013", 721122}, {NULL, 0, NULL, 0} }, Common::FR_FRA, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula French version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.002", 1, "7b83cedb9bb326ed5143e5c459508d43", 722383}, {NULL, 0, NULL, 0} }, Common::FR_FRA, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula German version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.003", 1, "e8f4dc6091037329bab4ddb1cba35807", 719728}, {NULL, 0, NULL, 0} }, Common::DE_DEU, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Italian version (original packed version) { "drascula", 0, AD_ENTRY1s("packet.001", "0253e924af223f5fe52537023385159b", 32564209), Common::IT_ITA, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Italian version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.005", 1, "58caac54b891f5d7f335e710e45e5d29", 16209623}, {NULL, 0, NULL, 0} }, Common::IT_ITA, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Spanish version (original packed version) { "drascula", 0, AD_ENTRY1s("packet.001", "3c971aba65a037d29d0b479cad6f5943", 31702652), Common::ES_ESP, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Spanish version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.004", 1, "a289d3cf80d50f25ec569b653248437e", 17205838}, {NULL, 0, NULL, 0} }, Common::ES_ESP, Common::kPlatformDOS, GF_PACKED, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, //// Unpacked versions //////////////////////////////////////////////////// { // Drascula English version { "drascula", 0, AD_ENTRY1s("14.ald", "09b2735953edcd43af115c65ae00b10e", 1595), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula French version { "drascula", 0, AD_ENTRY1s("14.ald", "eeeee96b82169003630e08992248296c", 608), Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula French version (updated - bug #3612236) { "drascula", 0, AD_ENTRY1s("14.ald", "1f9fbded768bee061cc22bc5bdeab540", 611), Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula German version { "drascula", 0, AD_ENTRY1s("14.ald", "72e46089033d56bad1c179ac36e2a9d2", 610), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Italian version { "drascula", 0, AD_ENTRY1s("14.ald", "02b49a18328d0bf2efe6ba658c9c7a1d", 2098), Common::IT_ITA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Italian version (updated - bug #3612236) { "drascula", 0, AD_ENTRY1s("14.ald", "ccaee939bb3b344c048f28f9205710d1", 2925), Common::IT_ITA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { // Drascula Spanish version { "drascula", 0, AD_ENTRY1s("14.ald", "0746ed1a5cc8d9728f790c29813f4b43", 23059), Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_LINKSPEECHTOSFX) }, }, { AD_TABLE_END_MARKER } }; static const ExtraGuiOption drasculaExtraGuiOption = { _s("Use original save/load screens"), _s("Use the original save/load screens instead of the ScummVM ones"), "originalsaveload", false }; SaveStateDescriptor loadMetaData(Common::ReadStream *s, int slot, bool setPlayTime); class DrasculaMetaEngine : public AdvancedMetaEngine { public: DrasculaMetaEngine() : AdvancedMetaEngine(Drascula::gameDescriptions, sizeof(Drascula::DrasculaGameDescription), drasculaGames) { _singleId = "drascula"; _guiOptions = GUIO1(GUIO_NOMIDI); } virtual const char *getName() const { return "Drascula"; } virtual const char *getOriginalCopyright() const { return "Drascula Engine (C) 2000 Alcachofa Soft, (C) 1996 Digital Dreams Multimedia, (C) 1994 Emilio de Paz"; } virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const; virtual bool hasFeature(MetaEngineFeature f) const; virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; virtual SaveStateList listSaves(const char *target) const; virtual int getMaximumSaveSlot() const; virtual void removeSaveState(const char *target, int slot) const; SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; }; bool DrasculaMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup) || (f == kSupportsDeleteSave) || (f == kSavesSupportMetaInfo) || (f == kSavesSupportThumbnail) || (f == kSavesSupportCreationDate) || (f == kSavesSupportPlayTime) || (f == kSimpleSavesNames); } const ExtraGuiOptions DrasculaMetaEngine::getExtraGuiOptions(const Common::String &target) const { ExtraGuiOptions options; options.push_back(drasculaExtraGuiOption); return options; } SaveStateList DrasculaMetaEngine::listSaves(const char *target) const { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); Common::StringArray filenames; Common::String pattern = target; pattern += ".###"; filenames = saveFileMan->listSavefiles(pattern); SaveStateList saveList; int slotNum = 0; for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) { // Obtain the last 3 digits of the filename, since they correspond to the save slot slotNum = atoi(file->c_str() + file->size() - 3); if (slotNum >= 0 && slotNum <= getMaximumSaveSlot()) { Common::InSaveFile *in = saveFileMan->openForLoading(*file); if (in) { SaveStateDescriptor desc = loadMetaData(in, slotNum, false); if (desc.getSaveSlot() != slotNum) { // invalid delete in; continue; } saveList.push_back(desc); delete in; } } } // Sort saves based on slot number. Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator()); return saveList; } SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.%03d", target, slot); Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName); SaveStateDescriptor desc; // Do not allow save slot 0 (used for auto-saving) to be deleted or // overwritten. desc.setDeletableFlag(slot != 0); desc.setWriteProtectedFlag(slot == 0); if (in) { desc = Drascula::loadMetaData(in, slot, false); if (desc.getSaveSlot() != slot) { delete in; return SaveStateDescriptor(); } Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*in); desc.setThumbnail(thumbnail); delete in; } return desc; } int DrasculaMetaEngine::getMaximumSaveSlot() const { return 999; } void DrasculaMetaEngine::removeSaveState(const char *target, int slot) const { Common::String fileName = Common::String::format("%s.%03d", target, slot); g_system->getSavefileManager()->removeSavefile(fileName); } bool DrasculaMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { const Drascula::DrasculaGameDescription *gd = (const Drascula::DrasculaGameDescription *)desc; if (gd) { *engine = new Drascula::DrasculaEngine(syst, gd); } return gd != 0; } } // End of namespace Drascula
namespace Drascula { static const DrasculaGameDescription gameDescriptions[] = { { // Drascula English version { "drascula", 0, AD_ENTRY1s("14.ald", "09b2735953edcd43af115c65ae00b10e", 1595), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0() }, }, { // Drascula English version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, // HACK: List packet.001 twice to ensure this detector entry // is ranked just as high as the others (which each have two // detection files). {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {NULL, 0, NULL, 0} }, Common::EN_ANY, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula German version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.003", 1, "e8f4dc6091037329bab4ddb1cba35807", 719728}, {NULL, 0, NULL, 0} }, Common::DE_DEU, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula French version (original packed files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.002", 1, "4401123400f22f212b89f15fb4b43013", 721122}, {NULL, 0, NULL, 0} }, Common::FR_FRA, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula Spanish version (original packed version) { "drascula", 0, AD_ENTRY1s("packet.001", "3c971aba65a037d29d0b479cad6f5943", 31702652), Common::ES_ESP, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula Spanish version { "drascula", 0, AD_ENTRY1s("14.ald", "0746ed1a5cc8d9728f790c29813f4b43", 23059), Common::ES_ESP, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0() }, }, { // Drascula German version { "drascula", 0, AD_ENTRY1s("14.ald", "72e46089033d56bad1c179ac36e2a9d2", 610), Common::DE_DEU, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0() }, }, { // Drascula French version { "drascula", 0, AD_ENTRY1s("14.ald", "eeeee96b82169003630e08992248296c", 608), Common::FR_FRA, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0() }, }, { // Drascula Italian version (original packed version) { "drascula", 0, AD_ENTRY1s("packet.001", "0253e924af223f5fe52537023385159b", 32564209), Common::IT_ITA, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula Italian version { "drascula", 0, AD_ENTRY1s("14.ald", "02b49a18328d0bf2efe6ba658c9c7a1d", 2098), Common::IT_ITA, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0() }, }, { // Drascula Spanish version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.004", 1, "a289d3cf80d50f25ec569b653248437e", 17205838}, {NULL, 0, NULL, 0} }, Common::ES_ESP, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula Italian version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.005", 1, "58caac54b891f5d7f335e710e45e5d29", 16209623}, {NULL, 0, NULL, 0} }, Common::IT_ITA, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { // Drascula French version (ScummVM repacked files) { "drascula", 0, { {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, {"packet.002", 1, "7b83cedb9bb326ed5143e5c459508d43", 722383}, {NULL, 0, NULL, 0} }, Common::FR_FRA, Common::kPlatformPC, GF_PACKED, GUIO0() }, }, { AD_TABLE_END_MARKER } }; } // End of namespace Drascula
namespace Touche { static const ADGameDescription gameDescriptions[] = { { // retail version "touche", "", AD_ENTRY1s("touche.dat", "2af0177f8887e3430f345e6b4d8b1414", 26350211), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // retail version - tracker item #1601818 "touche", "", AD_ENTRY1s("touche.dat", "95967f0b51d2e813e99ca00325098340", 26350190), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // retail version "touche", "", AD_ENTRY1s("touche.dat", "1caa20bb4d4fc2ce8eb867b6610082b3", 26558232), Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // retail version - tracker item #1598643 "touche", "", AD_ENTRY1s("touche.dat", "be2ae6454b3325e410946f2322547cd4", 26625537), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // retail version - tracker item #1681643 "touche", "", AD_ENTRY1s("touche.dat", "64e95ba1decf5a5a60f8fa1840f40c62", 26529523), Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // fan-made translation (http://www.iagtg.net/) - tracker item #1602360 "touche", "", AD_ENTRY1s("touche.dat", "1f442331d4b327c3488a9f6ffe9bdd25", 26367792), Common::IT_ITA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // retail version - tracker item #1800500 "touche", "", AD_ENTRY1s("touche.dat", "42d19a0bef65465109020440a9caa228", 26487370), Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0() }, { // demo version "touche", "Demo", AD_ENTRY1s("touche.dat", "ddaed436445b2e77294ed19e8ae4aa2c", 8720683), Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO0() }, AD_TABLE_END_MARKER }; static const ADFileBasedFallback fileBasedFallback[] = { { &gameDescriptions[0], { "touche.dat", 0 } }, // default to english version { 0, { 0 } } }; } // End of namespace Touche
namespace Toltecs { static const ToltecsGameDescription gameDescriptions[] = { { // 3 Skulls of the Toltecs English version { "toltecs", 0, AD_ENTRY1s("WESTERN", "05472037e9cfde146e953c434e74f0f4", 337643527), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs English version (alternate) // From bug #3614933 { "toltecs", 0, AD_ENTRY1s("WESTERN", "a9c9cfef9d05b8f7a5573b626fa4ea87", 337643527), Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs PIRATE CD-RIP version (no audio) // == DO NOT RE-ADD == { "toltecs", 0, AD_ENTRY1s("WESTERN", "56d0da91ec3db8ac869594357584e851", 104804435), Common::EN_ANY, Common::kPlatformDOS, ADGF_PIRATED, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs Russian version { "toltecs", 0, AD_ENTRY1s("WESTERN", "ba1742d3193b68ceb9434e2ab7a09a9b", 391462783), Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs German version { "toltecs", 0, AD_ENTRY1s("WESTERN", "1a3292bad8e0bb5701800c73531dd75e", 345176617), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs French version { "toltecs", 0, AD_ENTRY1s("WESTERN", "4fb845635cbdac732453fe23be350df9", 327269545), Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs Spanish version { "toltecs", 0, AD_ENTRY1s("WESTERN", "479f468beccc1b0ce5873ec523d1380e", 308391018), Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs Hungarian version // From bug #3440641 { "toltecs", 0, AD_ENTRY1s("WESTERN", "69a5572e75409d8c6230b787faa353af", 337647960), Common::HU_HUN, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs English Demo version { "toltecs", 0, AD_ENTRY1s("WESTERN", "53a0abd1c0bc5cad8ba18f0e56877705", 46241833), Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs German Demo version { "toltecs", 0, AD_ENTRY1s("WESTERN", "1c85e82712d24f1d5c1ea2a66ddd75c2", 47730038), Common::DE_DEU, Common::kPlatformDOS, ADGF_DEMO, GUIO1(GUIO_NONE) }, }, { AD_TABLE_END_MARKER } }; } // End of namespace Toltecs
namespace Picture { static const PictureGameDescription gameDescriptions[] = { { // 3 Skulls of the Toltecs English version { "toltecs", 0, AD_ENTRY1s("WESTERN", "05472037e9cfde146e953c434e74f0f4", 337643527), Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs Russian version { "toltecs", 0, AD_ENTRY1s("WESTERN", "ba1742d3193b68ceb9434e2ab7a09a9b", 391462783), Common::RU_RUS, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs German version { "toltecs", 0, AD_ENTRY1s("WESTERN", "1a3292bad8e0bb5701800c73531dd75e", 345176617), Common::DE_DEU, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs German Demo version { "toltecs", 0, AD_ENTRY1s("WESTERN", "1c85e82712d24f1d5c1ea2a66ddd75c2", 47730038), Common::DE_DEU, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs French version { "toltecs", 0, AD_ENTRY1s("WESTERN", "4fb845635cbdac732453fe23be350df9", 327269545), Common::FR_FRA, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { // 3 Skulls of the Toltecs Spanish version { "toltecs", 0, AD_ENTRY1s("WESTERN", "479f468beccc1b0ce5873ec523d1380e", 308391018), Common::ES_ESP, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO1(GUIO_NONE) }, }, { AD_TABLE_END_MARKER } }; } // End of namespace Picture