COMMON: Add Macromedia/Adobe Shockwave as platform

These can be big- or little-endian. The development platform can be
autodetected based on RIFX/XFIR in header.

These games ran in Shockwave Player either as a standalone app or as
web browser plugins on Windows and Mac.

Shockwave game added as D6 detection entry as an example.
This commit is contained in:
trembyle 2021-08-27 21:59:36 -04:00 committed by Eugene Sandulenko
parent 8cea642962
commit 05a27c3cfc
3 changed files with 12 additions and 1 deletions

View file

@ -61,7 +61,8 @@ const PlatformDescription g_platforms[] = {
{ "megadrive", "genesis", "md", "Mega Drive/Genesis", kPlatformMegaDrive }, { "megadrive", "genesis", "md", "Mega Drive/Genesis", kPlatformMegaDrive },
{ "saturn", "saturn", "saturn", "Sega Saturn", kPlatformSaturn }, { "saturn", "saturn", "saturn", "Sega Saturn", kPlatformSaturn },
{ "pippin", "pippin", "pippin", "Pippin", kPlatformPippin }, { "pippin", "pippin", "pippin", "Pippin", kPlatformPippin },
{ "macintosh2", "macintosh2", "macintosh2", "Macintosh II", kPlatformMacintoshII }, { "macintosh2", "macintosh2", "mac2", "Macintosh II", kPlatformMacintoshII },
{ "shockwave", "shockwave", "shock", "Shockwave", kPlatformShockwave },
{ nullptr, nullptr, nullptr, "Default", kPlatformUnknown } { nullptr, nullptr, nullptr, "Default", kPlatformUnknown }
}; };

View file

@ -75,6 +75,7 @@ enum Platform {
kPlatformSaturn, kPlatformSaturn,
kPlatformPippin, kPlatformPippin,
kPlatformMacintoshII, kPlatformMacintoshII,
kPlatformShockwave,
kPlatformUnknown = -1 kPlatformUnknown = -1
}; };

View file

@ -432,6 +432,7 @@ static const PlainGameDescriptor directorGames[] = {
{ "xfua", "The X-Files Unrestricted Access" }, { "xfua", "The X-Files Unrestricted Access" },
// Shareware and freeware // Shareware and freeware
{ "50ftchicken", "Attack of the 50-foot Chicken" },
{ "antsafire", "Ants Afire!" }, { "antsafire", "Ants Afire!" },
{ "arad", "Animaniacs River Adventure" }, { "arad", "Animaniacs River Adventure" },
{ "belcher", "The Belcher" }, { "belcher", "The Belcher" },
@ -983,12 +984,14 @@ namespace Director {
#define PIPGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,ADGF_MACRESFORK,v) #define PIPGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformPippin,ADGF_MACRESFORK,v)
#define WINGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v) #define WINGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define FMTGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v) #define FMTGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
#define SHKGAME1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformShockwave,ADGF_NO_FLAGS,v)
#define MACDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v) #define MACDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v) #define WINDEMO1(t,e,f,m,s,v) GENGAME1_(t,e,f,m,s,Common::EN_ANY,Common::kPlatformWindows,ADGF_DEMO,v)
#define MACGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,ADGF_MACRESFORK,v) #define MACGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,ADGF_MACRESFORK,v)
#define PIPGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,ADGF_MACRESFORK,v) #define PIPGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformPippin,ADGF_MACRESFORK,v)
#define WINGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v) #define WINGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_NO_FLAGS,v)
#define FMTGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v) #define FMTGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformFMTowns,ADGF_NO_FLAGS,v)
#define SHKGAME1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformShockwave,ADGF_NO_FLAGS,v)
#define MACDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v) #define MACDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformMacintosh,(ADGF_MACRESFORK|ADGF_DEMO),v)
#define WINDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_DEMO,v) #define WINDEMO1_l(t,e,f,m,s,l,v) GENGAME1_(t,e,f,m,s,l,Common::kPlatformWindows,ADGF_DEMO,v)
@ -3299,6 +3302,12 @@ static const DirectorGameDescription gameDescriptions[] = {
WINGAME1("1stcdtoddler", "", "_dkilbbt.exe", "d62438566e44826960fc16c5c23dbe43", 2012554, 650), WINGAME1("1stcdtoddler", "", "_dkilbbt.exe", "d62438566e44826960fc16c5c23dbe43", 2012554, 650),
// Created by NOVA Online for PBS / WGBH Boston
// Companion app for NOVA episode "Special Effects: Titanic and Beyond"
// Original PBS Airdate: November 3, 1998
// https://www.pbs.org/wgbh/nova/specialfx2/
SHKGAME1("50ftchicken", "", "chicken.dcr", "55fa0c9afa4ee4102b50258544fc28d4", 442575, 600),
// Mini-game from X-Fools can also be launched separately // Mini-game from X-Fools can also be launched separately
WINGAME1("abductthis", "", "ABDUCT32.EXE", "a593079aecf5bd938ce75264cac24b2d", 3644633, 600), WINGAME1("abductthis", "", "ABDUCT32.EXE", "a593079aecf5bd938ce75264cac24b2d", 3644633, 600),