[Scummvm-tracker] [ScummVM :: Bugs] #12955: MYST3: Video speeds up after room transition
ScummVM :: Bugs
trac at scummvm.org
Tue Sep 21 11:18:27 UTC 2021
#12955: MYST3: Video speeds up after room transition
-------------------------+----------------------------
Reporter: eriktorbjorn | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Myst3
Version: | Resolution:
Keywords: | Game: Myst 3: Exile
-------------------------+----------------------------
Description changed by eriktorbjorn:
Old description:
> When a video is playing as part of a room background, it is paused during
> transitions between room but the sound (correctly, I assume) keeps
> playing. To compensate, the video speeds up briefly after each
> transition. This looks strange to me. It would probably be better if it
> skipped frames instead. Here is a quick-and-dirty experiment to do so:
>
> ```
> diff --git a/engines/myst3/movie.cpp b/engines/myst3/movie.cpp
> index bb163e82b8..00eee8832e 100644
> --- a/engines/myst3/movie.cpp
> +++ b/engines/myst3/movie.cpp
> @@ -332,7 +332,7 @@ void ScriptedMovie::update() {
> }
> }
>
> - if (!_scriptDriven && (_bink.needsUpdate() ||
> _isLastFrame)) {
> + while (!_scriptDriven && (_bink.needsUpdate() ||
> _isLastFrame)) {
> bool complete = false;
>
> if (_isLastFrame) {
> ```
>
> But for one thing it may not be the best way to do so, and for another
> I'm afraid it would introduce frame skipping where it's not desired. As I
> said, it's just an experiment to see the difference.
>
> I'm attaching a savegame of the part where I noticed this.
New description:
When a video is playing as part of a room background, it is paused during
transitions between room but the sound (correctly, I assume) keeps
playing. To compensate, the video speeds up briefly after each transition.
This looks strange to me. It would probably be better if it skipped frames
instead. Here is a quick-and-dirty experiment to do so:
{{{
diff --git a/engines/myst3/movie.cpp b/engines/myst3/movie.cpp
index bb163e82b8..00eee8832e 100644
--- a/engines/myst3/movie.cpp
+++ b/engines/myst3/movie.cpp
@@ -332,7 +332,7 @@ void ScriptedMovie::update() {
}
}
- if (!_scriptDriven && (_bink.needsUpdate() ||
_isLastFrame)) {
+ while (!_scriptDriven && (_bink.needsUpdate() ||
_isLastFrame)) {
bool complete = false;
if (_isLastFrame) {
}}}
But for one thing it may not be the best way to do so, and for another I'm
afraid it would introduce frame skipping where it's not desired. As I
said, it's just an experiment to see the difference.
I'm attaching a savegame of the part where I noticed this.
--
--
Ticket URL: <https://bugs.scummvm.org/ticket/12955#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list