[Scummvm-tracker] [ScummVM :: Bugs] #15303: SCI: LSL5: Timed message skipped during LSL5 coffee scene

ScummVM :: Bugs trac at scummvm.org
Wed Jul 31 20:43:42 UTC 2024


#15303: SCI: LSL5: Timed message skipped during LSL5 coffee scene
-------------------------+-----------------------------------
Reporter:  eriktorbjorn  |       Owner:  (none)
    Type:  defect        |      Status:  new
Priority:  normal        |   Component:  Engine: SCI
 Version:                |  Resolution:
Keywords:                |        Game:  Leisure Suit Larry 5
-------------------------+-----------------------------------

Old description:

> This one was a fluke...
>
> I made a savegame at the beginning of Leisure Suit Larry 5 (English),
> right after the end of the intro. When bringing coffee to Silas, the game
> was supposed to print the message
>
> "Yes, I know" you offer proudly, "I'm the Chief Tape Rewinder and
> Sterilizer on this project!"
>
> But that message was only shown for a split second, before skipping to
> the next message. I ''think'' what's going on here is some sort of
> integer overflow. This is how the message is displayed in rm150.sc:
>
> {{{
>                         (22
>                                 (Say You_a 150 9 108 139 self) ; "Yes, I
> know," you offer proudly, "I'm the Chief Tape Rewinder and Sterilizer on
> this project!"
>                         )
>                         (23
>                                 (= ticks 30)
>                         )
> }}}
>
> I think that means the message is supposed to stay up for 30 "ticks".
> Though that seems awfully short, so maybe it's 30 ''additional'' ticks?
>
> If you load the attached savegame, and let the messages time out on their
> own (don't click to speed it up!), the skipped message happens at a point
> when KGETTIME_TICKS in the kGetTime() function comes (dangerously?) close
> to 32,767. Could that somehow cause the timeout to trigger prematurely?

New description:

 This one was a fluke...

 I made a savegame at the beginning of Leisure Suit Larry 5 (English),
 right after the end of the intro. When bringing coffee to Silas, the game
 was supposed to print the message

 "Yes, I know" you offer proudly, "I'm the Chief Tape Rewinder and
 Sterilizer on this project!"

 But that message was only shown for a split second, before skipping to the
 next message. I ''think'' what's going on here is some sort of integer
 overflow. This is how the message is displayed:

 {{{
                         (
                                 (Say larryTalker "\"Yes, I know,\" you
 offer proudly,
                                         \"I'm the Chief Tape Rewinder and
 Sterilizer
                                         on this project!\""
                                         #dispose:
                                         #caller:                self
                                 )
                         )
                         (
                                 (= ticks 30)
                         )
 }}}

 I think that means the message is supposed to stay up for 30 "ticks".
 Though that seems awfully short, so maybe it's 30 ''additional'' ticks?

 If you load the attached savegame, and let the messages time out on their
 own (don't click to speed it up!), the skipped message happens at a point
 when KGETTIME_TICKS in the kGetTime() function comes (dangerously?) close
 to 32,767. Could that somehow cause the timeout to trigger prematurely?

--
Comment (by m-kiewitz):

 30 ticks really means 30 ticks
 And it seems these 30 ticks are actually the duration between dialog
 boxes, so it's actually part of the NEXT state that follows after the
 message box has been removed.

 Can you please check what the original interpreter is doing?
 Also that's not just the follow-up dialog when you bring coffee, but it's
 like the 30th dialog box. Please also include which script you are posting
 from.

 This is script 150, aCartoon::changeState, and the state number would be
 useful too.
 I just checked my multilingual Larry 5 copy. I skipped the dialog boxes,
 but this specific text stays on screen for seconds.

 I think I read something that there indeed is a time overflow problem with
 ticks, but it happens not that often.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15303#comment:5>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list