Opened 7 years ago

Closed 11 months ago

#10044 closed defect (fixed)

MOHAWK: Riven: Excessive delay before cursor appears after movie ends.

Reported by: macca8 Owned by: macca8
Priority: low Component: Engine: Mohawk
Version: Keywords:
Cc: Game: Riven


After arriving at Jungle Island in the wood trolley, and it comes to rest, there's an excessive delay before the cursor appears, during which no sound or action occurs.

Following a series of commits in April 2015 by clone2727 (who maintained Riven & Myst at that time), the length of this delay doubled from 4 seconds to the current 8 seconds.

None of these commits are Riven-specific, but do relate to Quicktime, Mohawk and Myst, and contain evidence that at least some of these changes applied to code shared by Riven at the time (which in turn may have since been renamed and/or relocated by the recent Riven overhaul (PR 966)).

It's also likely that only the CD version of Riven is affected by this issue (see below).

These resources may help:

Current Daily Build: 1.10.0git4166-g993b013 (1 August 2017)
Last known with 4 seconds delay: 1.8.0git2913-gd582c84 (23 March 2015)
Game Version: English, 5-CD (contains v1.02 patch files), md5: 71145fdecbd68a0cfc292c2fbddf8e08
Platform: Intel Mac (OS X 10.6.8, 10.11.6)

Confusing the issue, tests from dafioram (recent Windows daily build, refer #9989 for results) produced significantly shorter delays to mine.

Nevertheless, a clear trend did emerge. Delays for the original CD & DVD, and the DVD version on ScummVM were all closely matched. However, the delay for the CD version on ScummVM doubled the others.

Note that my test is based on previous and current behaviour in ScummVM, not a comparison with the original. Lacking an appropriate Windows daily build (before the above commits were applied) for testing, it's difficult to draw any conclusions from this variation between Mac & Windows builds.

Attachments (1)

riven-002.rvn (15.0 KB ) - added by macca8 7 years ago.
Click lever, delay begins when sound stops after reaching Jungle Island.

Download all attachments as: .zip

Change History (8)

by macca8, 7 years ago

Attachment: riven-002.rvn added

Click lever, delay begins when sound stops after reaching Jungle Island.

comment:1 by macca8, 6 years ago

Owner: set to macca8
Resolution: fixed
Status: newclosed

This issue is resolved in the latest stable release (v 2.0.0), 32-bit & 64-bit Intel Mac versions, with the delay time reduced to the expected 2 seconds.

The current Daily Build (2.1.0git134) is still affected, but is no longer relevant now that the game is included in the stable version.

comment:2 by wjp, 6 years ago

Owner: macca8 removed

Great that it behaves as expected in the release build (maybe due to enabled optimizations), but if it's still broken in 2.1.0, that means any underlying issues haven't been resolved.

Version 0, edited 6 years ago by wjp (next)

comment:3 by wjp, 6 years ago

Resolution: fixed
Status: closednew

comment:4 by bgK, 6 years ago

Indeed the issue is not fixed.

That QuickTime video has entries in its edit list to repeat some sections. However it does not have key frames. Our QuickTime decoder decodes and skips hundreds of frames to be able to display the repeated sections. Decoding is much faster on release builds due to optimizations being enabled.

The original QuickTime decoder does not show this behavior. Perhaps it simply skips short edits altogether. Which would also fix issue #10135. More investigation is required.

comment:5 by macca8, 6 years ago

My mistake! Thanks for setting me straight.

comment:6 by wjp, 6 years ago

No worries. Thanks for letting us know it works in the release version. That's very useful.

comment:7 by macca8, 11 months ago

Owner: set to macca8
Resolution: fixed
Status: newclosed

It appears that one or more changes to our Quicktime decoder over the past 5 years has resolved this issue (but note that the separate issue in #10135 remains unresolved).

The latest release (2.7.0), future stable (2.7.1pre), and development (2.8.0git) builds for macOS all now display the expected 2 second delay between the end of the cutscene and the reappearance of the game cursor, matching the behaviour of the original.

Closing as fixed.

Note: See TracTickets for help on using tickets.