Opened 5 years ago

Closed 5 years ago

Last modified 2 years ago

#10780 closed defect (fixed)

SCI: GK1: Ego speed bugs in police station & drug store

Reported by: sluicebox Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords:
Cc: Game: Gabriel Knight 1

Description

Gabriel's speed gets out of sync with the game speed when entering the police station and exiting the drug store. These are script bugs in the original game that affect all versions.

The scripts for entering the police station and exiting the drug store both temporarily change ego's speed to fixed values for their door sequences but fail to call GKEgo:normalize to restore the original speed. This leaves ego's speed at 75% in the police station and the slowest speed when leaving the drugstore. Ego's speed stays at these values until doing something that does call normalize such as opening a door or entering certain rooms.

I'm submitting script patches that fix this by calling normalize.

Attached are saves of english pc floppy and cd versions at the map with the game speed set to high.

To reproduce:

  1. Enter drug store
  2. Leave drug store
  3. Enter museum (this is one of the rooms that doesn't call normalize when entering)
  4. Ego now moves at slowest speed

Or:

  1. Enter police station
  2. Ego now moves at 75% speed


You can manually correct ego's speed by going to control panel, which will say the correct game speed, and moving the slider.

Attachments (2)

gk1-cd.021 (43.0 KB ) - added by sluicebox 5 years ago.
gk1.019 (51.9 KB ) - added by sluicebox 5 years ago.

Download all attachments as: .zip

Change History (6)

by sluicebox, 5 years ago

Attachment: gk1-cd.021 added

by sluicebox, 5 years ago

Attachment: gk1.019 added

comment:2 by m-kiewitz, 5 years ago

Great work as always.

I added a few comments on the patch.
Please use SIG_SELECTOR16 for selector values and do not hardcode them.
There is also SIG_SELECTOR8 for 8 bit IDs. Using that one will create an error in case the value does not fit inside a uint8.

If any of your previous patches also did it like this, please change it accordingly.

comment:3 by bluegr, 5 years ago

Owner: set to bluegr
Resolution: fixed
Status: newclosed

Nice catch! Quite an obscure bug. Thanks for making the changes requested by m-kiewitz. The patch has been merged now, so this can be closed.

comment:4 by sluicebox, 2 years ago

Owner: changed from bluegr to sluicebox
Note: See TracTickets for help on using tickets.