Compatibility Modes

Introduction

When Windows XP came out, it was the first Windows NT operating system for end users. This meant that a bunch of non-technical people were going to try to run old software from 98SE, ME, etc. that wouldn't have run on Win2k or NT4, etc. As such, Microsoft invented something called a "Compatibility Mode". This is a set of changes that modify how a program runs by presenting it with a different environment closer to a particular OS. On each OS since XP you will see a tab for this when you go into the properties for a shortcut to a program, or for a program itself. Keep in mind that installers are programs, too - if a game/app refuses to install because it doesn't understand that XP is newer than 98SE, etc., give these options a try.

The main thing here is the dropdown for compatibility mode itself. This presents you with a list of operating systems older than the one you are on. Vista has an XP compatibility mode, Windows 7 has a Vista mode and an XP mode, and so on. It's a bit of a crapshoot as to what mode will work for what software. The first thing to try is the OS the software was released for - what it lists in it's System Requirements for whatever version you may have (in the case of major releases, patches and games generally do not change system requirements). If that does not work, try slightly newer things. Since XP was designed to be fairly compatible with 9x programs, it is often a good choice when on Vista/7/etc. as that environment bridges the gap to a degree, and will work sometimes when 98SE compatibility does not, etc.

Windows 2000 does not ship with a compatibilty mode setup, but one can be installed. It was included with SP2, but not enabled by default. The same applies to 2000 Server (though it needs SP3 I believe). Ensure you are running at least SP2, and then run this command:

  • regsvr32 %systemroot%\apppatch\slayerui.dll

These options are invaluable and often solve simple compatibility problems. Not all will be solved that easily, but you probably noticed that this tab contains more options (unless you are on Win2k, in which case it does not).

Options

  • Run in 256 colors
    • This option will scale down the color palette to 256 color mode - this option exists for older games, as there was a time where this was the highest-end mode, and a few programs don't understand newer modes or ask the OS to switch to 256 colors for them.
  • Run in 640x480 screen resolution
    • This option does what it says - it switches to 640x480 for the duration of the program's execution. This, again, is designed for older games. Some of them don't anticipate higher modes, use 9x-specific ways to switch them, and so on. This can bypass that issue. You could do this yourself manually (and the 256 one too in many cases - though not all cards/drivers put it in the list), but this saves you the hassle of doing and undoing this whenever you run a program that needs it.
  • Disable visual themes
    • This option disables the theming service while the program runs - this leaves XP in classic mode. This option is typically not useful at all, particularly for games. You may, however, run into the odd application that needs it.
  • Turn off advanced text services for this program
    • This option is for users who have Windows set up with multiple languages, where one of these uses an IME (Korean, Japanese, Chinese, Arabic, anything with a complex alphabet with combining characters/etc.). If you are one of those people, you may want to give this a shot, but note that you will then only be able to type in English (or other alphabetic languages like Russian, etc.).

That covers all of the options in the Windows XP compatibility tab, but in Vista and above there are new options related to new features in these operating systems.

  • Disable desktop composition
    • This option disables DWM/Aero, the 3D-accelerated GUI that most NT6-based operating systems ship with. Some programs will not work with it, and this will disable it for them - simple as that. Some games/applications will also run faster with this off, including modern ones, depending on the program and the system you are running it on.
  • Disable display scaling on high DPI settings
    • This will disable the scaling of UI elements when you raise your DPI. This will only affect applications (and very old games that do not use DirectX/3D/fullscreen/DirectDraw/etc.), and in most cases will not be useful.
  • Run this program as an administrator
    • This option will do what it says. It will run the program in the context of an administrator, allowing it full access to your system. If UAC is on, this means it will prompt you when you run it. On XP, many users run their system as the Administrator, and on 9x all users always had full access to the system. Most games will not require this setting, but some will. Applications that modify the system will need it, but generally speaking you don't want to run incompatible programs on a newer OS. If they are designed for XP and you want to run them on Vista, etc., this is usually OK.

This is the "first line of defense" or "plan A" for compatibility issues. Very simple, but very effective in most cases. It's when this does not work, or does not fully work, that you have to get into more technical solutions.