File e-uae-AGA_HAM6.patch of Package uae-test

*** src/drawing.c.orig	2007-03-28 03:27:18.000000000 +0200
--- src/drawing.c	2019-05-02 23:31:55.149215227 +0200
***************
*** 541,551 ****
  	} else if (bplplanecnt == 6) { /* AGA mode HAM6 */
  	    while (unpainted_amiga-- > 0) {
  		int pv = pixdata.apixels[ham_decode_pixel++];
  		switch (pv & 0x30) {
  		case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
! 		case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= (pv & 0xF) << 4; break;
! 		case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= (pv & 0xF) << 20; break;
! 		case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= (pv & 0xF) << 12; break;
  		}
  	    }
  	}
--- 541,552 ----
  	} else if (bplplanecnt == 6) { /* AGA mode HAM6 */
  	    while (unpainted_amiga-- > 0) {
  		int pv = pixdata.apixels[ham_decode_pixel++];
+ 		int pv2 = ((pv & 0xf) << 4) | (pv & 0xf);
  		switch (pv & 0x30) {
  		case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
! 		case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= pv2; break;
! 		case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= pv2 << 16; break;
! 		case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= pv2 << 8; break;
  		}
  	    }
  	}
***************
*** 597,607 ****
  	} else if (bplplanecnt == 6) { /* AGA mode HAM6 */
  	    while (todraw_amiga-- > 0) {
  		int pv = pixdata.apixels[ham_decode_pixel];
  		switch (pv & 0x30) {
  		case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
! 		case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= (pv & 0xF) << 4; break;
! 		case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= (pv & 0xF) << 20; break;
! 		case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= (pv & 0xF) << 12; break;
  		}
  		ham_linebuf[ham_decode_pixel++] = ham_lastcolor;
  	    }
--- 598,609 ----
  	} else if (bplplanecnt == 6) { /* AGA mode HAM6 */
  	    while (todraw_amiga-- > 0) {
  		int pv = pixdata.apixels[ham_decode_pixel];
+ 		int pv2 = ((pv & 0xf) << 4) | (pv & 0xf);
  		switch (pv & 0x30) {
  		case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
! 		case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= pv2; break;
! 		case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= pv2 << 16; break;
! 		case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= pv2 << 8; break;
  		}
  		ham_linebuf[ham_decode_pixel++] = ham_lastcolor;
  	    }
openSUSE Build Service is sponsored by