mirror of
https://github.com/holub/mame
synced 2025-05-24 23:05:32 +03:00
Fixed a bug with VGA mask line compare, nw
This commit is contained in:
parent
f44cec2da5
commit
65c940ba97
@ -1107,15 +1107,19 @@ static void vga_vh_vga(bitmap_t &bitmap)
|
|||||||
{
|
{
|
||||||
int pos, line, column, c, addr, curr_addr;
|
int pos, line, column, c, addr, curr_addr;
|
||||||
UINT16 *bitmapline;
|
UINT16 *bitmapline;
|
||||||
|
UINT16 mask_comp;
|
||||||
|
|
||||||
|
/* line compare is screen sensitive */
|
||||||
|
mask_comp = 0xff | (LINES & 0x300);
|
||||||
|
|
||||||
curr_addr = 0;
|
curr_addr = 0;
|
||||||
if(vga.sequencer.data[4] & 0x08)
|
if(vga.sequencer.data[4] & 0x08)
|
||||||
{
|
{
|
||||||
for (addr = VGA_START_ADDRESS, line=0; line<LINES; line++, addr+=VGA_LINE_LENGTH, curr_addr+=VGA_LINE_LENGTH)
|
for (addr = VGA_START_ADDRESS, line=0; line<LINES; line++, addr+=VGA_LINE_LENGTH, curr_addr+=VGA_LINE_LENGTH)
|
||||||
{
|
{
|
||||||
if(line < (vga.line_compare & 0x3ff))
|
if(line < (vga.line_compare & mask_comp))
|
||||||
curr_addr = addr;
|
curr_addr = addr;
|
||||||
if(line == (vga.line_compare & 0x3ff))
|
if(line == (vga.line_compare & mask_comp))
|
||||||
curr_addr = 0;
|
curr_addr = 0;
|
||||||
bitmapline = &bitmap.pix16(line);
|
bitmapline = &bitmap.pix16(line);
|
||||||
addr %= vga.svga_intf.vram_size;
|
addr %= vga.svga_intf.vram_size;
|
||||||
@ -1138,9 +1142,9 @@ static void vga_vh_vga(bitmap_t &bitmap)
|
|||||||
{
|
{
|
||||||
for (addr = VGA_START_ADDRESS, line=0; line<LINES; line++, addr+=VGA_LINE_LENGTH/4, curr_addr+=VGA_LINE_LENGTH/4)
|
for (addr = VGA_START_ADDRESS, line=0; line<LINES; line++, addr+=VGA_LINE_LENGTH/4, curr_addr+=VGA_LINE_LENGTH/4)
|
||||||
{
|
{
|
||||||
if(line < (vga.line_compare & 0x3ff))
|
if(line < (vga.line_compare & mask_comp))
|
||||||
curr_addr = addr;
|
curr_addr = addr;
|
||||||
if(line == (vga.line_compare & 0x3ff))
|
if(line == (vga.line_compare & mask_comp))
|
||||||
curr_addr = 0;
|
curr_addr = 0;
|
||||||
bitmapline = &bitmap.pix16(line);
|
bitmapline = &bitmap.pix16(line);
|
||||||
addr %= vga.svga_intf.vram_size;
|
addr %= vga.svga_intf.vram_size;
|
||||||
|
Loading…
Reference in New Issue
Block a user