[Scummvm-git-logs] scummvm master -> 348e0d7aa2267e6b294062a5669abdb9a5fbf8ba
elasota
noreply at scummvm.org
Thu Feb 2 02:57:56 UTC 2023
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:
348e0d7aa2 MTROPOLIS: Add boot+detection for Obsidian Macintosh Japanese version
Commit: 348e0d7aa2267e6b294062a5669abdb9a5fbf8ba
https://github.com/scummvm/scummvm/commit/348e0d7aa2267e6b294062a5669abdb9a5fbf8ba
Author: elasota (ejlasota at gmail.com)
Date: 2023-02-01T21:57:38-05:00
Commit Message:
MTROPOLIS: Add boot+detection for Obsidian Macintosh Japanese version
Changed paths:
engines/mtropolis/boot.cpp
engines/mtropolis/detection.h
engines/mtropolis/detection_tables.h
diff --git a/engines/mtropolis/boot.cpp b/engines/mtropolis/boot.cpp
index 4fffb255801..77720334233 100644
--- a/engines/mtropolis/boot.cpp
+++ b/engines/mtropolis/boot.cpp
@@ -180,6 +180,7 @@ private:
bool _isMac;
bool _isRetail;
bool _isEnglish;
+ bool _isJapanese;
void unpackMacRetailInstaller(Common::Array<Common::SharedPtr<ProjectPersistentResource> > &persistentResources, Common::Array<FileIdentification> &files);
Common::SharedPtr<Obsidian::WordGameData> loadWinWordGameData();
@@ -191,6 +192,7 @@ private:
ObsidianGameDataHandler::ObsidianGameDataHandler(const Game &game, const MTropolisGameDescription &gameDesc) : GameDataHandler(game, gameDesc) {
_isMac = (gameDesc.desc.platform == Common::kPlatformMacintosh);
_isEnglish = (gameDesc.desc.language == Common::EN_ANY);
+ _isJapanese = (gameDesc.desc.language == Common::JA_JPN);
_isRetail = ((gameDesc.desc.flags & ADGF_DEMO) == 0);
}
@@ -221,7 +223,15 @@ void ObsidianGameDataHandler::unpackMacRetailInstaller(Common::Array<Common::Sha
{"RSGKit.rPP", MKTAG('M', 'F', 'c', 'o'), MKTAG('M', 'f', 'M', 'f')},
};
- Common::SeekableReadStream *installerDataForkStream = Common::MacResManager::openFileOrDataFork("Obsidian Installer");
+ const char *installerFileName = nullptr;
+ if (_isEnglish)
+ installerFileName = "Obsidian Installer";
+ else if (_isJapanese)
+ installerFileName = "xn--u9j9ecg0a2fsa1io6k6jkdc2k";
+ else
+ error("Couldn't figure out what file name to use as installer to unpack");
+
+ Common::SeekableReadStream *installerDataForkStream = Common::MacResManager::openFileOrDataFork(installerFileName);
if (!installerDataForkStream)
error("Obsidian Installer has no data fork");
@@ -671,6 +681,16 @@ const ManifestFile obsidianRetailMacEnFiles[] = {
{nullptr, MTFT_AUTO}
};
+const ManifestFile obsidianRetailMacJpFiles[] = {
+ {"xn--u9j9ecg0a2fsa1io6k6jkdc2k", MTFT_SPECIAL},
+ {"Obsidian Data 2", MTFT_ADDITIONAL},
+ {"Obsidian Data 3", MTFT_ADDITIONAL},
+ {"Obsidian Data 4", MTFT_ADDITIONAL},
+ {"Obsidian Data 5", MTFT_ADDITIONAL},
+ {"Obsidian Data 6", MTFT_ADDITIONAL},
+ {nullptr, MTFT_AUTO}
+};
+
const ManifestFile obsidianDemoMacEnFiles[] = {
{"Obsidian Demo", MTFT_PLAYER},
{"Basic.rPP", MTFT_EXTENSION},
@@ -944,6 +964,14 @@ const Game games[] = {
&obsidianRetailEnSubtitlesDef,
GameDataHandlerFactory<ObsidianGameDataHandler>::create
},
+ // Obsidian - Retail - Macintosh - Japanese
+ {
+ MTBOOT_OBSIDIAN_RETAIL_MAC_JP,
+ obsidianRetailMacJpFiles,
+ nullptr,
+ nullptr,
+ GameDataHandlerFactory<ObsidianGameDataHandler>::create
+ },
// Obsidian - Retail - Windows - English
{
MTBOOT_OBSIDIAN_RETAIL_WIN_EN,
diff --git a/engines/mtropolis/detection.h b/engines/mtropolis/detection.h
index 18df731a9b6..c2080e41b81 100644
--- a/engines/mtropolis/detection.h
+++ b/engines/mtropolis/detection.h
@@ -43,6 +43,7 @@ enum MTropolisGameBootID {
MTBOOT_INVALID = 0,
MTBOOT_OBSIDIAN_RETAIL_MAC_EN,
+ MTBOOT_OBSIDIAN_RETAIL_MAC_JP,
MTBOOT_OBSIDIAN_RETAIL_WIN_EN,
MTBOOT_OBSIDIAN_RETAIL_WIN_DE,
MTBOOT_OBSIDIAN_RETAIL_WIN_IT,
diff --git a/engines/mtropolis/detection_tables.h b/engines/mtropolis/detection_tables.h
index b02be8254b9..775b5afb0ec 100644
--- a/engines/mtropolis/detection_tables.h
+++ b/engines/mtropolis/detection_tables.h
@@ -74,6 +74,28 @@ static const MTropolisGameDescription gameDescriptions[] = {
0,
MTBOOT_OBSIDIAN_RETAIL_MAC_EN,
},
+ { // Obsidian Japanese Macintosh, dumped
+ {
+ "obsidian",
+ "V1.0, 1/13/97, CD",
+ {
+ {"Obsidian Data 2", 0, "d3b4746dd05adba87e15f83a1599c6fe", 570855424},
+ //{"Obsidian Data 3", 0, "96bb5f6ab893aca9e8e3ce19d19974fc", 616954880},
+ //{"Obsidian Data 4", 0, "54cf1745ea19e0cc33d76905d0b9fc41", 593788928},
+ //{"Obsidian Data 5", 0, "adc938b08ba2d2f0a08c934e6105b0f9", 583581824},
+ //{"Obsidian Data 6", 0, "09de40ab9001eda30291421d2736fa76", 551191680},
+ //{"xn--u9j9ecg0a2fsa1io6k6jkdc2k", 0, "af62516a9a9bd16bc5c01e755a9f7329", 9186432},
+ AD_LISTEND
+ },
+ Common::JA_JPN,
+ Common::kPlatformMacintosh,
+ ADGF_TESTING,
+ GUIO3(GAMEOPTION_WIDESCREEN_MOD, GAMEOPTION_AUTO_SAVE_AT_CHECKPOINTS, GAMEOPTION_SOUND_EFFECT_SUBTITLES)
+ },
+ GID_OBSIDIAN,
+ 0,
+ MTBOOT_OBSIDIAN_RETAIL_MAC_JP,
+ },
{ // Obsidian Windows, installed
{
More information about the Scummvm-git-logs
mailing list