#211 bnb2_na.lmp desyncs in vanilla

open
nobody
5
2017-02-17
2012-08-23
No

Demo: http://doomedsda.us/lmps/223/9/bnb-1553.zip
WAD: BNBEYOND.WAD http://doomedsda.us/wad223.html

A skill 3 / -complevel 3 demo recorded with v2.5.0.9. Plays back to the tally screen with all versions of PrB+ I have tested, as far back as v2.2.6.26. Desyncs in vanilla and Choco v1.6.0 shortly after 10:19 (teleporting to the lone Baron on a ledge in the main courtyard). In PrB+ the Baron dies, in vanilla it doesn't.

Discussion

  • RjY

    RjY - 2012-08-25

    Just before teleporting to the baron, the player has jumped onto a rising floor, and while fighting a cacodemon, his head bumps on the underside of the slight overhang behind him. At this point:

    - in pr+ the floor changes direction and sinks back down to the water level;
    - in c-d the floor just stops moving immediately.

    This is enough to throw the player slightly out of position and upset the rest of the demo.

    --

    The difference is the value of plat->low passed to T_MovePlane in the "down" case of T_PlatRaise. In vanilla EV_DoPlat leaves this uninitialised. Boom deliberately sets it to the sector's initial floor height to fix a bug:

    //jff 1/26/98 Avoid raise plat bouncing a head off a ceiling and then
    //going down forever -- default low to plat height when triggered
    plat->low = sec->floorheight;

    I verified that adding this line into EV_DoPlat in Chocolate Doom allows it to play the demo back to the intermission screen.

    I leave it to entryway to decide what he wants to do here but this strikes me as needing the same kind of fix as the crushing stairs problem; that is doing nothing but printing a big warning about potential desyncs in vanilla, as there's no real way to guess an undefined value and be correct in all cases.

     
  • RjY

    RjY - 2017-02-17

    r4513: I went ahead and implemented a warning when a raise-and-change plat direction reversal is detected. No attempt to emulate it; no way to know what the real value should be. At least if your demo goes out of sync you know why.

     

Log in to post a comment.