[Scummvm-git-logs] scummvm master -> 6444d279fe72f649050e92aaf6fafc423a413b83

sluicebox 22204938+sluicebox at users.noreply.github.com
Thu Oct 31 12:33:57 CET 2019


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
6c367c5415 SCI32: Add Mac KQ7, HOYLE5, MOTHERGOOSE256 detection
cdf9954eb5 SCI32: Add HOYLE5 kFileIOReadString workaround
6444d279fe SCI32: Fix LSL6 Hires Mac restore from launcher


Commit: 6c367c54151bfd4e32a8407fc1e0c36d95755036
    https://github.com/scummvm/scummvm/commit/6c367c54151bfd4e32a8407fc1e0c36d95755036
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-10-31T04:10:41-07:00

Commit Message:
SCI32: Add Mac KQ7, HOYLE5, MOTHERGOOSE256 detection

Changed paths:
    engines/sci/detection_tables.h


diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 1023bd8..ed04d63 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -1258,6 +1258,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO_HOYLE5 },
 
+	// Hoyle 5 (Hoyle Classic Games) - Macintosh CD
+	// VERSION file reports "1.000.000"
+	{"hoyle5", "", {
+		{"Data1", 0, "b280fbcdb1e0fa9d708e1f8d6050ef2d", 553372},
+		{"Data2", 0, "a1b4d73bc7672e4db2665657911fc5f2", 14429682},
+		{"Data3", 0, "65f9b79f2f8904a6277c8e6ee4fd7ac0", 75704},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK | ADGF_UNSTABLE, GUIO_HOYLE5_SAVELOAD },
+
 #undef GUIO_HOYLE5
 #undef GUIO_HOYLE5_SAVELOAD
 
@@ -2032,6 +2041,27 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO, GUIO_KQ7_DEMO },
 
