[Scummvm-git-logs] scummvm master -> c6c8cecb6dd3e81819a8efac4a2a1b68bbddc096
sluicebox
noreply at scummvm.org
Mon Sep 8 07:51:18 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
c6c8cecb6d SCI: Fix SLATER Macintosh kDoAudio and kDoSync
Commit: c6c8cecb6dd3e81819a8efac4a2a1b68bbddc096
https://github.com/scummvm/scummvm/commit/c6c8cecb6dd3e81819a8efac4a2a1b68bbddc096
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-09-08T00:48:44-07:00
Commit Message:
SCI: Fix SLATER Macintosh kDoAudio and kDoSync
- kDoAudio is an empty function
- kDoSync treats sync36 tuples as a sync id
Fixes audio and lip-sync on menu screens
Changed paths:
engines/sci/engine/kernel.cpp
engines/sci/engine/ksound.cpp
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 4915afce3d4..49dc9f4db3b 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -777,6 +777,10 @@ void Kernel::loadKernelNames(GameFeatures *features) {
_kernelNames[0x84] = "ShowMovie";
} else if (g_sci->getGameId() == GID_QFG4DEMO) {
_kernelNames[0x7b] = "RemapColors"; // QFG4 Demo has this SCI2 function instead of StrSplit
+ } else if (g_sci->getGameId() == GID_SLATER && g_sci->getPlatform() == Common::kPlatformMacintosh) {
+ // SLATER Macintosh has an empty kDoAudio. Scripts rely on this, as
+ // they contain calls to play non-existent audio from the PC version.
+ _kernelNames[0x75] = "Empty";
} else if (_resMan->testResource(ResourceId(kResourceTypeVocab, 184))) {
_kernelNames[0x7b] = "RemapColorsKawa";
_kernelNames[0x88] = "KawaDbugStr";
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index d219d0460b4..04cc6046aea 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -385,8 +385,15 @@ reg_t kDoSync(EngineState *s, int argc, reg_t *argv) {
if (argc == 3) {
id = ResourceId(kResourceTypeSync, argv[2].toUint16());
} else if (argc == 7) {
- id = ResourceId(kResourceTypeSync36, argv[2].toUint16(), argv[3].toUint16(), argv[4].toUint16(),
- argv[5].toUint16(), argv[6].toUint16());
+ if (g_sci->getGameId() == GID_SLATER && g_sci->getPlatform() == Common::kPlatformMacintosh) {
+ // SLATER Macintosh does not support sync36 tuples, but the scripts
+ // still pass 7 parameters because it was modified from the PC
+ // version. Ignore the extra parameters as the Mac interpreter does.
+ id = ResourceId(kResourceTypeSync, argv[2].toUint16());
+ } else {
+ id = ResourceId(kResourceTypeSync36, argv[2].toUint16(), argv[3].toUint16(), argv[4].toUint16(),
+ argv[5].toUint16(), argv[6].toUint16());
+ }
} else {
warning("kDoSync: Start called with an unknown number of parameters (%d)", argc);
return s->r_acc;
More information about the Scummvm-git-logs
mailing list