[Scummvm-git-logs] scummvm master -> ea2244dd84d5971bef3bb0496a65f2b45cabe9bf
sluicebox
noreply at scummvm.org
Sun Mar 26 22:22:11 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:
ea2244dd84 SCI: Add detection and workaround for SQ1 Demo variant
Commit: ea2244dd84d5971bef3bb0496a65f2b45cabe9bf
https://github.com/scummvm/scummvm/commit/ea2244dd84d5971bef3bb0496a65f2b45cabe9bf
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-03-26T15:21:30-07:00
Commit Message:
SCI: Add detection and workaround for SQ1 Demo variant
Thanks to @einstein95 for finding this
Changed paths:
engines/sci/detection_tables.h
engines/sci/engine/kernel_tables.h
engines/sci/engine/workarounds.cpp
engines/sci/engine/workarounds.h
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 9cf44c654ac..2aa53afb6c9 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -5323,6 +5323,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformMacintosh, 0, GUIO_STD16_MAC_HIRESFONTS },
+ // Space Quest 1 VGA Remake - English Non-Interactive Demo
+ // Earlier version of demo, doesn't include view patch files for musicians
+ // SCI interpreter version 1.000.181
+ {"sq1sci", "SCI/Demo", {
+ {"resource.map", 0, "3ff264347ca7b3335144bddc1f3a76ac", 642},
+ {"resource.001", 0, "fd99ea43f57576ded7c86036996346cf", 549177},
+ AD_LISTEND},
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO_STD16 },
+
// Space Quest 1 VGA Remake - English Non-Interactive Demo (from FRG)
// SCI interpreter version 1.000.181
{"sq1sci", "SCI/Demo", {
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index d1279af53cc..0119ea4a496 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -855,7 +855,7 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(UnLoad), SIG_EVERYWHERE, "i[ir!]", NULL, kUnLoad_workarounds },
// ^ We allow invalid references here (e.g. bug #6600), since they will be invalidated anyway by the call itself
{ MAP_CALL(ValidPath), SIG_EVERYWHERE, "r", NULL, NULL },
- { MAP_CALL(Wait), SIG_SCI16, SIGFOR_ALL, "i", NULL, NULL },
+ { MAP_CALL(Wait), SIG_SCI16, SIGFOR_ALL, "i", NULL, kWait_workarounds },
// Unimplemented SCI0-SCI1.1 unused functions, always mapped to kDummy
{ MAP_DUMMY(InspectObj), SIG_EVERYWHERE, "(.*)", NULL, NULL },
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 47c1087edf0..442fbaae9db 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -1138,6 +1138,12 @@ const SciWorkaroundEntry kUnLoad_workarounds[] = {
SCI_WORKAROUNDENTRY_TERMINATOR
};
+// gameID, room,script,lvl, object-name, method-name, local-call-signature, index-range, workaround
+const SciWorkaroundEntry kWait_workarounds[] = {
+ { GID_SQ1, 1, 1, 0, "demo1", "changeState", nullptr, 0, 0, { WORKAROUND_IGNORE, 0 } }, // DEMO: calls kWait with no parameters
+ SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
// gameID, room,script,lvl, object-name, method-name, local-call-signature, index-range, workaround
const SciWorkaroundEntry kScrollWindowAdd_workarounds[] = {
{ GID_PHANTASMAGORIA, 45, 64907, 0, "ScrollableWindow", "addString", nullptr, 0, 0, { WORKAROUND_STILLCALL, 0 } }, // ScrollWindow interface passes the last two parameters twice
diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h
index 8951d2c15a8..5821051a756 100644
--- a/engines/sci/engine/workarounds.h
+++ b/engines/sci/engine/workarounds.h
@@ -109,6 +109,7 @@ extern const SciWorkaroundEntry kStrAt_workarounds[];
extern const SciWorkaroundEntry kStrCpy_workarounds[];
extern const SciWorkaroundEntry kStrLen_workarounds[];
extern const SciWorkaroundEntry kUnLoad_workarounds[];
+extern const SciWorkaroundEntry kWait_workarounds[];
extern const SciWorkaroundEntry kStringNew_workarounds[];
extern const SciWorkaroundEntry kScrollWindowAdd_workarounds[];
More information about the Scummvm-git-logs
mailing list