[Scummvm-tracker] [ScummVM] #9864: SCI: Torin: Send to invalid selector at Lycentia doorway 5th world

Colin Snover trac at scummvm.org
Fri Jul 7 06:08:00 CEST 2017


#9864: SCI: Torin: Send to invalid selector at Lycentia doorway 5th world
------------------------------+-------------------------
  Reporter:  g5ppc            |      Owner:  (none)
      Type:  defect           |     Status:  new
  Priority:  blocker          |  Component:  Engine: SCI
Resolution:                   |   Keywords:  sci32
      Game:  Torin's Passage  |
------------------------------+-------------------------

Comment (by csnover):

 Thanks for your report!

 So.

 This PointSoft release has a different selector vocab than the other
 releases of Torin. Most of the selectors are the same, but these 41 are
 different:

 ||=Selector=||=Sierra=||=PointSoft=||
 ||4bf||          flag||       bSwing||
 ||4c0||        toggle||         flag||
 ||4c1||         oFace||       toggle||
 ||4c2||        bSwing||        oFace||
 ||4c8||      nPointOn||       nSound||
 ||4c9||        nMusic||     nPointOn||
 ||4ca||    nPointLeft||   raiseHands||
 ||4cb||      nPointTo||   lowerHands||
 ||4cc||     oAvoiding|| bLeftHandOut||
 ||4cd||        bAvoid|| bRightHandOut||
 ||4ce||        nLastX||    oLeftHand||
 ||4cf||        nLastY||   oRightHand||
 ||4d0||        oMusic||     bSinging||
 ||4d1||        oSound||    oSingCuee||
 ||4d2||  bExcusedSelf||    curPrayer||
 ||4d3||     curPrayer||     unselect||
 ||4d4||   unloadSound|| getOneHigher||
 ||4d5||        nSound|| getTwoHigher||
 ||4d6||    raiseHands||   switchWith||
 ||4d7||    lowerHands||         sing||
 ||4d8||  bLeftHandOut||  stopSinging||
 ||4d9|| bRightHandOut||   setDisplay||
 ||4da||     oLeftHand|| getMyYOffset||
 ||4db||    oRightHand||  unlockAudio||
 ||4dc||      bSinging||     nGoingTo||
 ||4dd||     oSingCuee||  nComingFrom||
 ||4de||      unselect||       nMusic||
 ||4df||  getOneHigher||   nPointLeft||
 ||4e0||  getTwoHigher||     nPointTo||
 ||4e1||    switchWith||    oAvoiding||
 ||4e2||          sing||       bAvoid||
 ||4e3||   stopSinging||       nLastX||
 ||4e4||    setDisplay||       nLastY||
 ||4e5||  getMyYOffset||       oMusic||
 ||4e6||   unlockAudio||       oSound||
 ||4e7||      nGoingTo|| bExcusedSelf||
 ||4e8||   nComingFrom||  unloadSound||
 ||4f5||     holdStart||   stopCorder||
 ||4f6||      holdTime||    holdStart||
 ||4f7|| reallyDispose||     holdTime||
 ||4fe||    stopCorder|| reallyDispose||

 So, in this crash, `reallyDispose` selector in the Sierra release is
 instead `holdTime` in the PointSoft release, which is why this is
 crashing. This means that TORINPAT can't be applied to the PointSoft
 release without breaking the game.

 I am not sure what the best path forward here is. There are only a few
 options I can think of, and none of them seem very good:

 1. Continue requiring TORINPAT for all releases, identify uses of the
 different selectors in the patch files and hot-patch them to the PointSoft
 selector values;
 2. Require TORINPAT for the Sierra releases and play whack-a-mole with the
 bugs in the PointSoft releases;
 3. Subsume TORINPAT into ScummVM so no extra patching is needed.

 I will check to see if anyone else has some better ideas.

--
Ticket URL: <https://bugs.scummvm.org/ticket/9864#comment:2>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list