From 025fba84870641aa86586e8e2756acdc3b168e24 Mon Sep 17 00:00:00 2001 From: Robert Crossfield Date: Sun, 24 May 2026 12:13:48 +1000 Subject: [PATCH] Fix negative X after left-edge sprite clipping --- Source/PC/Graphics_PC.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/PC/Graphics_PC.cpp b/Source/PC/Graphics_PC.cpp index c860607e..7abe8b5e 100644 --- a/Source/PC/Graphics_PC.cpp +++ b/Source/PC/Graphics_PC.cpp @@ -694,6 +694,14 @@ bool cGraphics_PC::Sprite_OnScreen_Check() { mFodder->mVideo_Draw_Columns -= ax; ax >>= 1; mFodder->mVideo_Draw_FrameDataPtr += ax; + + // Ensure the destination X never remains negative after clipping. + // A remaining -1 here would underflow the destination pointer in Video_Draw_8. + if (mFodder->mVideo_Draw_PosX < 0) + { + ++mFodder->mVideo_Draw_PosX; + --mFodder->mVideo_Draw_Columns; + } } ax = mFodder->mVideo_Draw_PosX + mFodder->mVideo_Draw_Columns;