[Scummvm-tracker] [ScummVM :: Bugs] #13933: Use “Enable game-specific enhancements” for Sierra bug fixes
ScummVM :: Bugs
trac at scummvm.org
Wed Nov 16 22:12:16 UTC 2022
#13933: Use “Enable game-specific enhancements” for Sierra bug fixes
-------------------+--------------------------
Reporter: obskyr | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCI
Version: | Resolution:
Keywords: | Game:
-------------------+--------------------------
Comment (by m-kiewitz):
We normally really only fix bugs, that are obviously bugs, not change game
behavior.
Changing games in that aspect is not the intention of ScummVM, and should
be done using script patches, which we support and everyone can use. If we
would include such a game changing patch, it should be optional of course
and use such a game option.
"perhaps this whole file can be disabled, rather than having to do it per
enhancement."
This wouldn't really make sense, almost all of them if not all of them are
actual bug fixes.
Even as a non-developer you can easily read the comments about every
single script patch and it's detailed. Please do that.
For example the French version of King's Quest 5 crashes (hangs) almost at
the end. Without the script patch, you would get the "true experience" of
the game basically freezing, with no way to recover. Maybe you want that,
I don't know, but most players do not want that, because it's simply
broken. I think when I fixed that one, a speed runner was even happy that
it was fixed, because he was finally able to use that version to speedrun
the game, which was impossible to use before.
Or take Gabriel Knight 1, which has a few game speed bugs, that happen
when the computer running the game is too fast. It causes certain
sequences to become unbeatable/unplayable. Disabling that once again
wouldn't even give you the "true experience", unless you played the game
late and it was unplayable and you want to re-experience that.
There is also a major script bug in Quest for Glory 1 VGA at the end, in
the crazy room with Yorick. When you walk to certain spots, the game will
go haywire, the graphics will fully glitch and the game will basically
freeze. Granted, the graphic glitch has to be seen and it looks funky, but
for a player the game is simply broken.
Please also understand that SCI within ScummVM can not even really give
you the "true" SCI experience, because SCI - the original interpreter -
written by Sierra, did almost no error checking. Scripts were also not
checked for certain errors. So when something went wrong, or when
something was programmed wrong or badly, the interpreter just went on and
on and then maybe fully crashed 1 hour later. Or broke memory that ruined
another part of the game. Or it simply worked by accident. The SCI code
within ScummVM does not do this, but instead checks for all sorts of error
conditions. It also does proper memory handling. We see that as a feature,
as something good, because no one probably wants their game to crash on
them, to hard lock or to break or have memory corruption. Quest for Glory
3 for example will crash after a while simply because it runs out of
memory, when using the original interpreter (depends on how much you do in
the game).
IF we disabled all these error checks and verifications, you would in fact
even get more game bugs, because some bugs simply did not trigger any
problems in the original interpreter by pure chance, while in our
interpreter it does because we don't re-use memory and clear it before
using.
And we also patch in optional features, like audio + subtitles at the same
time. This is optional, you don't need to use it. Maybe you don't even
want a new selection for that (King's Quest 6 didn't even have a selection
for that variant, because it was not supported, and I personally created a
graphic and inserted it into the game for its options menu. Originally you
could only select audio or text, now you can also select "both". You have
to click on that option to even see that new graphic.
AGI engine btw. does not have such a patch engine (yet).
AGI engine offers a few features that the original interpreter did not
offer, like for example Hercules-style pausing when you enter a command
outside of Hercules graphics mode. These are optional and you have to
enable them yourself.
There are also workarounds, see the file workarounds.cpp.
Same deal there, if you disabled these, you would have all sorts of game
breaking glitches.
Maybe you want these, I don't know. But players typically don't want their
games to have game breaking glitches/crashes, which is why we try our best
to fix these issues.
--
Ticket URL: <https://bugs.scummvm.org/ticket/13933#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list