GOB: Add detection for more demos

Ween demo has both interactive and non-interactive portions. The title
is Ween: The Prophecy, and so language code EN_GRB is used.
https://archive.org/details/TheProphecy_1020

Dynasty demo plays a single VMD from a small SCN file.
https://archive.org/details/dynasty_zip

Combined demo from CD-ROM Today # 11 (1995) plays the above Dynasty
demo followed by the already known Woodruff demo. In the spirit of the
combined demos in the SCUMM engine, we can create a new game ID.

All of the above play without issue in ScummVM.

Also added file sizes to some existing detection entries and added the
missing demo flags to the Inca2 and Woodruff demos.
This commit is contained in:
trembyle 2021-09-02 16:37:50 -04:00 committed by Eugene Sandulenko
parent 556984a9c1
commit 82ca7e7e32
9 changed files with 67 additions and 8 deletions

View File

@ -54,7 +54,8 @@ enum GameType {
kGameTypeLittleRed,
kGameTypeOnceUponATime, // Need more inspection to see if Baba Yaga or Abracadabra
kGameTypeAJWorld,
kGameTypeCrousti
kGameTypeCrousti,
kGameTypeDynastyWood
};
enum Features {

View File

@ -50,6 +50,7 @@ static const PlainGameDescriptor gobGames[] = {
{"inca2", "Inca II: Wiracocha"},
{"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"},
{"dynasty", "The Last Dynasty"},
{"dynastywood", "Woodruff and The Last Dynasty"},
{"urban", "Urban Runner"},
{"playtoons1", "Playtoons 1 - Uncle Archibald"},
{"playtoons2", "Playtoons 2 - The Case of the Counterfeit Collaborator"},

View File

@ -142,5 +142,36 @@
kFeatures640x480,
"lda1.stk", 0, 0
},
{
{
"dynasty",
"Demo",
AD_ENTRY2s("demo.scn", "a0d801c43a560b7471114744858b129c", 89,
"demo5.vmd", "2abb7b6a26406c984f389f0b24b5e28e", 13290970),
EN_ANY,
kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
kGameTypeDynasty,
kFeatures640x480 | kFeaturesSCNDemo,
"demo.scn", 0, 1
},
// Combined demo for Woodruff and The Last Dynasty
{
{
"dynastywood",
"Non-Interactive Demos",
AD_ENTRY2s("demo.scn", "040a00b7276aa86fe7a51f5f362f63c7", 124,
"demo5.vmd", "2abb7b6a26406c984f389f0b24b5e28e", 13290970),
EN_ANY,
kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
kGameTypeDynastyWood,
kFeatures640x480 | kFeaturesSCNDemo,
"demo.scn", 0, 1
},
#endif // GOB_DETECTION_TABLES_DYNASTY_H

View File

@ -508,7 +508,7 @@
{
"gob3",
"Non-interactive Demo",
AD_ENTRY1("intro.stk", "b9b898fccebe02b69c086052d5024a55"),
AD_ENTRY1s("intro.stk", "b9b898fccebe02b69c086052d5024a55", 600143),
UNK_LANG,
kPlatformDOS,
ADGF_DEMO,
@ -522,7 +522,7 @@
{
"gob3",
"Interactive Demo",
AD_ENTRY1("intro.stk", "7aebd94e49c2c5c518c9e7b74f25de9d"),
AD_ENTRY1s("intro.stk", "7aebd94e49c2c5c518c9e7b74f25de9d", 270737),
FR_FRA,
kPlatformDOS,
ADGF_DEMO,
@ -536,7 +536,7 @@
{
"gob3",
"Interactive Demo 2",
AD_ENTRY1("intro.stk", "e5dcbc9f6658ebb1e8fe26bc4da0806d"),
AD_ENTRY1s("intro.stk", "e5dcbc9f6658ebb1e8fe26bc4da0806d", 590631),
FR_FRA,
kPlatformDOS,
ADGF_DEMO,

View File

@ -252,7 +252,7 @@
},
EN_ANY,
kPlatformDOS,
ADGF_NO_FLAGS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
kGameTypeInca2,

View File

@ -441,7 +441,7 @@
{
"lit",
"Non-interactive Demo",
AD_ENTRY1("demo.stk", "2eba8abd9e3878c57307576012dd2fec"),
AD_ENTRY1s("demo.stk", "2eba8abd9e3878c57307576012dd2fec", 3031494),
UNK_LANG,
kPlatformDOS,
ADGF_DEMO,

View File

@ -268,7 +268,7 @@
{
"ween",
"Demo",
AD_ENTRY1("intro.stk", "15fb91a1b9b09684b28ac75edf66e504"),
AD_ENTRY1s("intro.stk", "15fb91a1b9b09684b28ac75edf66e504", 2340230),
EN_USA,
kPlatformDOS,
ADGF_DEMO,
@ -306,5 +306,19 @@
kFeaturesAdLib,
0, 0, 0
},
{
{
"ween",
"v1.2 Demo",
AD_ENTRY1s("intro.stk", "dcff8f3a7dd1f4c33fd94aa7659b7578", 2425477),
EN_GRB,
kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
kGameTypeWeen,
kFeaturesAdLib,
0, 0, 0
},
#endif // GOB_DETECTION_TABLES_WEEN_H

View File

@ -374,7 +374,7 @@
"wooddem3.vmd", "a1700596172c2d4e264760030c3a3d47", 8994250),
EN_ANY,
kPlatformDOS,
ADGF_NO_FLAGS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
kGameTypeWoodruff,

View File

@ -584,6 +584,18 @@ Common::Error GobEngine::initGameParts() {
_saveLoad = new SaveLoad(this);
break;
case kGameTypeDynastyWood:
_init = new Init_v3(this);
_video = new Video_v2(this);
_inter = new Inter_v5(this);
_mult = new Mult_v2(this);
_draw = new Draw_v2(this);
_map = new Map_v2(this);
_goblin = new Goblin_v4(this);
_scenery = new Scenery_v2(this);
_saveLoad = new SaveLoad(this);
break;
case kGameTypeUrban:
_init = new Init_v6(this);
_video = new Video_v6(this);