mirror of
https://github.com/holub/mame
synced 2025-04-26 10:13:37 +03:00
rainbow: guess at vector mode behavior (nw)
This commit is contained in:
parent
b8b0774997
commit
9557c8bcc0
@ -2695,7 +2695,7 @@ READ16_MEMBER(rainbow_state::vram_r)
|
|||||||
|
|
||||||
return m_video_ram[ (offset & 0x7fff) + (0x8000 * readback_plane)];
|
return m_video_ram[ (offset & 0x7fff) + (0x8000 * readback_plane)];
|
||||||
}
|
}
|
||||||
return 0;
|
return 0xffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: Rainbow has separate registers for fore and background.
|
// NOTE: Rainbow has separate registers for fore and background.
|
||||||
@ -2709,16 +2709,6 @@ WRITE16_MEMBER(rainbow_state::vram_w)
|
|||||||
else
|
else
|
||||||
offset = ( m_GDC_SCROLL_BUFFER[ (offset & 0x1FC0) >> 6 ] << 6) | (offset & 0x3F);
|
offset = ( m_GDC_SCROLL_BUFFER[ (offset & 0x1FC0) >> 6 ] << 6) | (offset & 0x3F);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if(data & 0xff00)
|
|
||||||
{
|
|
||||||
data >>= 8;
|
|
||||||
offset += 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
data &= 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset &= 0xffff; // same as in VT240?
|
offset &= 0xffff; // same as in VT240?
|
||||||
uint16_t chr = data; // VT240 : uint8_t
|
uint16_t chr = data; // VT240 : uint8_t
|
||||||
@ -2778,7 +2768,7 @@ WRITE16_MEMBER(rainbow_state::vram_w)
|
|||||||
if(!(m_GDC_MODE_REGISTER & GDC_MODE_VECTOR)) // 0 : (NOT VECTOR MODE) Text Mode and Write Mask Batch
|
if(!(m_GDC_MODE_REGISTER & GDC_MODE_VECTOR)) // 0 : (NOT VECTOR MODE) Text Mode and Write Mask Batch
|
||||||
out = (out & m_GDC_WRITE_MASK) | (mem & ~m_GDC_WRITE_MASK); // // M_MASK (1st use)
|
out = (out & m_GDC_WRITE_MASK) | (mem & ~m_GDC_WRITE_MASK); // // M_MASK (1st use)
|
||||||
else
|
else
|
||||||
out = (out & data) | (mem & ~data); // VECTOR MODE !
|
out = (out & ~data) | (mem & data); // VECTOR MODE !
|
||||||
|
|
||||||
if(m_GDC_MODE_REGISTER & GDC_MODE_ENABLE_WRITES) // 0x10
|
if(m_GDC_MODE_REGISTER & GDC_MODE_ENABLE_WRITES) // 0x10
|
||||||
m_video_ram[(offset & 0xffff) + (0x8000 * i)] = out;
|
m_video_ram[(offset & 0xffff) + (0x8000 * i)] = out;
|
||||||
|
Loading…
Reference in New Issue
Block a user