[Scummvm-git-logs] scummvm master -> d5f6d2543fe8e638730c09445cf049a184703425
sluicebox
22204938+sluicebox at users.noreply.github.com
Sat Nov 13 10:10:10 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e57a0adf57 SCI: Fix KQ6 Mac inconsistent timing in opening movie
d5f6d2543f VIDEO: Fix QuickTime decoding when color depth is 32
Commit: e57a0adf576606992379ee1ca63bcbbba06358df
https://github.com/scummvm/scummvm/commit/e57a0adf576606992379ee1ca63bcbbba06358df
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-11-13T04:07:55-06:00
Commit Message:
SCI: Fix KQ6 Mac inconsistent timing in opening movie
Changed paths:
engines/sci/engine/script_patches.cpp
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 322814b644..72621e92b1 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -6444,12 +6444,34 @@ static const uint16 kq6PatchFeatureEventHandling[] = {
PATCH_END
};
+// KQ6 Mac sets a three second delay before playing its QuickTime opening movie
+// in order to sync it with the music, but setting Script:seconds produces
+// inconsistent delays. (See GK1 cartoon timing patches.) Converting the delay
+// from seconds to ticks results in consistent timing in sync with the movie.
+//
+// Applies to: English Mac only
+// Responsible method: showMovie:changeState(2)
+static const uint16 kq6MacSignatureMacOpeningMovieDelay[] = {
+ SIG_MAGICDWORD,
+ 0x35, 0x03, // ldi 03
+ 0x65, 0x1c, // aTop seconds [ seconds = 3 ]
+ 0x33, 0x24, // jmp 24 [ end of method ]
+ SIG_END
+};
+
+static const uint16 kq6MacPatchMacOpeningMovieDelay[] = {
+ 0x34, PATCH_UINT16(0x00b4), // ldi 00b4
+ 0x64, PATCH_UINT16(0x0020), // aTop ticks [ ticks = 180 ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry kq6Signatures[] = {
{ true, 52, "CD: Girl In The Tower playback", 1, kq6CDSignatureGirlInTheTowerPlayback, kq6CDPatchGirlInTheTowerPlayback },
{ true, 80, "fix guard dog music", 1, kq6SignatureGuardDogMusic, kq6PatchGuardDogMusic },
{ true, 87, "fix Drink Me bottle", 1, kq6SignatureDrinkMeFix, kq6PatchDrinkMeFix },
{ false, 87, "Mac: Drink Me pic", 1, kq6SignatureMacDrinkMePic, kq6PatchMacDrinkMePic },
+ { true, 105, "Mac: opening movie delay", 1, kq6MacSignatureMacOpeningMovieDelay, kq6MacPatchMacOpeningMovieDelay },
{ true, 281, "fix pawnshop genie eye", 1, kq6SignaturePawnshopGenieEye, kq6PatchPawnshopGenieEye },
{ true, 300, "fix floating off steps", 2, kq6SignatureCliffStepFloatFix, kq6PatchCliffStepFloatFix },
{ true, 300, "fix floating off steps", 2, kq6SignatureCliffItemFloatFix, kq6PatchCliffItemFloatFix },
Commit: d5f6d2543fe8e638730c09445cf049a184703425
https://github.com/scummvm/scummvm/commit/d5f6d2543fe8e638730c09445cf049a184703425
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-11-13T04:09:26-06:00
Commit Message:
VIDEO: Fix QuickTime decoding when color depth is 32
Color depths greater than 32 have grayscale bit 0x20 set, but the
decoder incorrectly treats 32 as grayscale and and clears the bit,
leaving the color depth as zero and causing codecs to fail.
Confirmed correct behavior in the ffmpeg code that the decoder was
based off. The decoder was introduced with the Mohawk engine in
2009,so presumably no Mohawk movies had color depth 32.
Fixes videos in the Director game Virtual Cocktail Bar
Changed paths:
video/qt_decoder.cpp
diff --git a/video/qt_decoder.cpp b/video/qt_decoder.cpp
index e0c5662803..d85fe77dcb 100644
--- a/video/qt_decoder.cpp
+++ b/video/qt_decoder.cpp
@@ -200,6 +200,8 @@ Common::QuickTimeParser::SampleDesc *QuickTimeDecoder::readSampleDesc(Common::Qu
_fd->readByte();
}
}
+
+ entry->_bitsPerSample &= 0x1f; // clear grayscale bit
}
return entry;
@@ -271,7 +273,7 @@ QuickTimeDecoder::VideoSampleDesc::~VideoSampleDesc() {
}
void QuickTimeDecoder::VideoSampleDesc::initCodec() {
- _videoCodec = Image::createQuickTimeCodec(_codecTag, _parentTrack->width, _parentTrack->height, _bitsPerSample & 0x1f);
+ _videoCodec = Image::createQuickTimeCodec(_codecTag, _parentTrack->width, _parentTrack->height, _bitsPerSample);
}
QuickTimeDecoder::AudioTrackHandler::AudioTrackHandler(QuickTimeDecoder *decoder, QuickTimeAudioTrack *audioTrack) :
More information about the Scummvm-git-logs
mailing list