From 4024be8e5221ae20c2d4e6cf3e5554d8b8eb0cb1 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sun, 15 May 2016 21:09:26 +0100 Subject: [PATCH] ViRGE 2D blitter wraps X coordinates at 11 bits. Fixes missing text with some Windows drivers. --- src/vid_s3_virge.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vid_s3_virge.c b/src/vid_s3_virge.c index bfffb19..ea1dd0d 100644 --- a/src/vid_s3_virge.c +++ b/src/vid_s3_virge.c @@ -2038,7 +2038,9 @@ static void s3_virge_bitblt(virge_t *virge, int count, uint32_t cpu_dat) } virge->s3d.src_x += x_inc; + virge->s3d.src_x &= 0x7ff; virge->s3d.dest_x += x_inc; + virge->s3d.dest_x &= 0x7ff; if (!virge->s3d.w) { virge->s3d.src_x = virge->s3d.rsrc_x; @@ -2110,7 +2112,9 @@ static void s3_virge_bitblt(virge_t *virge, int count, uint32_t cpu_dat) } virge->s3d.src_x += x_inc; + virge->s3d.src_x &= 0x7ff; virge->s3d.dest_x += x_inc; + virge->s3d.dest_x &= 0x7ff; if (!virge->s3d.w) { virge->s3d.src_x = virge->s3d.rsrc_x;