First post, by vladr
- Rank
- Oldbie
From Simon Hradecky:
Hello, […]
Hello,
you may perhaps have heard of "Airline Simulator 2", which is a flight
simulator still based on DOS, using 800*600 resolution for display.Ever since Windows XP was introduced, there was a problem however. Whenever
any VESA call was made to activate that graphics mode, the monitor went to
sleep, as the pixel rate could never be set and therefore the frequencies
for horizontal and vertical synchronisation went too low.I have now identified the problem, which lies within vga.sys. Depending on
how vga.sys determines the graphics board capabilities (based on very
outdated chipset infos!) it either goes to a full vesa implementation and
provides full access to all I/O ports of the vga hardware. However, for
example with current Nvidia cards, vga.sys determines that this vga
hardware is just a minimally compatible hardware and traps I/O ports 3C2H,
3C4H and 3C5H, effectively disabling any reasonable work and especially
setting the pixel frequency - result see above.With a kernel debugger I have now managed to verify this issue and manually
set the I/O Port information in the TSS, which makes AS2 work instantly.Instead of doing another garbage on my own and implementing a driver, which
should manipulate the TSS's i/o emulation, would it be possible for you to
provide an update to VDMSound instantly - all what is needed: if VESA
support is enabled, your driver should - in ring 0 - find the vga.sys
driver, search for a data string in there that reads (all in hex):c2 03 00 00 00 00 00 00 01 00 00 00 01 00 01 00
c4 03 00 00 00 00 00 00 02 00 00 00 01 00 01 00There is no possibility to confuse that string of 32 bytes actually. Two
bytes need to be changed, so that the memory then reads:c2 03 00 00 00 00 00 00 01 00 00 00 01 01 01 00
c4 03 00 00 00 00 00 00 02 00 00 00 01 01 01 00This modification will prompt vga.sys to no longer trap the ports 3c2, 3c4
and 3c5, and hence the VESA BIOS will work properly. I suppose, that fix
will also solve a lot of related issues ...With best regards
Simon Hradecky