VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've noticed (when using the int10_modes.cpp code) in my own emulation of the VGA, that for some reason the switch to modes 4/5 leaves the high display planes (planes 2/3) untouched. When switching from text mode, which uses plane 2 for character fonts, or a graphics mode using 4 planes (16 color planar modes), the high 2 planes are filled with junk, corrupting the display memory for mode 4/5 when displayed on a real VGA (maybe also from perspective of an OS reading those planes).

There may be 2 fixes to this:
1. Make the VRAM clear planes 2/3 too, instead of just plane 0/1.
2. Make the attribute controller ignore plane 2/3 by setting the color plane enable register of the attribute controller to 0x3 instead of 0xF, which masks off the high planes.

Since the 2nd option migh affect software trying to use the high planes for 16 color modes, I'd suggest using the first option.

Any thoughts?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io