CMI: Smush sync tuning (experimental)
|Reported by:||eriktorbjorn||Owned by:||aquadran|
|Game:||Monkey Island 3|
This isn't quite complete, but I figured it was ready to be submitted anyway. It's an attempt at getting better sync for the CMI smush movies. The opening movie in particular.
The problem with that movie is that we specify the delay between the frames in milliseconds. This movie consists of literally thousands of frames, so even an error of a fraction of a millisecond adds up to something quite noticeable by the end of it.
This patch changes the timer unit from milliseconds to microseconds. Of course, we don't actually have that high resolution timers so each individual frame delay will still be off by many milliseconds. What it does is to keep the error from accumulating as quickly over time.
What remains to be done that I'm aware of:
* MorphOS seems to have a completely different way of handling timers than the other ScummVM ports. This would obviously have to be updated.
* I've assumed that the CMI movies should be played back at 12 fps, which means the delay between each frame is approximately 83333 microseconds (instead of the previous 83 microseconds). It seems to be working, but perhaps it needs further fine-tuning?
* script_v6.cpp sets the delay between frames to 71000 microseconds for s3q.san. This could probably be fine-tuned now, but I don't know if it's noticeable.
* Perhaps the "CD timer" could now be fine-tuned so that it no longer uses a different delay for Loom CD?
* Perhaps there is some better way of syncing smush movies that I'm not currently aware of?
Ticket imported from: #674141. Ticket imported from: patches/271.