• src/doors/syncdoom/v_video.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sunday, July 05, 2026 14:35:45
    https://gitlab.synchro.net/main/sbbs/-/commit/7bc25a9c77efba39dc93bf95
    Modified Files:
    src/doors/syncdoom/v_video.c
    Log Message:
    syncdoom: tolerate widescreen TITLEPIC/INTERPIC instead of I_Error

    A door that had been working started dying at the title screen with
    "Bad V_DrawPatch x=0 y=0 patch.width=560 patch.height=200" (reported via
    IRC). Cause: the WAD carries WIDESCREEN art -- 560x200 (or wider) TITLEPIC/INTERPIC/help lumps, which Freedoom >= 0.13 and the Unity-port
    IWADs now ship. Vanilla V_DrawPatch's RANGECHECK I_Error's out on any
    patch wider than the 320-wide screen, aborting the door (a Windows
    message box) the moment such a screen is drawn.

    Make V_DrawPatch / V_DrawPatchFlipped tolerate over-wide patches: a
    fullscreen draw (x == 0) of a patch wider than SCREENWIDTH is
    re-centered and the columns hanging off either edge are clipped
    (skip x < 0, stop at x >= SCREENWIDTH); V_MarkRect is clamped to the
    screen. Vanilla-size patches (width <= SCREENWIDTH) take the exact old
    path with the original RANGECHECK intact, so normal WADs are unchanged.
    The classic 320-wide center of a widescreen pic is what shows -- correct
    for our 4:3 320x200 framebuffer.

    Reproduced with a synthetic 560x200 TITLEPIC PWAD: pre-fix the door
    exits with the Bad V_DrawPatch error; post-fix it renders the title
    screen and runs. Verified under MSVC only (Windows) -- the change is
    plain portable C.

    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net