Skip to content

Commit

Permalink
Fix 3DA polling debug line to display green again, for 32bpp display
Browse files Browse the repository at this point in the history
  • Loading branch information
joncampbell123 committed Jan 17, 2019
1 parent 7fd73c6 commit e8d881d
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions src/hardware/vga_draw.cpp
Expand Up @@ -109,6 +109,16 @@ void memxor_greendotted_16bpp(uint16_t *d,unsigned int count,unsigned int line)
}
}

void memxor_greendotted_32bpp(uint32_t *d,unsigned int count,unsigned int line) {
static const uint32_t greenptrn[2] = { (0xFF << 8), 0 };
line &= 1;
count >>= 2;
while (count-- > 0) {
*d++ ^= greenptrn[line];
*d++ ^= greenptrn[line^1];
}
}

typedef Bit8u * (* VGA_Line_Handler)(Bitu vidstart, Bitu line);

static VGA_Line_Handler VGA_DrawLine;
Expand Down Expand Up @@ -2282,7 +2292,10 @@ static void VGA_DrawSingleLine(Bitu /*blah*/) {
vga_page_flip_occurred = false;
}
if (vga_3da_polled) {
memxor_greendotted_16bpp((uint16_t*)TempLine,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
if (vga.draw.bpp==32)
memxor_greendotted_32bpp((uint32_t*)TempLine,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
else
memxor_greendotted_16bpp((uint16_t*)TempLine,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
vga_3da_polled = false;
}
RENDER_DrawLine(TempLine);
Expand All @@ -2293,7 +2306,10 @@ static void VGA_DrawSingleLine(Bitu /*blah*/) {
vga_page_flip_occurred = false;
}
if (vga_3da_polled) {
memxor_greendotted_16bpp((uint16_t*)data,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
if (vga.draw.bpp==32)
memxor_greendotted_32bpp((uint32_t*)data,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
else
memxor_greendotted_16bpp((uint16_t*)data,(vga.draw.width>>1)*(vga.draw.bpp>>3),vga.draw.lines_done);
vga_3da_polled = false;
}
RENDER_DrawLine(data);
Expand Down

0 comments on commit e8d881d

Please sign in to comment.