summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit401e9f670a906ac0cfe48bfa20ded143bb17ced0 (patch)
tree209abdd172b2ab16e992722869ae19b3a979a689
parent9868d8322f99f9a495cbbd39ddc5a7740f2d8e2e (diff)
i8244: fix problem with major system overlap
-rw-r--r--src/devices/video/i8244.cpp23
-rw-r--r--src/mame/drivers/odyssey2.cpp1
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