omnispeak
omnispeak copied to clipboard
[DOS][EGA] Pages can end up overlapping after SVGA-compat scroll
Sometimes — I think when the screen is scrolling quickly downward and to the right — when the screen scrolls off video memory, the SVGA-compatibility relocation of one page can end up with it overlapping with another page. This results in the screen flashing between the two pages, which now show (probably offset) versions of each other.
I've had this happen on both real DOS/EGA (A 486DX2-66 with a Cirrus Logic cl-gd5428 SVGA card), and under DOSBox, but haven't been able to reproduce it reliably enough to be sure any given attempted fix works.
The original games seem to move the offset by FREEEGAMEM (0x10000 - 3*screensize). We've, to date, been moving them to fixed locations one or two screensizes away from the edge.
Note also that there's an inconsistency between the screen size and the buffer size. Hmm…