First post, by superfury
Looking at the blanking affecting horizontal and vertical clocks, I see something strange.
The final range of vertical/horizontal blanking has some weird side effects? Since most, if not all, VGA modes have some extra space after horizontal retrace until a new scanline (from EGA/VGA pov) starts (indicated by horizontal total), there's a few clocks that are rendered on the next scanline instead of the same scanline? But the VGA spews out those clocks of the running (before horizontal retrace) scanline on the next scanline instead, with appropriate blanking if applied?
So that results in a scanline effectively rendering the following clocks (simple representation of character clocks) for the f)ront porch, b)ack porch and r)etrace outputs (some a)ctive display and b)lanking as well added for completeness)? Simplified ofc.
BBaaaaaaaaafffrrrrrr
bbAAAAAAAA...
The first B's belonging to the previous VGA scanline, the small b's being the back porch of said scanline and A's being the start of the new scanline (movable in EGA/VGA using the horizontal display skew adding overscan character clocks) before it.
Since the r clocks is breaking up the scanline on the monitor, the b clocks display the backporch not on the scanline it belongs to (which might be blanked for the scanline before blanking ends) or being the opposite (active instead of blanked) for the CRT scanline where the vertical blanking starts?
Does that happen on a real CRT as well? Or is there some unknown logic at play here?
Anyone knows something about this? The FreeVGA CRT example breaks down for example on this problem? Since scanlines display their back porch on the next scanline before display (from VGA pov).
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io