IHNM: Character selection animations often miss a frame
|Reported by:||eriktorbjorn||Owned by:|
|Game:||I Have No Mouth|
Current ScummVM git (though the glitch has been bugging me for ages, so it's nothing recent) English versin of the game
There is a slight glitch on the hate pillar/character selection screen. When selecting a character, the animation often stops one frame too early. E.g. when selecting Nimdok, it cycles through frames 6-25 instead of 6-26.
The two relevant opcodes here are probably sfCycleFrames(), which sets up the animation cycle, and sfWaitFrames() which tells the thread how long to wait. There may be other things happening in between these two opcodes; I haven't checked.
The problem seems to be that usually it executes both sfCycleFrames and sfWaitFrames before the animation cycle actually begins, and then it won't finish in time. But sometimes, it manages to do the first frame (and increase _vm->_frameCount) before sfWaitFrames(), and then it will finish in time. I haven't seen this glitch when using DOSBox, though it's been a while since I tried that.
One possibility would be that this slight indeterminism is in the original as well, and that our sfWaitFrames() doesn't wait long enough. Another is that something about our script/thread handling is different from the original. Of course, it could also be something else entirely, and my analysis could be completely wrong.
Ticket imported from: #3392688. Ticket imported from: bugs/5828.