[Scummvm-git-logs] scummvm master -> c6ca956f079e4cb7cb9a3a380aaac6348417e6b4
sev-
noreply at scummvm.org
Tue Sep 2 21:45:11 UTC 2025
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
4a7c81427f DIRECTOR: Do not attempt to parse non-present EXEs
5dcd8e6983 DIRECTOR: Do not attempt to load SerialPort Xlib in later Directors
1f8e24b1d8 DIRECTOR: Found requested movie bitdepth in WVCI chunk
dcadc3e85a DIRECTOR: Added missing break. Couresy of digitall
c6ca956f07 DIRECTOR: Improved debug output on loading
Commit: 4a7c81427f967c747050292c2654a4d4fc862031
https://github.com/scummvm/scummvm/commit/4a7c81427f967c747050292c2654a4d4fc862031
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-02T23:45:01+02:00
Commit Message:
DIRECTOR: Do not attempt to parse non-present EXEs
If we run not from a projector but from a DIR file or
command line, we were still trying to parse file with empty path.
That was generating irrelevant warning.
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 24f276be59a..8f4bdfa24ef 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -619,6 +619,11 @@ void Window::loadStartMovieXLibs() {
ProjectorArchive::ProjectorArchive(Common::Path path)
: _path(path), _files() {
+ if (path.empty()) {
+ _isLoaded = false;
+ return;
+ }
+
// Buffer 100K into memory
Common::SeekableReadStream *stream = createBufferedReadStream();
if (!stream) {
Commit: 5dcd8e69837a21ab7b17bd45592280baaad8af3a
https://github.com/scummvm/scummvm/commit/5dcd8e69837a21ab7b17bd45592280baaad8af3a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-02T23:45:02+02:00
Commit Message:
DIRECTOR: Do not attempt to load SerialPort Xlib in later Directors
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 8f4bdfa24ef..3f5240f0676 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -613,7 +613,12 @@ void Window::loadStartMovieXLibs() {
if (strcmp(g_director->getGameId(), "warlock") == 0 && g_director->getPlatform() != Common::kPlatformWindows) {
g_lingo->openXLib("FPlayXObj", kXObj, Common::Path());
}
- g_lingo->openXLib("SerialPort", kXObj, Common::Path());
+
+ // After D5 we always have list of Xlibs to load
+ if (g_director->getVersion() < 500 && g_director->getPlatform() == Common::kPlatformMacintosh) {
+ // SerialPort is Mac-only
+ g_lingo->openXLib("SerialPort", kXObj, Common::Path());
+ }
}
ProjectorArchive::ProjectorArchive(Common::Path path)
Commit: 1f8e24b1d86ae7e6497f9adeabc459ad53a19b4e
https://github.com/scummvm/scummvm/commit/1f8e24b1d86ae7e6497f9adeabc459ad53a19b4e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-02T23:45:02+02:00
Commit Message:
DIRECTOR: Found requested movie bitdepth in WVCI chunk
In order to make it work, we need to implement on-the-fly
bit depth switching in the engine.
Also, test what is happening if movie with different bitdepth
are loaded simultaneously.
Changed paths:
engines/director/cast.cpp
engines/director/cast.h
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 81e43ae97b6..d2a9970fa61 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -460,12 +460,12 @@ bool Cast::loadConfig() {
/* version = */ stream->readUint16(); // We've already read it, this is offset 36
- _field21 = stream->readSint16();
+ _movieDepth = stream->readSint16();
_field22 = stream->readSint32();
_field23 = stream->readSint32();
- debugC(1, kDebugLoading, "Cast::loadConfig(): field17: %d, field18: %d, field19: %d, field21: %d, field22: %d field23: %d",
- _field17, _field18, _field19, _field21, _field22, _field23);
+ debugC(1, kDebugLoading, "Cast::loadConfig(): field17: %d, field18: %d, field19: %d, movieDepth: %d, field22: %d field23: %d",
+ _field17, _field18, _field19, _movieDepth, _field22, _field23);
}
if (_version >= kFileVer400) {
@@ -560,6 +560,10 @@ bool Cast::loadConfig() {
_vm->setVersion(humanVer);
}
+ if (_movieDepth > 0) {
+ warning("STUB: loadConfig(): Movie bit depth is %d", _movieDepth);
+ }
+
delete stream;
return true;
}
@@ -604,7 +608,7 @@ void Cast::saveConfig(Common::SeekableWriteStream *writeStream, uint32 offset) {
writeStream->writeUint16BE(_version); // 36
- writeStream->writeUint16BE(_field21); // 38
+ writeStream->writeUint16BE(_movieDepth); // 38
writeStream->writeUint32BE(_field22); // 40
writeStream->writeUint32BE(_field23); // 44
@@ -1156,7 +1160,7 @@ uint32 Cast::computeChecksum() {
check *= _field18 + 18;
check += _field19 + 19;
check *= _version + 20;
- check += _field21 + 21;
+ check += _movieDepth + 21;
check += _field22 + 22;
check += _field23 + 23;
check += _field24 + 24;
diff --git a/engines/director/cast.h b/engines/director/cast.h
index 19153ec48e6..7a27cc1f558 100644
--- a/engines/director/cast.h
+++ b/engines/director/cast.h
@@ -218,7 +218,7 @@ public:
/* 31 */ uint8 _field18;
/* 32 */ int32 _field19;
/* 36 */ int16 _version;
- /* 38 */ int16 _field21;
+ /* 38 */ int16 _movieDepth;
/* 40 */ int32 _field22;
/* 44 */ int32 _field23;
/* 48 */ int32 _field24;
Commit: dcadc3e85a958abc79e5cbe387618de6643c9812
https://github.com/scummvm/scummvm/commit/dcadc3e85a958abc79e5cbe387618de6643c9812
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-02T23:45:02+02:00
Commit Message:
DIRECTOR: Added missing break. Couresy of digitall
Changed paths:
engines/director/frame.cpp
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 78cdd65aee0..3ea677d4679 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -1224,6 +1224,7 @@ void Frame::readMainChannelsD6(Common::MemoryReadStreamEndian &stream, uint16 of
break;
case 0+4:
_mainChannels.scriptSpriteListIdx = stream.readUint32();
+ break;
case 0+6:
_mainChannels.scriptSpriteListIdx = stream.readUint16();
break;
Commit: c6ca956f079e4cb7cb9a3a380aaac6348417e6b4
https://github.com/scummvm/scummvm/commit/c6ca956f079e4cb7cb9a3a380aaac6348417e6b4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-02T23:45:02+02:00
Commit Message:
DIRECTOR: Improved debug output on loading
Changed paths:
engines/director/cast.cpp
engines/director/castmember/castmember.cpp
engines/director/movie.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index d2a9970fa61..6c68539900f 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -1604,7 +1604,7 @@ void Cast::loadCastData(Common::SeekableReadStreamEndian &stream, uint16 id, Res
warning("BUILDBOT: Left over bytes: %d in dataStream for id: %d type: %s", leftOver, id, castType2str((CastType) castType));
if (target) { // Skip unhandled casts
- debugCN(3, kDebugLoading, "Children: ");
+ debugCN(3, kDebugLoading, " Children: ");
for (uint child = 0; child < res->children.size(); child++) {
debugCN(3, kDebugLoading, "%d ", res->children[child].index);
target->_children.push_back(res->children[child]);
diff --git a/engines/director/castmember/castmember.cpp b/engines/director/castmember/castmember.cpp
index f1c8b12907c..86ac31600c5 100644
--- a/engines/director/castmember/castmember.cpp
+++ b/engines/director/castmember/castmember.cpp
@@ -38,10 +38,7 @@ void EditInfo::read(Common::ReadStreamEndian *stream) {
rulerFlag = stream->readByte();
// We're ignoring 2 bytes here
valid = true;
- if (debugChannelSet(3, kDebugLoading)) {
- rect.debugPrint(0, "EditInfo: ");
- debug("selStart: %d selEnd: %d version: %d rulerFlag: %d", selStart, selEnd, version, rulerFlag);
- }
+ debugC(3, kDebugLoading, " EditInfo: rect: [%s], selStart: %d, selEnd: %d, version: %d, rulerFlag: %d", rect.toString().c_str(), selStart, selEnd, version, rulerFlag);
}
void EditInfo::write(Common::WriteStream *stream) {
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 11c940f2031..ce03e593849 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -323,7 +323,7 @@ InfoEntries Movie::loadInfoEntries(Common::SeekableReadStreamEndian &stream, uin
res.strings[i].data = (byte *)malloc(res.strings[i].len);
stream.read(res.strings[i].data, res.strings[i].len);
- debugC(6, kDebugLoading, "InfoEntry %d: %d bytes", i, res.strings[i].len);
+ debugC(6, kDebugLoading, " InfoEntry %d: %d bytes", i, res.strings[i].len);
}
free(entries);
More information about the Scummvm-git-logs
mailing list