VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

When I look at the I/O for setting the bit it says:

	If clear system is in word mode. Addresses are rotated 1 position up
343 bringing either bit 13 or 15 into bit 0.

When I compare this to the other VGA documentation, it seems correct.

But when I look at the int10_modes.cpp code it's reversed (set is word address mode and cleared is byte address mode) with M_CGA2? So this means that data of mode 06h is written as in word mode (CGA compatible), but usually read as a normal EGA/VGA mode, taking every 2nd set of 8 pixels from the incorrect index. So instead of 0xC2, this needs to be 0xA2?

Doesn't this bit in int10_modes.cpp need to be reversed? Or is the comment incorrect (also all VGA manuals I can find atm)?

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

Reply 1 of 4, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

As I recall dosbox just cheats a bit internally with memory access with some internal video mode state and not all io bits are actually used.

Reply 2 of 4, by superfury

User metadata
Rank l33t++
Rank
l33t++

Won't that give problems with games relying on that bit to work correctly?

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

Reply 4 of 4, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

you should find more accurate emulation of word and dword bits in DOSBox-X, I've been making a lot of corrections to VGA memory model and raster emulation including one related to how the win95 boot logo saves and restores the screen.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.