Opened 7 months ago

Closed 3 months ago

#10681 closed defect (fixed)

SCI: GK1 restart game issue

Reported by: misterhands Owned by: lskovlun
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: Gabriel Knight 1

Description

GK1 DOS/Win English CD

Start game and skip intro.
Click on restart icon in the menu then "Play".
Game restarts anyway without clearing screen first, causing weird things. See pic.

Attachments (1)

Restart.png (67.1 KB) - added by misterhands 7 months ago.

Download all attachments as: .zip

Change History (5)

Changed 7 months ago by misterhands

Attachment: Restart.png added

comment:1 Changed 3 months ago by lskovlun

I can reproduce.

Hmm, this is a weird one. First of all, QfG4 and GK1 used an early SCI32 interpreter that did not support RestartGame (which is the usual restart-cleanly function), so they coded a game-specific one.
However, it seems that RestartGame still gets called, even if the dialog box is dismissed. This is harmless in the original interpreter (because RestartGame is nopped out), but in ScummVM the usual RestartGame code runs. So that accounts for the restart.

The second part of this is the graphical artifacts. Since we actually run RestartGame, the result should be at least as clean as a restart using Sierra's makeshift solution. It seems the plane lists are kept around for some reason. While a fix for the first part above would be easy (don't let these games call RestartGame), the second part warrants some investigation before we do so. All the later games just use RestartGame, so any artifact-causing bugs in it would be... surprising.

comment:2 Changed 3 months ago by lskovlun

Actually, make that 'not surprising at all'. RestartGame was never reimplemented, and the option was removed from the later games I've checked at least. Shows how much I remember.

We should probably just stub it out for SCI32 then.

comment:3 Changed 3 months ago by Filippos Karapetis <bluegr@…>

In 939f9d12:

SCI32: Stub out kRestartGame

Restarting was only supported in QfG4, GK1 and PQ4. Those three used
makeshift script code. The kernel call was stubbed out in SSCI as
well. Fixes bug #10681.

comment:4 Changed 3 months ago by lskovlun

Owner: set to lskovlun
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.