Reason behind Dos compatibility mode performance's advantage

BlackSilver

Newcomer
I was remembering my days of playing Grand Prix 2 under win95 or 98. The game executed considerably better under the compatibility mode of these two Os. Not monstrously faster, but considerably. It was about fifteen years since I last played it under these systems, but I would guess 15-20% faster, maybe somewhat more. The question is....... why? What the compatibility mode offered that the "real" mode didn't offer?. I know you had direct access to many hardware features and I imagine that you are taken away one layer of abstraction, making possible to do many things faster, but if that it is the case, would like to know in greater details how it is done.
 
I was remembering my days of playing Grand Prix 2 under win95 or 98. The game executed considerably better under the compatibility mode of these two Os. Not monstrously faster, but considerably. It was about fifteen years since I last played it under these systems, but I would guess 15-20% faster, maybe somewhat more. The question is....... why? What the compatibility mode offered that the "real" mode didn't offer?. I know you had direct access to many hardware features and I imagine that you are taken away one layer of abstraction, making possible to do many things faster, but if that it is the case, would like to know in greater details how it is done.
my hunch, which isn't more than that, is that Dos was integral part of Windows 95 and 98, the core of the OS, residing in the 16 bit area, and in compatibility mode the game accessed that area as if it were a Dos game. (ini files were still autoexec.bat and config.sys in W95 and W98, iirc)

It was when Windows 2000 was released when Dos was completely removed from the core OS..
 
my hunch, which isn't more than that, is that Dos was integral part of Windows 95 and 98, the core of the OS, residing in the 16 bit area, and in compatibility mode the game accessed that area as if it were a Dos game. (ini files were still autoexec.bat and config.sys in W95 and W98, iirc)

Sure, but what kind of performance advantage can a dos game have? That's my doubt.
 
my hunch, which isn't more than that, is that Dos was integral part of Windows 95 and 98, the core of the OS, residing in the 16 bit area, and in compatibility mode the game accessed that area as if it were a Dos game. (ini files were still autoexec.bat and config.sys in W95 and W98, iirc)

It was when Windows 2000 was released when Dos was completely removed from the core OS..

Win9x was an OS that was based on DOS. Windows 2000 was not DOS based and didn't include DOS emulation because none of the WinNT OSes included DOS emulation. Windows 2000 existed side by side with WinME (basically another Win9x just as Windows 2000 was another WinNT).

Basically for Windows you had the following lines of OSes
  1. Windows 1.x-3.x - ran on top of the DOS environment.
  2. Win9x (includes and ends with WinME) - Ran in its own OS environment based on DOS and still offered native DOS capability albeit with a bit of overhead from Win9x.
  3. WinNT (includes Windows 2000 and all Windows OSes after WinME/2000) - Ran in its own OS environment with no basis in DOS and does not include native DOS emulation (I can't remember if early NT 3.x or 4.x had some form of DOS emulation).
OS/2 came the closest, IIRC, to offering a native DOS experience (in terms of speed) when a DOS application was launched from within the OS (OS/2, Win9x). It's one of many reasons that I still preferred OS/2 over Win9x when running DOS games.

DOS did not run faster in Win9x than in native DOS. What many people remember is more likely that they stopped running DOS natively after a point as machines got fast enough to offer acceptable performance for DOS through Windows. With faster machines it would be inevitable that their experience with DOS applications would be faster than what they remembered from the last time they ran a DOS application in a native DOS environment.

Another potential for perceived greater performance may be affected if DOS environment variables were not set to correctly take full advantage of the hardware in .bat and .cmd files in a native DOS environment. IE - if environment variables weren't set to free enough base memory and enable extended memory, an application could be adversely affected by having less memory available than it otherwise would have. As well IRQ and DMA conflicts could impact the performance of an application cause it to operate slowly, erratically, or not at all.

Win9x went a huge way towards making both games (especially when DirectX matured) as well as computing in general far more open to the general public.

Regards,
SB
 
Last edited:
Win9x was an OS that was based on DOS. Windows 2000 was not DOS based and didn't include DOS emulation because none of the WinNT OSes included DOS emulation. Windows 2000 existed side by side with WinME (basically another Win9x just as Windows 2000 was another WinNT).

WinNT did include DOS EMULATION. What it did not have was DOS WITHOUT emulation.

On win9x you could either
1) run pure DOS, about going to windows while booting, or make starting the program shut down windows for you "compability mode".
2) run emulated DOS, just run DOS program on top of windows.
 
Back
Top