mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 14:50:17 +00:00
565 lines
11 KiB
C
565 lines
11 KiB
C
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef GOB_DETECTION_TABLES_FALLBACK_H
|
|
#define GOB_DETECTION_TABLES_FALLBACK_H
|
|
|
|
// -- Tables for the filename-based fallback --
|
|
|
|
static const GOBGameDescription fallbackDescs[] = {
|
|
{ //0
|
|
{
|
|
"gob1",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob1,
|
|
kFeaturesNone,
|
|
0, 0, 0
|
|
},
|
|
{ //1
|
|
{
|
|
"gob1cd",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob1,
|
|
kFeaturesCD,
|
|
0, 0, 0
|
|
},
|
|
{ //2
|
|
{
|
|
"gob2",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob2,
|
|
kFeaturesAdLib,
|
|
0, 0, 0
|
|
},
|
|
{ //3
|
|
{
|
|
"gob2mac",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformMacintosh,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob2,
|
|
kFeaturesAdLib,
|
|
0, 0, 0
|
|
},
|
|
{ //4
|
|
{
|
|
"gob2cd",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob2,
|
|
kFeaturesCD,
|
|
0, 0, 0
|
|
},
|
|
{ //5
|
|
{
|
|
"bargon",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeBargon,
|
|
kFeaturesNone,
|
|
0, 0, 0
|
|
},
|
|
{ //6
|
|
{
|
|
"gob3",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob3,
|
|
kFeaturesAdLib,
|
|
0, 0, 0
|
|
},
|
|
{ //7
|
|
{
|
|
"gob3cd",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGob3,
|
|
kFeaturesCD,
|
|
0, 0, 0
|
|
},
|
|
{ //8
|
|
{
|
|
"woodruff",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypeWoodruff,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //9
|
|
{
|
|
"lostintime",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeLostInTime,
|
|
kFeaturesAdLib,
|
|
0, 0, 0
|
|
},
|
|
{ //10
|
|
{
|
|
"lostintime",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformMacintosh,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeLostInTime,
|
|
kFeaturesAdLib,
|
|
0, 0, 0
|
|
},
|
|
{ //11
|
|
{
|
|
"lostintime",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeLostInTime,
|
|
kFeaturesCD,
|
|
0, 0, 0
|
|
},
|
|
{ //12
|
|
{
|
|
"urban",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypeUrban,
|
|
kFeatures640x480 | kFeaturesTrueColor,
|
|
0, 0, 0
|
|
},
|
|
{ //13
|
|
{
|
|
"playtoons1",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //14
|
|
{
|
|
"playtoons2",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //15
|
|
{
|
|
"playtoons3",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //16
|
|
{
|
|
"playtoons4",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //17
|
|
{
|
|
"playtoons5",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //18
|
|
{
|
|
"playtoons construction kit",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypePlaytoons,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //19
|
|
{
|
|
"bambou",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypeBambou,
|
|
kFeatures640x480,
|
|
0, 0, 0
|
|
},
|
|
{ //20
|
|
{
|
|
"fascination",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeFascination,
|
|
kFeaturesAdLib,
|
|
"disk0.stk", 0, 0
|
|
},
|
|
{ //21
|
|
{
|
|
"geisha",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeGeisha,
|
|
kFeaturesEGA | kFeaturesAdLib,
|
|
"disk1.stk", "intro.tot", 0
|
|
},
|
|
{ //22
|
|
{
|
|
"littlered",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeLittleRed,
|
|
kFeaturesAdLib | kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ //23
|
|
{
|
|
"littlered",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformAmiga,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeLittleRed,
|
|
kFeaturesNone,
|
|
0, 0, 0
|
|
},
|
|
{ //24
|
|
{
|
|
"onceupon",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformUnknown,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeOnceUponATime,
|
|
kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ //25
|
|
{
|
|
"adi2",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypeAdi2,
|
|
kFeatures640x480,
|
|
"adi2.stk", 0, 0
|
|
},
|
|
{ //26
|
|
{
|
|
"adi4",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
|
|
},
|
|
kGameTypeAdi4,
|
|
kFeatures640x480,
|
|
"adif41.stk", 0, 0
|
|
},
|
|
{ //27
|
|
{
|
|
"coktelplayer",
|
|
"unknown",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO1(GUIO_NOASPECT)
|
|
},
|
|
kGameTypeUrban,
|
|
kFeaturesAdLib | kFeatures640x480 | kFeaturesSCNDemo,
|
|
"", "", 8
|
|
}
|
|
};
|
|
|
|
static const ADFileBasedFallback fileBased[] = {
|
|
{ &fallbackDescs[ 0].desc, { "intro.stk", "disk1.stk", "disk2.stk", "disk3.stk", "disk4.stk", 0 } },
|
|
{ &fallbackDescs[ 1].desc, { "intro.stk", "gob.lic", 0 } },
|
|
{ &fallbackDescs[ 2].desc, { "intro.stk", 0 } },
|
|
{ &fallbackDescs[ 2].desc, { "intro.stk", "disk2.stk", "disk3.stk", 0 } },
|
|
{ &fallbackDescs[ 3].desc, { "intro.stk", "disk2.stk", "disk3.stk", "musmac1.mid", 0 } },
|
|
{ &fallbackDescs[ 4].desc, { "intro.stk", "gobnew.lic", 0 } },
|
|
{ &fallbackDescs[ 5].desc, { "intro.stk", "scaa.imd", "scba.imd", "scbf.imd", 0 } },
|
|
{ &fallbackDescs[ 6].desc, { "intro.stk", "imd.itk", 0 } },
|
|
{ &fallbackDescs[ 7].desc, { "intro.stk", "mus_gob3.lic", 0 } },
|
|
{ &fallbackDescs[ 8].desc, { "intro.stk", "woodruff.itk", 0 } },
|
|
{ &fallbackDescs[ 9].desc, { "intro.stk", "commun1.itk", 0 } },
|
|
{ &fallbackDescs[10].desc, { "intro.stk", "commun1.itk", "musmac1.mid", 0 } },
|
|
{ &fallbackDescs[11].desc, { "intro.stk", "commun1.itk", "lost.lic", 0 } },
|
|
{ &fallbackDescs[12].desc, { "intro.stk", "cd1.itk", "objet1.itk", 0 } },
|
|
{ &fallbackDescs[13].desc, { "playtoon.stk", "archi.stk", 0 } },
|
|
{ &fallbackDescs[14].desc, { "playtoon.stk", "spirou.stk", 0 } },
|
|
{ &fallbackDescs[15].desc, { "playtoon.stk", "chato.stk", 0 } },
|
|
{ &fallbackDescs[16].desc, { "playtoon.stk", "manda.stk", 0 } },
|
|
{ &fallbackDescs[17].desc, { "playtoon.stk", "wakan.stk", 0 } },
|
|
{ &fallbackDescs[18].desc, { "playtoon.stk", "dan.itk" } },
|
|
{ &fallbackDescs[19].desc, { "intro.stk", "bambou.itk", 0 } },
|
|
{ &fallbackDescs[20].desc, { "disk0.stk", "disk1.stk", "disk2.stk", "disk3.stk", 0 } },
|
|
{ &fallbackDescs[21].desc, { "disk1.stk", "disk2.stk", "disk3.stk", 0 } },
|
|
{ &fallbackDescs[22].desc, { "intro.stk", "stk2.stk", "stk3.stk", 0 } },
|
|
{ &fallbackDescs[23].desc, { "intro.stk", "stk2.stk", "stk3.stk", "mod.babayaga", 0 } },
|
|
{ &fallbackDescs[24].desc, { "stk1.stk", "stk2.stk", "stk3.stk", 0 } },
|
|
{ &fallbackDescs[25].desc, { "adi2.stk", 0 } },
|
|
{ &fallbackDescs[26].desc, { "adif41.stk", "adim41.stk", 0 } },
|
|
{ &fallbackDescs[27].desc, { "coktelplayer.scn", 0 } },
|
|
{ 0, { 0 } }
|
|
};
|
|
|
|
// -- Tables for detecting the specific Once Upon A Time game --
|
|
|
|
enum OnceUponATime {
|
|
kOnceUponATimeInvalid = -1,
|
|
kOnceUponATimeAbracadabra = 0,
|
|
kOnceUponATimeBabaYaga = 1,
|
|
kOnceUponATimeMAX
|
|
};
|
|
|
|
enum OnceUponATimePlatform {
|
|
kOnceUponATimePlatformInvalid = -1,
|
|
kOnceUponATimePlatformDOS = 0,
|
|
kOnceUponATimePlatformAmiga = 1,
|
|
kOnceUponATimePlatformAtariST = 2,
|
|
kOnceUponATimePlatformMAX
|
|
};
|
|
|
|
static const GOBGameDescription fallbackOnceUpon[kOnceUponATimeMAX][kOnceUponATimePlatformMAX] = {
|
|
{ // kOnceUponATimeAbracadabra
|
|
{ // kOnceUponATimePlatformDOS
|
|
{
|
|
"abracadabra",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeAbracadabra,
|
|
kFeaturesAdLib | kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ // kOnceUponATimePlatformAmiga
|
|
{
|
|
"abracadabra",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformAmiga,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeAbracadabra,
|
|
kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ // kOnceUponATimePlatformAtariST
|
|
{
|
|
"abracadabra",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformAtariST,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeAbracadabra,
|
|
kFeaturesEGA,
|
|
0, 0, 0
|
|
}
|
|
},
|
|
{ // kOnceUponATimeBabaYaga
|
|
{ // kOnceUponATimePlatformDOS
|
|
{
|
|
"babayaga",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformDOS,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeBabaYaga,
|
|
kFeaturesAdLib | kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ // kOnceUponATimePlatformAmiga
|
|
{
|
|
"babayaga",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformAmiga,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeBabaYaga,
|
|
kFeaturesEGA,
|
|
0, 0, 0
|
|
},
|
|
{ // kOnceUponATimePlatformAtariST
|
|
{
|
|
"babayaga",
|
|
"",
|
|
AD_ENTRY1(0, 0),
|
|
UNK_LANG,
|
|
kPlatformAtariST,
|
|
ADGF_NO_FLAGS,
|
|
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
|
|
},
|
|
kGameTypeBabaYaga,
|
|
kFeaturesEGA,
|
|
0, 0, 0
|
|
}
|
|
}
|
|
};
|
|
|
|
#endif // GOB_DETECTION_TABLES_FALLBACK_H
|