Opened 8 years ago

Closed 6 years ago

Last modified 6 years ago

#5981 closed defect (fixed)

SCI: LONGBOW: Animation glitch in intro

Reported by: SF/kurufinwe Owned by: m-kiewitz
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: Conquests of the Longbow

Description

Using ScummVM 1.5.0git2420-g975801b on Win 7 64 bit. Playing Conquests of the Longbow (DOS, English, v 1.0 with official Sierra patch).

This happens during the intro, when King Richard gets attacked by night. Using the original interpreter, he struggles with his attackers and eventually falls off his horse. With ScummVM, however, when his attackers reach him he immediately "teleports" to the ground, the falling-off animation plays in reverse (so he ends up back on his horse), then the animation plays again in the correct order and he's finally on the ground for good — and then the rest of the sequence plays as it should.

I can't seem to be able to save during the intro, so I guess you have to watch the whole thing to see the bug.

Ticket imported from: #3489094. Ticket imported from: bugs/5981.

Change History (7)

comment:1 by SF/kurufinwe, 8 years ago

A small precision: it seems that an animation of Richard pulling out his sword and fighting back is not playing in ScummVM and is replaced with the reverse fall. So the sequence should be (original interpreter):

1. Attackers approach
2. Richard pulls out his sword and tries to fight back
3. Richard falls to the ground

but what ScummVM does is:

1. Attackers approach
2. Richard falls to the ground IN REVERSE
3. Richard falls to the ground

comment:2 by wjp, 6 years ago

m_kiewitz investigated this and traced it to a workaround in soundcmd.cpp

I've confirmed that is indeed causing it, in all three of its incarnations in history:
9ad4ad1abc75e6393617ea9c5ca8fdfc2c8de6c4, 8024f406387a748718496e9592ffccb3a6a51d26 and master.

It is the check currently labeled "Check if the song is already at the requested volume".

Removing it re-introduces the problem of dialog boxes of the troubadour's song disappearing too quickly.

comment:3 by m-kiewitz, 6 years ago

I have looked further through the scripts.

script 95 - class nightRider::changeState is responsible for the animations.
state 7 results in the man on the horse swinging his sword (view 810, loop 2, cel 0 to 5) - using cycler "CT" from script 992
state 8 results in that animation going back 2 frames to cell 3, also using cycler "CT"
state 9 results in that loop getting played back in full, this uses cycler "End"

It's really strange. When I set a breakpoint on nightRider::changeState, none of the animations play back throughout the whole scene. It seems something is triggering cues all the time, when breakpoints are set. The rider won't even ride down the hill in that case.

The troubadour scene works fine with latest code, so maybe it's another bug entirely and not caused by us not sending out a signal for one of the fade outs (where volume == targetvolume) at the start of that scene.

comment:4 by m-kiewitz, 6 years ago

the breakpoint/debugger problem is now fixed (commit 0367d40647128836c7ccecc1cd9e3682b871dbf8)

comment:5 by m-kiewitz, 6 years ago

Seems to be fixed now
commit 1c9316cee03c5e2f694cf630b231f21e5c5ad32a

comment:6 by m-kiewitz, 6 years ago

Keywords: original added
Owner: set to m-kiewitz
Resolution: fixed
Status: newclosed

comment:7 by m-kiewitz, 6 years ago

Keywords: original removed
Note: See TracTickets for help on using tickets.