fix VGA port 3DAh to always set "vertical retrace" during vertical

retrace even if not blanking. some DOS demos program custom VGA modes
(incorrectly) that end up putting vertical retrace during active
display.

"Monolith" demo custom mode (320x590) works again.
This commit is contained in:
Jonathan Campbell
2016-10-21 09:22:56 -07:00
parent e2d9d36a5d
commit 2f3794464d

View File

@@ -43,10 +43,6 @@ Bitu vga_read_p3da(Bitu port,Bitu iolen) {
if (timeInFrame >= vga.draw.delay.vdend) {
retval |= 1; // vertical blanking
if (timeInFrame >= vga.draw.delay.vrstart &&
timeInFrame <= vga.draw.delay.vrend) {
retval |= 8; // vertical retrace
}
} else {
double timeInLine=fmod(timeInFrame,vga.draw.delay.htotal);
if (timeInLine >= vga.draw.delay.hblkstart &&
@@ -55,6 +51,11 @@ Bitu vga_read_p3da(Bitu port,Bitu iolen) {
}
}
if (timeInFrame >= vga.draw.delay.vrstart &&
timeInFrame <= vga.draw.delay.vrend) {
retval |= 8; // vertical retrace
}
vsync_poll_debug_notify();
return retval;
}