[Scummvm-tracker] [ScummVM :: Bugs] #16531: DIRECTOR: The Dark Eye - Character freezes/interaction fails in chapter Berenice
ScummVM :: Bugs
trac at scummvm.org
Sat Feb 14 09:59:23 UTC 2026
#16531: DIRECTOR: The Dark Eye - Character freezes/interaction fails in chapter
Berenice
-------------------+-------------------------------
Reporter: gcp828 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Director
Version: | Resolution:
Keywords: | Game:
-------------------+-------------------------------
Comment (by antoniou79):
If it helps at all, here's my quick-and-dirty hack-fix:
{{{
diff --git a/engines/director/castmember/digitalvideo.cpp
b/engines/director/castmember/digitalvideo.cpp
index 1b439d4eefd..1d322a38c91 100644
--- a/engines/director/castmember/digitalvideo.cpp
+++ b/engines/director/castmember/digitalvideo.cpp
@@ -246,6 +246,15 @@ bool DigitalVideoCastMember::loadVideo(Common::String
path) {
uint32 magic1 = copiedStream->readUint32BE();
uint32 magic2 = copiedStream->readUint32BE();
uint32 magic3 = copiedStream->readUint32BE();
+
+ uint32 magic1b = 0;
+ uint32 magic2b = 0;
+ uint32 magic3b = 0;
+ if (magic1 < copiedStream->size() + 12 &&
copiedStream->seek(magic1)) {
+ magic1b = copiedStream->readUint32BE();
+ magic2b = copiedStream->readUint32BE();
+ magic3b = copiedStream->readUint32BE();
+ }
delete copiedStream;
bool result = false;
@@ -263,7 +272,9 @@ bool DigitalVideoCastMember::loadVideo(Common::String
path) {
_videoType = kDVQuickTime;
}
- } else if (magic2 == MKTAG('m', 'o', 'o', 'v') || magic2 ==
MKTAG('m', 'd', 'a', 't')) {
+ } else if (magic2 == MKTAG('m', 'o', 'o', 'v')
+ || magic2b == MKTAG('m', 'o', 'o', 'v')
+ || magic2 == MKTAG('m', 'd', 'a', 't')) {
_video = new Video::QuickTimeDecoder();
result = _video->loadFile(location);
if (!result) {
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/16531#comment:6>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list