#6452 SCI: Gabriel Knight 1 - a little status report

SCI unsorted

Dear developer team,

some days ago I used some free time to compare the current status of
"Gabriel Knight 1 - Sins of the fathers" in the daily build of ScummVM.
For the comparison I ran DOSBox and ScummVM (1.7.0git3970-gc65e8a3 (Nov 9 2013 05:16:52))
on a MacBook Pro (OSX 10.9, Mavericks) at the same time.

For I am owner of a real Roland MT-32 sound module, I used the inbuilt Munt synthesizer
with the correct ROM file setup and the music was really amazing.

Everything seemed to work flawless up to a special point near the end of Day 1:
When trying to talk to inspector Mosely (Mostly) at his office. In the original
(proved via DOSBox) it is possible to talk to Mosely as soon as Gabriel sat down
on the chair.
In ScummVM the Object of inspector Mosely cannot be operated. While clicking at his
image within the talk option pointer (?) the female narrator tells always that "Mosely
is the person who can talked to in this room" as if I had clicked on the floor or
another domain in the screen. Out of this reason it is not possible to get further in
the story line and to complete day 1.

Beside the object error I found a sprite scaling error at the crime szene of day 1:
Instead of being scaled to the programmed image the sprites are always painted
with their smallest image.

The fruits seem to hang very low now for getting the game completely playable. Maybe some
of you have time and fun to look into the described bugs. As soon as the status changes
I will test the game again.




  • Filippos Karapetis

    This is not a bug per se, taking into account the current code base.

    A very large part of the SCI engine has been rewritten from Gabriel Knight 1 onwards. In order to support Gabriel Knight and newer SCI games properly, a large chunk of the graphics code will need to be rewritten. For example, there are more issues later on in the game (e.g. the Rada Drum book), all caused from guesswork on the graphics code.

    This is why Gabriel Knight and newer games are not supported, yet, although a large chunk is playable. This is a long-term goal, and not something that can be quickly patched. Thus, closing this bug, as there is no support for these games, and we will accept bug report when the codebase for SCI32 games is more mature than its current state.

  • Filippos Karapetis

    • labels: --> SCI, SCI32
    • status: open --> closed-later
    • assigned_to: Filippos Karapetis
  • Strangerke

    Strangerke - 2013-11-17
    • Group: *None --> SCI unsorted
  • Timo Korvola

    Timo Korvola - 2013-11-26

    The bugs that prevent completing Gabriel Knight 1 with ScummVM seem related to nsRects, at least those that I have come across.

    • nsRect can apparently be relative to the object position, which is indicated by a negative nsLeft or nsTop. This was fixed in June 2010, but the fix seems to have been lost in subsequent refactoring. See attached patch, which should fix not being able to talk to Mosely in his office.
    • When objects move, their nsRects are left behind. This is particularly apparent with the ego: when you try to click on Gabriel it often fails to register, whereas clicking on an apparently random location can get interpreted as being on Gabriel because the nsRect happened to be there. It also happens with other objects: when an envelope lands in the bookshop at the beginning of Day 6, its nsRect remains where the envelope first appears, well above where it lands. This makes the envelope impossible to click on.
  • Timo Korvola

    Timo Korvola - 2013-11-30

    To fix the second problem I modified frameout to always set object nsRects from cels. This with the previous patch allowed me to complete GK1. I do not have any other Sierra games to test with nor have I had time for a full playthrough of GK1 from the beginning after my changes. There are of course still graphical glitches; these patches do not affect rendering in any way.

  • Willem Jan Palenstijn

    Thank you for looking at this, but we're at the point where we should really only make changes if those are verified to match the behaviour of the original interpreter, since masking graphical glitches will hide actual underlying bugs.

    I had a quick look at IsOnMe in Sierra's SCI, but I don't think this patch fixes nsrect behaviour in the right way.

    Last edit: Willem Jan Palenstijn 2013-11-30
  • M. Kiewitz

    M. Kiewitz - 2015-04-25
    • summary: Gabriel Knight 1 - a little status report --> SCI: Gabriel Knight 1 - a little status report