From a93df8e16bc87b16b425f2c87c1eb84cddea3e21 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sun, 8 May 2016 21:52:57 +0100 Subject: [PATCH] Fixed Mach64 linear source mode - fixes text in Corel Linux in 8-bit colour. --- src/vid_ati_mach64.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/vid_ati_mach64.c b/src/vid_ati_mach64.c index 36e1620..3883f20 100644 --- a/src/vid_ati_mach64.c +++ b/src/vid_ati_mach64.c @@ -1237,17 +1237,20 @@ void mach64_blit(uint32_t cpu_dat, int count, mach64_t *mach64) mach64->accel.src_x += mach64->accel.xinc; mach64->accel.dst_x += mach64->accel.xinc; - mach64->accel.src_x_count--; - if (mach64->accel.src_x_count <= 0) + if (!(mach64->src_cntl & SRC_LINEAR_EN)) { - mach64->accel.src_x = 0; - if ((mach64->src_cntl & (SRC_PATT_ROT_EN | SRC_PATT_EN)) == (SRC_PATT_ROT_EN | SRC_PATT_EN)) + mach64->accel.src_x_count--; + if (mach64->accel.src_x_count <= 0) { - mach64->accel.src_x_start = (mach64->src_y_x_start >> 16) & 0xfff; - mach64->accel.src_x_count = mach64->accel.src_width2; + mach64->accel.src_x = 0; + if ((mach64->src_cntl & (SRC_PATT_ROT_EN | SRC_PATT_EN)) == (SRC_PATT_ROT_EN | SRC_PATT_EN)) + { + mach64->accel.src_x_start = (mach64->src_y_x_start >> 16) & 0xfff; + mach64->accel.src_x_count = mach64->accel.src_width2; + } + else + mach64->accel.src_x_count = mach64->accel.src_width1; } - else - mach64->accel.src_x_count = mach64->accel.src_width1; } mach64->accel.x_count--;