Reply 180 of 2409, by TheGreatCodeholio
- Rank
- Oldbie
[quote="truth5678"]I guess that means that the page faults are related to the memory mapped by PCI?
That's not what I'm saying. I'm saying that some drivers in Windows 95 and 98 that could be used with DOSBox are written for ISA cards that use bank-switching. They fake a linear framebuffer for Win95 by hooking the page fault, and if the page fault happens in a specific linear memory address that corresponds to the fake "framebuffer", they switch the read/write banks of the card and then change which page is "present" in the LFB to permit Win95 to draw on the screen. In that way, Windows 95's GDI rendering engine can always assume a linear framebuffer even if the SVGA card is not really a linear framebuffer. I was saying that by using the VBEMP driver and machine=svga_s3, we use the VESA BIOS to set up a linear framebuffer which is then given to Win95, and no page faults are needed to fake a linear framebuffer.
I don't know if the Win9x stock S3 driver is using any of the same bank switching tricks. I do know however that if you want to see how well DOSBox would handle such a trick, that you can set machine=svga_et4000 and then force Win95 to install the stock Tseng ET4000 driver. How well it works is very dependent on the CPU core. On most of the cores it flat out doesn't work and Win95 ends up drawing everything on the top of the screen (no bank switching is occurring) if you try that.