diff options
author | Colin Snover | 2017-09-24 23:37:49 -0500 |
---|---|---|
committer | Colin Snover | 2017-09-24 23:49:37 -0500 |
commit | ba380ac28ef5217de54f81a621b85f8bfb553f88 (patch) | |
tree | 7a79780e95760d3f01d427bd84e669451489048b /engines | |
parent | ceb987c5f248bf085478fa68719ee0ab46c545e3 (diff) | |
download | scummvm-rg350-ba380ac28ef5217de54f81a621b85f8bfb553f88.tar.gz scummvm-rg350-ba380ac28ef5217de54f81a621b85f8bfb553f88.tar.bz2 scummvm-rg350-ba380ac28ef5217de54f81a621b85f8bfb553f88.zip |
SCI32: Dummy kPlayVMDSetFrameRate
This subop is used only by RAMA.
The VMD objects in RAMA's game code contain a frame rate field,
which is usually -1, but occasionally is not. In the cases where
it is not -1, it appears to be either set for a video with sound
(so the value doesn't do anything to that video), or it is just
resetting back to the baked-in frame rate of the video file (so
it doesn't need to exist, except to fix videos broken by earlier
played videos with explicit frame rates).
Since this is a global state flag that does not get reset in SSCI,
the ultimate effect of kPlayVMDSetFrameRate in RAMA is that it does
nothing to any of the videos where the explicit frame rate is set,
but it does inadvertently cause *other* videos with no sound and no
explicit frame rate to have a different frame rate depending upon
what was played earlier in the game (and whether or not the engine
was restarted in the meantime).
This bad transferring of frame rates is most noticeable with the
exit-video of the vidmail player, which is played when you back out
after selecting a vidmail. Its nominal framerate is 10fps, but it
will play at whatever frame rate was last set by some other video
that happened to have an explicit frame rate, even if that frame
rate was bogus.
So, just ignore all calls to this subop, as it is fatally buggy.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index 4002062db9..fa93d60a3d 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -473,6 +473,7 @@ static const SciKernelMapSubEntry kPlayVMD_subops[] = { { SIG_SINCE_SCI21, 23, MAP_CALL(PlayVMDRestrictPalette), "ii", NULL }, { SIG_SCI3, 27, MAP_CALL(PlayVMDSetPlane), "i(i)", NULL }, { SIG_SCI3, 28, MAP_EMPTY(PlayVMDSetPreload), "i", NULL }, + { SIG_SCI3, 31, MAP_EMPTY(PlayVMDSetFrameRate), "i", NULL }, SCI_SUBOPENTRY_TERMINATOR }; |