+	// King's Quest 7 - English Macintosh
+	{"kq7", "", {
+		{"Data1", 0, "e0d120473fee7a548b1418b18bffbd7d", 4964646},
+		{"Data2", 0, "a260b97fb2396a9cd6ac3df6a56a2499", 14645782},
+		{"Data3", 0, "a5a660a469c9ba7b179ba9757181d2af", 6664388},
+		{"Data4", 0, "556721a5e3f158c0a7a39e428402dd1f", 6438951},
+		{"Data5", 0, "c38c2f51c9c2bafd5fefdffca83bd372", 6661526},
+		{"Data6", 0, "2054e1ec891cad31b5c647b57eccff9c", 4489712},
+		{"Data7", 0, "c6e634ea56f6f82954baeab9c468c47b", 7552537},
+		{"Data8", 0, "5b4d7cc7b1b7fdd262c1f65bb9c8af5f", 7478357},
+		{"Data9", 0, "7aba74ca9a52fba1199ab06f602bd268", 7304634},
+		{"Data10", 0, "2ee17c2a1037067ecc218a7b65582062", 7066946},
+		{"Data11", 0, "5df02ec2b6289bd84cd97a9bc677773e", 7555953},
+		{"Data12", 0, "4a8cebdff7f8d431dbcd36d39c5af29e", 6925934},
+		{"Data13", 0, "3dd2903e170518011d3bc0eadada399a", 7071386},
+		//{"Data14", 0, "60d8435ae44c7e0e1d553269bf8a58e0", 7872208},
+		//{"Data15", 0, "4c4c33e93a2352473c1adf9e3981e6ca", 6924278},
+		//{"Data16", 0, "753d9bddf035bbb5391119e8dc0f464a", 3971083},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK | ADGF_UNSTABLE, GUIO_KQ7 },
+
 #undef GUIO_KQ7_DEMO
 #undef GUIO_KQ7
 
@@ -3122,6 +3152,16 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformWindows, ADGF_DROPPLATFORM, GUIO_MOTHERGOOSEHIRES },
 
+	// Mixed-Up Mother Goose Deluxe - English Macintosh CD
+	{ "mothergoosehires", "",{
+		{"Data1", 0, "8a7ef3307d80adcd393c012f78a4e1d7", 609389},
+		{"Data2", 0, "94e72a735be859cac3cdf084497a03c7", 5550743},
+		{"Data3", 0, "4819cca5624615fcdd8838605661cd77", 5362685},
+		{"Data4", 0, "ea260cdb42405649136b08bdac45c708", 6368421},
+		{"Data5", 0, "eb5d6c76c69acafbbafa9e75b65f1da8", 3522384},
+		AD_LISTEND},
+		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK | ADGF_UNSTABLE, GUIO_MOTHERGOOSEHIRES },
+
 #undef GUIO_MOTHERGOOSEHIRES
 
 #endif // ENABLE_SCI32


Commit: cdf9954eb569060184c937a48217f7cd2a6f03f9
    https://github.com/scummvm/scummvm/commit/cdf9954eb569060184c937a48217f7cd2a6f03f9
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-10-31T04:30:09-07:00

Commit Message:
SCI32: Add HOYLE5 kFileIOReadString workaround

Changed paths:
    engines/sci/engine/kernel_tables.h
    engines/sci/engine/workarounds.cpp
    engines/sci/engine/workarounds.h


diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 0149f0e..49a5168 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -315,7 +315,7 @@ static const SciKernelMapSubEntry kFileIO_subops[] = {
 	{ SIG_SCIALL,          2, MAP_CALL(FileIOReadRaw),             "iri",                  NULL },
 	{ SIG_SCIALL,          3, MAP_CALL(FileIOWriteRaw),            "iri",                  NULL },
 	{ SIG_SCIALL,          4, MAP_CALL(FileIOUnlink),              "r",                    NULL },
-	{ SIG_SCIALL,          5, MAP_CALL(FileIOReadString),          "rii",                  NULL },
+	{ SIG_SCIALL,          5, MAP_CALL(FileIOReadString),          "rii",                  kFileIOReadString_workarounds },
 	{ SIG_SCIALL,          6, MAP_CALL(FileIOWriteString),         "ir",                   NULL },
 	{ SIG_SCIALL,          7, MAP_CALL(FileIOSeek),                "iii",                  NULL },
 	{ SIG_SCIALL,          8, MAP_CALL(FileIOFindFirst),           "rri",                  NULL },
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index c071383..ddd6faf 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -778,6 +778,12 @@ const SciWorkaroundEntry kFileIOCheckFreeSpace_workarounds[] = {
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
+//    gameID,           room,script,lvl,          object-name, method-name,              local-call-signature, index-range,   workaround
+const SciWorkaroundEntry kFileIOReadString_workarounds[] = {
+	{ GID_HOYLE5,         -1, 64993,  0,           "version", "readString",                 NULL,     0,     0, { WORKAROUND_IGNORE, 0 } }, // Zero passed as string when game initializes and VERSION file is present, which only Mac includes. Result is unused
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
 //    gameID,           room,script,lvl,          object-name, method-name, local-call-signature, index-range,   workaround
 const SciWorkaroundEntry kFindKey_workarounds[] = {
 	{ GID_ECOQUEST2,     100,   999,  0,            "myList", "contains",                   NULL,     0,     0, { WORKAROUND_FAKE, 0 } }, // When Noah Greene gives Adam the Ecorder, and just before the game gives a demonstration, a null reference to a list is passed - bug #4987
diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h
index 528fa93..3e626e6 100644
--- a/engines/sci/engine/workarounds.h
+++ b/engines/sci/engine/workarounds.h
@@ -75,6 +75,7 @@ extern const SciWorkaroundEntry kDoSoundPlay_workarounds[];
 extern const SciWorkaroundEntry kDoSoundFade_workarounds[];
 extern const SciWorkaroundEntry kFileIOOpen_workarounds[];
 extern const SciWorkaroundEntry kFileIOCheckFreeSpace_workarounds[];
+extern const SciWorkaroundEntry kFileIOReadString_workarounds[];
 extern const SciWorkaroundEntry kFindKey_workarounds[];
 extern const SciWorkaroundEntry kFrameOut_workarounds[];
 extern const SciWorkaroundEntry kDeleteKey_workarounds[];


Commit: 6444d279fe72f649050e92aaf6fafc423a413b83
    https://github.com/scummvm/scummvm/commit/6444d279fe72f649050e92aaf6fafc423a413b83
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-10-31T04:31:06-07:00

Commit Message:
SCI32: Fix LSL6 Hires Mac restore from launcher

Changed paths:
    engines/sci/engine/guest_additions.cpp


diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp
index cf70608..5ed3776 100644
--- a/engines/sci/engine/guest_additions.cpp
+++ b/engines/sci/engine/guest_additions.cpp
@@ -756,6 +756,14 @@ bool GuestAdditions::restoreFromLauncher() const {
 			return false;
 		}
 
+		// Delayed restore should not happen in LSL6 hires until the room number is set.
+		//  LSL6:restore tests room numbers to determine if restoring is allowed, but the
+		//  Mac version adds a call to kGetEvent in LSL6:init before the initial call to
+		//  LSL6:newRoom. If the room number isn't set yet then restoring isn't allowed.
+		if (g_sci->getGameId() == GID_LSL6HIRES && _state->variables[VAR_GLOBAL][kGlobalVarCurrentRoomNo] == NULL_REG) {
+			return false;
+		}
+
 		_restoring = true;
 
 		// Any events queued up before the game restore can cause accidental





More information about the Scummvm-git-logs mailing list