[Scummvm-tracker] [ScummVM] #7065: SCI: PHARKAS Mac easter egg freezes partway

sluicebox trac at scummvm.org
Mon Dec 10 05:03:33 CET 2018


#7065: SCI: PHARKAS Mac easter egg freezes partway
-------------------------------------------------+-------------------------
  Reporter:  SF/eisnerguy1                       |      Owner:  (none)
      Type:  defect                              |     Status:  new
  Priority:  normal                              |  Component:  Engine: SCI
Resolution:                                      |   Keywords:
      Game:  Freddy Pharkas: Frontier            |
  Pharmacist                                     |
-------------------------------------------------+-------------------------

Comment (by sluicebox):

 I took a look at this and it is a script bug, though I don't know why it
 worked in the original. I'm not setup to disassemble the Mac interpreter
 and I pray to never be.

 The reason the sound is looping forever is because the script requests it
 to. The loop property on macSound is set to -1, which means loop forever.
 The script macThing plays macSound and tells it to continue macThing when
 the sound finishes playing, which it never does on ScummVM, because the
 sound isn't supposed to finish. It looks like they put the wrong loop
 value but it accidentally worked on Sierra's interpreter so no one
 noticed. No other scripts in this game wait on a sound with loop -1 to
 finish. That's what I'd expect since deliberately doing that wouldn't make
 sense.

 macSound is also declared with the wrong sound number: the Yeehaw! from
 the title screen. This isn't a problem since the number is set to the
 right one when playing, but it could be a hint to some copy/pasting or
 unfamiliarity with sound scripting that led to the bug.

 Right now this game doesn't load at all (#10440, #10792) but once that's
 taken care of this can be fixed with a small script patch that changes
 macSound:loop from -1 to 1 or an investigation can be launched into why
 the behavior is different in ScummVM. I tried patching the loop value and
 that worked. I doubt any other scripts in other games depend on this
 behavior since they'd all break in ScummVM the way this one did and be
 noticed, but maybe it's something more complicated.

 I guess the lesson is that if you're going to tack on an easter egg about
 being a shunned Mac programmer you better make sure you do it right...

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


More information about the Scummvm-tracker mailing list