Opened 10 years ago

Closed 10 years ago

#4213 closed defect (fixed)

FW: half walking speed in a screen

Reported by: SF/glorifindel Owned by: SF/buddha_
Priority: normal Component: Engine: Cine
Keywords: Cc:
Game: Future Wars

Description

I'm using the italian Amiga version of Future Wars on ScummVM 0.13 stable (Win32).
When the main character enter a certain screen (see screenshot) he walks at half speed (this issue doesn't occur when exiting this screen)

Ticket imported from: #2669415. Ticket imported from: bugs/4213.

Attachments (2)

scummvm00000.png (19.9 KB) - added by SF/glorifindel 10 years ago.
fw-amiga-it.3 (2.0 KB) - added by SF/glorifindel 10 years ago.
Savegame of the location

Download all attachments as: .zip

Change History (8)

Changed 10 years ago by SF/glorifindel

Attachment: scummvm00000.png added

Changed 10 years ago by SF/glorifindel

Attachment: fw-amiga-it.3 added

Savegame of the location

comment:1 Changed 10 years ago by SF/glorifindel

File Added: fw-amiga-it.3

comment:2 Changed 10 years ago by SF/glorifindel

Component: Engine: Cine
Game: Future Wars

comment:3 Changed 10 years ago by sev-

Kari, could you look into it?

comment:4 Changed 10 years ago by sev-

Owner: set to SF/buddha_

comment:5 Changed 10 years ago by SF/buddha_

Fixed in the SVN trunk in revision 42439.

Glorifindel: Please, if you could test the game on a real Amiga or under an Amiga emulator to see if the speed is halved in the given scene when running the original executable that'd be nice to know. Also if you could check whether the speed is halved in any other scenes when running the game under ScummVM that'd be nice to know too (And please if you do find such places, gather the information about them into a bug report and submit it). Thanks!

Information about the bug's cause and how it was fixed:

WORKAROUND for bug #2669415 ("FW: half walking speed in a screen"). The problem was that in Amiga/Atari ST versions of Future Wars the walking speed has halved in a forest scene where a monk's robe hangs on a tree branch (Up and to the left from the medieval castle's front).

Initialization script for the scene is PART02.PRC's 26th script (011_INIT) and the background used in the scene is L11.PI1. The difference between the PC version and the Amiga/Atari ST version of the script is that the PC version calls scripts 37 and 36 for handling movement of the character when Amiga/Atari ST version calls scripts 22 and 21 for the same purpose (Scripts 37 and 22 handle vertical movement, 36 and 21 the horizontal).

The called scripts only differ functionally so that all BREAK opcodes have been doubled in the Amiga/Atari ST versions (i.e. one BREAK has become two BREAKs) and in script 21 after LABEL_25 there's an extra opcode that isn't in script 36: SET globalvars[251], 0.

As a BREAK opcode stops the execution of a script it causes a pause and with the BREAKs doubled the pause is twice as long in the Amiga/Atari ST versions. Thus the longer pause is eliminated by running only one BREAK when several are designated (i.e. ignoring a BREAK if there's another BREAK after it).

comment:6 Changed 10 years ago by SF/buddha_

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.