Changes between Version 1 and Version 2 of Ticket #13554, comment 2


Ignore:
Timestamp:
Jun 7, 2022, 1:45:31 PM (2 years ago)
Author:
m-kiewitz

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #13554, comment 2

    v1 v2  
    33Just fyi, these signature checks that we do internally are safety checks from our side. Original SCI did none of that. When signature checks fail, it's typically script bugs, which can cause all sorts of weird issues down the line, which is the cause why we are doing them.
    44
    5 For example some kernel calls in SCI take 2 parameters. And a script calls it with one 1 parameter. That will get caught by the signature check.
     5For example some kernel calls in SCI take 2 parameters. And a script calls it with one 1 parameter. Or a kernel call is supposed to get 2 references, but instead gets 1 reference and one string, which would be nonsense. That will get caught by the signature check. Sierra's SCI compiler didn't seem to do much safety checking.
    66
    77We also do checks for reads on uninitialized variables, which SCI also didn't care about and which caused random errors in some games. Some games even depend on a certain state of uninitialized variables. Our memory system works differently and initializes variables, so these script bugs caused a few issues in our SCI and were very hard to track down (we didn't have these checks in place originally).