diff options
author | hap <happppp@users.noreply.github.com> | 2021-02-01 17:39:57 +0100 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-02-01 17:39:57 +0100 |
commit | 401e9f670a906ac0cfe48bfa20ded143bb17ced0 (patch) | |
tree | 209abdd172b2ab16e992722869ae19b3a979a689 | |
parent | 9868d8322f99f9a495cbbd39ddc5a7740f2d8e2e (diff) |
i8244: fix problem with major system overlap
-rw-r--r-- | src/devices/video/i8244.cpp | 23 | ||||
-rw-r--r-- | src/mame/drivers/odyssey2.cpp | 1 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/devices/video/i8244.cpp b/src/devices/video/i8244.cpp index 366a7ab5618..b13ad9d2037 100644 --- a/src/devices/video/i8244.cpp +++ b/src/devices/video/i8244.cpp @@ -564,25 +564,24 @@ 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) - if (colx & 0x80) - continue; + continue; } else m_priority_map[px] = index; - if (pixel) - { - // check if we collide with an already drawn source object - if (m_vdc.s.collision & colx) - m_collision_status |= 0x80; + // 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; - // check if an already drawn object would collide with us - if (m_vdc.s.collision & 0x80) - m_collision_status |= colx; + m_collision_map[px] |= 0x80; - m_collision_map[px] |= 0x80; + if (pixel) bitmap.pix(y, px) = color; - } } } } diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp index b30c72260bf..4b2de5275e2 100644 --- a/src/mame/drivers/odyssey2.cpp +++ b/src/mame/drivers/odyssey2.cpp @@ -60,7 +60,6 @@ TODO: (including transparent pixels) will cause glitches and instability, it can even overwrite the VDC color and pointer registers * gunfight: accidental usage, sometimes causes 1-frame glitches near bullet - * powerlrd: occurs at pink mountain on the right, it's not 1:1 identical on MAME * several homebrews by Rafael: precisely placed overlap to force character color to change to white, see for example Piggyback Planet and Mean Santa - 8245(PAL) video timing is not 100% accurate, though vtotal and htotal should |