[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