[Scummvm-git-logs] scummvm master -> 32499a7c0bd8901530274832d35c5844af19c232
elasota
noreply at scummvm.org
Thu Dec 22 23:58:51 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
32499a7c0b MTROPOLIS: Add detection entries for the German versions of the "Uncle Albert" series
Commit: 32499a7c0bd8901530274832d35c5844af19c232
https://github.com/scummvm/scummvm/commit/32499a7c0bd8901530274832d35c5844af19c232
Author: Lothar Serra Mari (mail at serra.me)
Date: 2022-12-22T18:58:47-05:00
Commit Message:
MTROPOLIS: Add detection entries for the German versions of the "Uncle Albert" series
Changed paths:
engines/mtropolis/boot.cpp
engines/mtropolis/detection.cpp
engines/mtropolis/detection.h
engines/mtropolis/detection_tables.h
diff --git a/engines/mtropolis/boot.cpp b/engines/mtropolis/boot.cpp
index 49df74ed964..4fffb255801 100644
--- a/engines/mtropolis/boot.cpp
+++ b/engines/mtropolis/boot.cpp
@@ -398,6 +398,22 @@ void MTIGameDataHandler::addPlugIns(ProjectDescription &projectDesc, const Commo
projectDesc.addPlugIn(standardPlugIn);
}
+class AlbertGameDataHandler : public GameDataHandler {
+public:
+ AlbertGameDataHandler(const Game &game, const MTropolisGameDescription &gameDesc);
+
+ void addPlugIns(ProjectDescription &projectDesc, const Common::Array<FileIdentification> &files) override;
+};
+
+AlbertGameDataHandler::AlbertGameDataHandler(const Game &game, const MTropolisGameDescription &gameDesc) : GameDataHandler(game, gameDesc) {
+}
+
+void AlbertGameDataHandler::addPlugIns(ProjectDescription &projectDesc, const Common::Array<FileIdentification> &files) {
+ Common::SharedPtr<MTropolis::PlugIn> standardPlugIn = PlugIns::createStandard();
+ static_cast<Standard::StandardPlugIn *>(standardPlugIn.get())->getHacks().allowGarbledListModData = true;
+ projectDesc.addPlugIn(standardPlugIn);
+}
+
class SPQRGameDataHandler : public GameDataHandler {
public:
SPQRGameDataHandler(const Game &game, const MTropolisGameDescription &gameDesc);
@@ -611,7 +627,7 @@ static bool loadCursorsWin(FileIdentification &f, CursorGraphicCollection &curso
Common::SharedPtr<Common::WinResources> winRes(Common::WinResources::createFromEXE(stream.get()));
if (!winRes) {
- warning("Couldn't load resources from PE file");
+ warning("Couldn't load resources from PE file '%s'", f.fileName.c_str());
return false;
}
@@ -832,6 +848,63 @@ const char *mtiRetailWinDirectories[] = {
nullptr
};
+const ManifestFile albert1RetailWinDeFiles[] = {
+ {"Albert.exe", MTFT_PLAYER},
+ {"album411.MPL", MTFT_MAIN},
+ {"album412.MPX", MTFT_ADDITIONAL},
+ {"BASIC.X95", MTFT_SPECIAL},
+ {"BITMAP.R95", MTFT_SPECIAL},
+ {"EXTRAS.R95", MTFT_SPECIAL},
+ {"ROTATORK.R95", MTFT_SPECIAL},
+ {nullptr, MTFT_AUTO},
+};
+
+const char *albert1RetailWinDeDirectories[] = {
+ "ALBERT",
+ "ALBERT/DATA",
+ "ALBERT/DATA/RESOURCE",
+ "DATA",
+ "DATA/RESOURCE",
+ nullptr
+};
+
+const ManifestFile albert2RetailWinDeFiles[] = {
+ {"reise.exe", MTFT_PLAYER},
+ {"voyage1.mpl", MTFT_MAIN},
+ {"voyage2.mpx", MTFT_ADDITIONAL},
+ {"BASIC.X95", MTFT_SPECIAL},
+ {"BITMAP.R95", MTFT_SPECIAL},
+ {"EXTRAS.R95", MTFT_SPECIAL},
+ {"ROTATORK.R95", MTFT_SPECIAL},
+ {nullptr, MTFT_AUTO},
+};
+
+const char *albert2RetailWinDeDirectories[] = {
+ "REISE",
+ "REISE/DATA",
+ "REISE/DATA/RESOURCE",
+ "DATA",
+ "DATA/RESOURCE",
+ nullptr
+};
+
+const ManifestFile albert3RetailWinDeFiles[] = {
+ {"insel.exe", MTFT_PLAYER},
+ {"ile_myst1.mpl", MTFT_MAIN},
+ {"ILEMYST2.MPX", MTFT_ADDITIONAL},
+ {"BASIC.X95", MTFT_SPECIAL},
+ {"BITMAP.R95", MTFT_SPECIAL},
+ {"EXTRAS.R95", MTFT_SPECIAL},
+ {"ROTATORK.R95", MTFT_SPECIAL},
+ {nullptr, MTFT_AUTO},
+};
+
+const char *albert3RetailWinDeDirectories[] = {
+ "DATA",
+ "DATA/RESOURCE",
+ nullptr
+};
+
const ManifestFile spqrRetailWinEnFiles[] = {
{"SPQR32.EXE", MTFT_PLAYER},
{"MCURSORS.C95", MTFT_EXTENSION},
@@ -975,6 +1048,30 @@ const Game games[] = {
nullptr,
GameDataHandlerFactory<MTIGameDataHandler>::create
},
+ // Uncle Albert's Magical Album - German - Windows
+ {
+ MTBOOT_ALBERT1_WIN_DE,
+ albert1RetailWinDeFiles,
+ albert1RetailWinDeDirectories,
+ nullptr,
+ GameDataHandlerFactory<AlbertGameDataHandler>::create
+ },
+ // Uncle Albert's Fabulous Voyage - German - Windows
+ {
+ MTBOOT_ALBERT2_WIN_DE,
+ albert2RetailWinDeFiles,
+ albert2RetailWinDeDirectories,
+ nullptr,
+ GameDataHandlerFactory<AlbertGameDataHandler>::create
+ },
+ // Uncle Albert's Mysterious Island - German - Windows
+ {
+ MTBOOT_ALBERT3_WIN_DE,
+ albert3RetailWinDeFiles,
+ albert3RetailWinDeDirectories,
+ nullptr,
+ GameDataHandlerFactory<AlbertGameDataHandler>::create
+ },
// SPQR: The Empire's Darkest Hour - Retail - Windows - English
{
MTBOOT_SPQR_RETAIL_WIN,
diff --git a/engines/mtropolis/detection.cpp b/engines/mtropolis/detection.cpp
index 97ba2c228b7..c963ce5714d 100644
--- a/engines/mtropolis/detection.cpp
+++ b/engines/mtropolis/detection.cpp
@@ -29,6 +29,9 @@
static const PlainGameDescriptor mTropolisGames[] = {
{"obsidian", "Obsidian"},
{"mti", "Muppet Treasure Island"},
+ {"albert1", "Uncle Albert's Magical Album"},
+ {"albert2", "Uncle Albert's Fabulous Voyage"},
+ {"albert3", "Uncle Albert's Mysterious Island"},
{"spqr", "SPQR: The Empire's Darkest Hour"},
{"sttgs", "Star Trek: The Game Show"},
{nullptr, nullptr}
@@ -41,6 +44,8 @@ static const char *directoryGlobs[] = {
"RESOURCE",
"Saved Games",
"MTPLAY32",
+ "Albert",
+ "DATA",
"GAME",
nullptr
};
diff --git a/engines/mtropolis/detection.h b/engines/mtropolis/detection.h
index bd76e72d986..18df731a9b6 100644
--- a/engines/mtropolis/detection.h
+++ b/engines/mtropolis/detection.h
@@ -29,9 +29,12 @@ namespace MTropolis {
enum MTropolisGameID {
GID_OBSIDIAN = 0,
GID_LEARNING_MTROPOLIS = 1,
- GID_MTI = 2,
- GID_SPQR = 3,
- GID_STTGS = 4,
+ GID_MTI = 2,
+ GID_ALBERT1 = 3,
+ GID_ALBERT2 = 4,
+ GID_ALBERT3 = 5,
+ GID_SPQR = 6,
+ GID_STTGS = 7,
};
// Boot IDs - These can be shared across different variants if the file list and other properties are identical.
@@ -56,6 +59,9 @@ enum MTropolisGameBootID {
MTBOOT_MTI_RETAIL_WIN,
MTBOOT_MTI_DEMO_WIN,
+ MTBOOT_ALBERT1_WIN_DE,
+ MTBOOT_ALBERT2_WIN_DE,
+ MTBOOT_ALBERT3_WIN_DE,
MTBOOT_SPQR_RETAIL_WIN,
MTBOOT_SPQR_RETAIL_MAC,
diff --git a/engines/mtropolis/detection_tables.h b/engines/mtropolis/detection_tables.h
index 1278395ba53..b02be8254b9 100644
--- a/engines/mtropolis/detection_tables.h
+++ b/engines/mtropolis/detection_tables.h
@@ -441,6 +441,87 @@ static const MTropolisGameDescription gameDescriptions[] = {
0,
MTBOOT_MTI_DEMO_WIN,
},
+
+ { // Uncle Albert's Magical Album (German, Windows)
+ // Original title: Onkel Alberts geheimnisvolles Notizbuch
+ // Published by Tivola, 1998
+ {
+ "albert1",
+ "",
+ {
+ { "Albert.exe", 0, "0e513dac9d2a0d7cfcdc670cab2a9bda", 757760 },
+ { "album411.MPL", 0, "08a742f5087d25e8ee45c2fcd57ad9a6", 17979781 },
+ { "album412.MPX", 0, "79fabc94dafd0e0f3ab93c138c4c8c82", 298762355 },
+ // { "BASIC.X95", 0, "a1b474e90cc285bfdcfa87355f890b9e", 242688 },
+ // { "BITMAP.R95", 0, "2bf7305eca9df63dbc75f55093b84cc0", 81408 },
+ // { "CURSORS.C95", 0, "c1e2eebe7183b5ea33de7872a8ea4d2b", 87040 },
+ // { "EXTRAS.R95", 0, "c5830771609c774de9dbeaa5dff69b3e", 185344 },
+ // { "ROTATORK.R95", 0, "c271f786f028c0076635bea49a2be890", 66560 },
+ AD_LISTEND
+ },
+ Common::DE_DEU,
+ Common::kPlatformWindows,
+ ADGF_UNSTABLE,
+ GUIO0()
+ },
+ GID_ALBERT1,
+ 0,
+ MTBOOT_ALBERT1_WIN_DE,
+ },
+
+ { // Uncle Albert's Fabulous Voyage (German, Windows)
+ // Original title: Alberts abenteuerliche Reise
+ // Published by Tivola, 2000
+ {
+ "albert2",
+ "",
+ {
+ { "reise.exe", 0, "0e513dac9d2a0d7cfcdc670cab2a9bda", 757760 },
+ { "voyage1.MPL", 0, "fe202ad897cb6cf5303f2f046e8123d5", 26122297 },
+ { "voyage2.MPX", 0, "6554893511e08bf2e0d5770b7854589f", 261888657 },
+ // { "BASIC.X95", 0, "a1b474e90cc285bfdcfa87355f890b9e", 242688 },
+ // { "BITMAP.R95", 0, "2bf7305eca9df63dbc75f55093b84cc0", 81408 },
+ // { "CURSORS.C95", 0, "c1e2eebe7183b5ea33de7872a8ea4d2b", 87040 },
+ // { "EXTRAS.R95", 0, "c5830771609c774de9dbeaa5dff69b3e", 185344 },
+ // { "ROTATORK.R95", 0, "c271f786f028c0076635bea49a2be890", 66560 },
+ AD_LISTEND
+ },
+ Common::DE_DEU,
+ Common::kPlatformWindows,
+ ADGF_UNSTABLE,
+ GUIO0()
+ },
+ GID_ALBERT2,
+ 0,
+ MTBOOT_ALBERT2_WIN_DE,
+ },
+
+ { // Uncle Albert's Mysterious Island (German, Windows)
+ // Original title: Alberts mysteriöse Insel
+ // Published by Tivola, 2001
+ {
+ "albert3",
+ "",
+ {
+ { "insel.exe", 0, "0e513dac9d2a0d7cfcdc670cab2a9bda", 757760 },
+ { "ile_myst1.MPL", 0, "44ac2e944a61303f4028408165bafeb4", 24080377 },
+ { "ILEMYST2.MPX", 0, "ecb1d2c8b99eb5b2ac6be55893b97f50", 283748531 },
+ // { "BASIC.X95", 0, "a1b474e90cc285bfdcfa87355f890b9e", 242688 },
+ // { "BITMAP.R95", 0, "2bf7305eca9df63dbc75f55093b84cc0", 81408 },
+ // { "CURSORS.C95", 0, "c1e2eebe7183b5ea33de7872a8ea4d2b", 87040 },
+ // { "EXTRAS.R95", 0, "c5830771609c774de9dbeaa5dff69b3e", 185344 },
+ // { "ROTATORK.R95", 0, "c271f786f028c0076635bea49a2be890", 66560 },
+ AD_LISTEND
+ },
+ Common::DE_DEU,
+ Common::kPlatformWindows,
+ ADGF_UNSTABLE,
+ GUIO0()
+ },
+ GID_ALBERT3,
+ 0,
+ MTBOOT_ALBERT3_WIN_DE,
+ },
{ // SPQR: The Empire's Darkest Hour Windows CD-ROM
{
More information about the Scummvm-git-logs
mailing list