mirror of
https://github.com/holub/mame
synced 2025-06-25 13:54:37 +03:00
video/pc_vga.cpp: fix Read Mode 1 target color for comparison
* fixes at least transparent pen sprite-like in ibm5150:lombrall & ibm5150:intsocch and missing text in ibm5150:pcglobe sets
This commit is contained in:
parent
5903b7d269
commit
f5fb38acf1
@ -2072,20 +2072,22 @@ uint8_t vga_device::mem_r(offs_t offset)
|
|||||||
|
|
||||||
if (vga.gc.read_mode)
|
if (vga.gc.read_mode)
|
||||||
{
|
{
|
||||||
uint8_t byte,layer;
|
// In Read Mode 1 latch is checked against this
|
||||||
uint8_t fill_latch;
|
// cfr. lombrall & intsocch where they RMW sprite-like objects
|
||||||
data=0;
|
// and anything outside this formula goes transparent.
|
||||||
|
const u8 target_color = (vga.gc.color_compare & vga.gc.color_dont_care);
|
||||||
|
data = 0;
|
||||||
|
|
||||||
for(byte=0;byte<8;byte++)
|
for(u8 byte = 0; byte < 8; byte++)
|
||||||
{
|
{
|
||||||
fill_latch = 0;
|
u8 fill_latch = 0;
|
||||||
for(layer=0;layer<4;layer++)
|
for(u8 layer = 0; layer < 4; layer++)
|
||||||
{
|
{
|
||||||
if(vga.gc.latch[layer] & 1 << byte)
|
if(vga.gc.latch[layer] & 1 << byte)
|
||||||
fill_latch |= 1 << layer;
|
fill_latch |= 1 << layer;
|
||||||
}
|
}
|
||||||
fill_latch &= vga.gc.color_dont_care;
|
fill_latch &= vga.gc.color_dont_care;
|
||||||
if(fill_latch == vga.gc.color_compare)
|
if(fill_latch == target_color)
|
||||||
data |= 1 << byte;
|
data |= 1 << byte;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user