On 10/2/2023 5:13 PM, Paul Dufresne via Freedos-user wrote:
I discovered that if I comment out the two while (in vga.c):
void wait_vsync()
{
    //while (inportb(0x3da) & 8);
    //while (!(inportb(0x3da) & 8));
}

Then the game under dosbox run just like under VirtualBox.

I have tried all the available options for emulated graphics "card" under VirtualBox... no change.

So... I guess what I/we need, is a more emulation friendly wait_vsync() function.

That is the VSync check that was required on true CGA cards to avoid flickering/"snow" when writing anything to the screen.

This is something that is not required on any monochrome adapter (MDA, Hercules) or on any video cards EGA and newer. Ideally (it does so in my screen writing libraries), this wait loop should just be executed if indeed a CGA adapter, and none other, is installed in a system. I am not sure if any VM, be it DOSBOX or VirtualBox is actually emulating this very specific hardware issue and access to that specific 6845 port...


Ralf
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to