From 97d77e73c2900a6f8c2008943d14bf3fdd5d3acd Mon Sep 17 00:00:00 2001 From: SarahW Date: Sat, 30 Apr 2016 10:25:08 +0100 Subject: [PATCH] Use correct Mach64 blitter host data size - fixes Windows XP Mach64 drivers. --- src/vid_ati_mach64.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/vid_ati_mach64.c b/src/vid_ati_mach64.c index 7b94970..3a8a1f5 100644 --- a/src/vid_ati_mach64.c +++ b/src/vid_ati_mach64.c @@ -153,7 +153,7 @@ typedef struct mach64_t int pattern[8][8]; int sc_left, sc_right, sc_top, sc_bottom; int dst_pix_width, src_pix_width, host_pix_width; - int dst_size, src_size; + int dst_size, src_size, host_size; uint32_t dp_bkgd_clr; uint32_t dp_frgd_clr; @@ -899,6 +899,7 @@ void mach64_start_fill(mach64_t *mach64) mach64->accel.dst_size = mach64_width[mach64->accel.dst_pix_width]; mach64->accel.src_size = mach64_width[mach64->accel.src_pix_width]; + mach64->accel.host_size = mach64_width[mach64->accel.host_pix_width]; /* mach64->accel.src_x *= mach64_inc[mach64->accel.src_pix_width]; mach64->accel.src_pitch *= mach64_inc[mach64->accel.src_pix_width]; @@ -995,7 +996,8 @@ void mach64_start_line(mach64_t *mach64) mach64->accel.dst_size = mach64_width[mach64->accel.dst_pix_width]; mach64->accel.src_size = mach64_width[mach64->accel.src_pix_width]; - + mach64->accel.host_size = mach64_width[mach64->accel.host_pix_width]; + if (mach64->accel.src_size == WIDTH_1BIT) mach64->accel.src_offset <<= 3; else @@ -1118,7 +1120,7 @@ void mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) if (mach64->accel.source_host) { host_dat = cpu_dat; - switch (mach64->accel.src_size) + switch (mach64->accel.host_size) { case 0: cpu_dat >>= 8;