From 8d08912d223ffb3112107b58b7ff51e0aba56448 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 12 May 2016 18:25:10 +0200 Subject: SCUMM HE: Implement 50/50 T14 blend mode --- engines/scumm/he/moonbase/moonbase.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engines/scumm/he/moonbase/moonbase.cpp b/engines/scumm/he/moonbase/moonbase.cpp index 414a1772fa..c07bd986d8 100644 --- a/engines/scumm/he/moonbase/moonbase.cpp +++ b/engines/scumm/he/moonbase/moonbase.cpp @@ -107,12 +107,16 @@ void Moonbase::blitT14WizImage(uint8 *dst, int dstw, int dsth, int dstPitch, con WRITE_LE_UINT16(dst1, READ_LE_UINT16(src)); } else if (rawROP == 2) { // MMX_ADDITIVE uint16 color = READ_LE_UINT16(src); - uint32 orig = READ_LE_UINT16(dst1); + uint16 orig = READ_LE_UINT16(dst1); uint32 r = MIN(0x7c00, (orig & 0x7c00) + (color & 0x7c00)); uint32 g = MIN(0x03e0, (orig & 0x03e0) + (color & 0x03e0)); uint32 b = MIN(0x001f, (orig & 0x001f) + (color & 0x001f)); WRITE_LE_UINT16(dst1, (r | g | b)); + } else if (rawROP == 5) { // MMX_CHEAP_50_50 + uint16 color = (READ_LE_UINT16(src) >> 1) & 0x3DEF; + uint16 orig = (READ_LE_UINT16(dst1) >> 1) & 0x3DEF; + WRITE_LE_UINT16(dst1, (color + orig)); } dst1 += 2; } -- cgit v1.2.3