[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