[Scummvm-git-logs] scummvm master -> 62535672bb5588db5b8ca8a4168aaaee3d4ce7f2

sev- noreply at scummvm.org
Thu May 21 23:29:07 UTC 2026


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:
62535672bb DIRECTOR: Config loading for D1/D2


Commit: 62535672bb5588db5b8ca8a4168aaaee3d4ce7f2
    https://github.com/scummvm/scummvm/commit/62535672bb5588db5b8ca8a4168aaaee3d4ce7f2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-05-22T01:28:38+02:00

Commit Message:
DIRECTOR: Config loading for D1/D2

Changed paths:
    engines/director/cast.cpp
    engines/director/detection.cpp
    engines/director/types.h
    engines/director/util.cpp


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 27bba9a6f27..010210e1bd2 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -321,7 +321,9 @@ void Cast::loadArchive() {
 void configLenSanityCheck(uint16 len, uint16 fileVersion) {
 	int tlen = -1;
 
-	if (fileVersion < kFileVer300) {
+	if (fileVersion < kFileVer200) {
+		tlen = 28;							// D1
+	} else if (fileVersion < kFileVer300) {
 		tlen = 30;							// D2
 	} else if (fileVersion < kFileVer400) {
 		tlen = 48;							// D3
@@ -481,6 +483,8 @@ bool Cast::loadConfig() {
 
 		debugC(1, kDebugLoading, "Cast::loadConfig(): field17: %d, field18: %d, field19: %d, movieDepth: %d, field22: %d field23: %d",
 			_field17, _field18, _field19, _movieDepth, _field22, _field23);
+	} else {
+		_movieDepth = _bitdepth; // D2 and below
 	}
 
 	if (_version >= kFileVer400) {
diff --git a/engines/director/detection.cpp b/engines/director/detection.cpp
index 75ce4715f49..94a25fb560a 100644
--- a/engines/director/detection.cpp
+++ b/engines/director/detection.cpp
@@ -388,7 +388,7 @@ ADDetectedGame DirectorMetaEngineDetection::fallbackDetect(const FileMap &allFil
 					case MKTAG('V', 'W', 'Z', 'P'):	// VideoWorks + Director Overview ("Zorro")
 						desc->version = 20;
 						break;
-					case MKTAG('V', 'W', 'P', 'R'):	// "VideoWorks Pro" = Director
+					case MKTAG('V', 'W', 'P', 'R'):	// "VideoWorks Pro" = Director 1.0 / 2.0
 						desc->version = 100;
 						break;
 					case MKTAG('V', 'W', 'M', 'D'):	// Director 3.0
diff --git a/engines/director/types.h b/engines/director/types.h
index 7f6da12b2f3..17d84185893 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -358,6 +358,8 @@ enum ChunkType {
 };
 
 enum FileVer {
+	kFileVer100 = 0x3ff,
+	kFileVer200 = 0x400,
 	kFileVer300 = 0x404,
 	kFileVer310 = 0x405,
 	kFileVer400 = 0x45B,
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 65d6e7c4b7d..43903f030d0 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -1319,7 +1319,9 @@ uint16 humanVersion(uint16 ver) {
 		return 310;
 	if (ver >= kFileVer300)
 		return 300;
-	return 200;
+	if (ver >= kFileVer200)
+		return 200;
+	return 100;
 }
 
 Common::Platform platformFromID(uint16 id) {




More information about the Scummvm-git-logs mailing list