diff options
Diffstat (limited to 'src/devices/video/i8244.cpp')
-rw-r--r-- | src/devices/video/i8244.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/devices/video/i8244.cpp b/src/devices/video/i8244.cpp index b13ad9d2037..366a7ab5618 100644 --- a/src/devices/video/i8244.cpp +++ b/src/devices/video/i8244.cpp @@ -564,24 +564,25 @@ void i8244_device::char_pixel(u8 index, int x, int y, u8 pixel, u16 color, bitma m_control_status |= 0x80; // TODO: much more complex on actual console (weird glitches happen) - continue; + if (colx & 0x80) + continue; } else m_priority_map[px] = index; - // note: collision affects transparent pixels too - // check if we collide with an already drawn source object - if (m_vdc.s.collision & colx) - m_collision_status |= 0x80; - - // check if an already drawn object would collide with us - if (m_vdc.s.collision & 0x80) - m_collision_status |= colx; + if (pixel) + { + // check if we collide with an already drawn source object + if (m_vdc.s.collision & colx) + m_collision_status |= 0x80; - m_collision_map[px] |= 0x80; + // check if an already drawn object would collide with us + if (m_vdc.s.collision & 0x80) + m_collision_status |= colx; - if (pixel) + m_collision_map[px] |= 0x80; bitmap.pix(y, px) = color; + } } } } |