A quick guide to the Microsoft Compatibility administrator and how it helps to run those older legacy games.
This is based on my limited experience with Compatibility administrator, so if there's something unclear, confusing or just plain wrong, please let me know.
What is it?
It is a serious professional tool meant to help business run their existing software on a Windows 10 platform, so it can seem a bit daunting if you've never used it before.
There are two, Compatibility administrators named (32 bit) and (64 bit). The 32/64 bit part of the name refers to the software/game to create the fix for. For example, the Windows versions of Jane's AH-64D Longbow are 32 bit games, so we would use the Compatibility administrator (32 bit).
It does NOTÂ refer to the 32/64-bit platform of Windows, Windows 10 being a 64 bit OS. When you've downloaded apps in the past, if there was a 32/64 bit choice, you've probably picked the 64 bit version.
It's a confusing way to name the Compatibility administrators, if you've never used them before.
Terminology
The individual fixes are sometimes called shims, from Wikipedia:
The Microsoft Windows Application Compatibility Toolkit (ACT) uses the term to mean backward compatible libraries. Shims simulate the behavior of older versions of Windows for legacy applications that rely on incorrect or deprecated functionality, or correct the way in which poorly written applications call unchanged APIs
The ACT was replaced by the Microsoft Assessment and deployment kit (ADK).
Installing
Download and install the Microsoft Assessment and deployment kit (ADK). This installs the Compatibility administrator apps. If you want to read up on the ADK and Compatibility administrator, take a look at the documentation.
A brief tour
There are 4 main sections shown in the left hand panel:
System Database
A catalogue of compatibility modes and fixes. The most interesting part of the catalogue are the Applications. There are thousands of pre-configured application fixes and there are quite a few games listed, so it looks like someone at Microsoft understood the importance of making sure our older games still ran on Windows 10!
Installed Databases
This is a list of the manually applied compatibility fixes. If you manually create a compatibility fix and install it, it will appear in this list.
Per User Compatibility Settings
This is a list of automatically applied compatibility fixes, ordered by username.
The first time you run an older app/game and quit, you may have seen Windows display a dialog box saying something like 'Compatibility fixes have been applied'. This only happens the first time you run the software and you won't see the dialog box again, and it's pretty easy to forget about.
After running the software, Windows has trawled the System Database, found your software, applied the fixes and stored them. The next time you run the game/app it'll quietly apply these fixes.
If you list the fixes, in this section, you'll probably be surprised by just how many are being applied! All of this has been happening behind the scenes and now it's visible with the Compatibility administrator!
Custom Databases
Each time you start the Compatibility administrator you'll see a new untitled database. This can be thought of as your workspace for creating new fixes. None of the other sections are editable, just this one.
Once you create a fix in the Custom Databases section and install it, it will appear in the Installed Databases section.
Previous fixes
As a retro sim fan, (or retro gamer in general) you may have already used Compatibility fixes, if you've downloaded fixes created by others, e.g. some nGlide patches use a sdb file.
Compatibility fixes are saved as a AppCompat Database (.sdb) file. They are normally supplied with a couple of batch files, to install/uninstall the fix without the need for the Compatibility administrator:
PatchInstall.bat (or similar), which runs a utility to install the sdb file.
PatchUninstall.bat (or similar), which runs the same utility with an uninstall option on the sdb file.
You can see what you may have already installed in the past, in the Installed Databases section.
Creating a fix: an example
In this example the following fixes/shims will be applied to the Longbow Gold executable, libwin.exe:
EmulateCreateFileMapping
GlobalMemoryStatusLie
IgnoreException
Go to the Custom Databases, highlight the New Database and click on the Fix icon, to bring up the first fix dialog box. Complete the text fields (the vendor is optional) and click next.
In this example we don't want to specify any compatibility modes, so click next to skip.
In the next dialog, check the boxes of the 3 fixes we want to use (it's a big list of 437 entries but they are listed alphabetically) and click next.
The matching dialog, is used to match the executable to the fix. It'll use the executable filename by default, but if there were multiple versions with the same name, you can add further criteria (like a checksum) to pick that exact version. You can also add files so it will check for the existence of additional files in the same location (with their own optional criteria). You can also Auto-Generate a set of criteria.
Adding additional criteria allows you to create a specific portable fix that 'should' work on any Windows 10 machine with Longbow Gold, as the criteria should be the same on every machine. Depending on the criteria chosen, it 'should' allow it to match on Longbow Gold only, while leaving other versions, e.g. Longbow Anthology unaffected.
Click finish and the fix is complete.
Now you need to highlight and save the New Database, give it a better name e.g. Longbow Gold and you'll get the save dialog box. Pick a filename to save it as, and a location to save it to, it normally defaults to the game install folder and save. The fix is saved as a AppCompat Database (.sdb) file.
Now all you need to do is right click on the custom database and install it. The fix will appear in the Installed Databases section. Job done!
Why do we save/install/uninstall a database?
Remember the Compatibility administrator is a professional tool for use in business. In the example we have created a single fix for a single game, added it to a database and installed it.
However a business using lots of apps may want to create multiple fixes across multiple apps, add them all to the same sdb database and install that database once, fixing all their apps at the same time.
How do you know how to fix a game?
The short answer is, through the kindness of strangers. I'm not a Windows developer or expert in the Windows OS internals. However, there are some amazing experts out there helping to get some great games running as well as possible on modern hardware.
The VOGONS forum is one such place, game specific Discord servers, the famous PC Gaming Wiki another. The forums of specific games or game genre websites (combatsim.com) yet another.
Populated by amazing people willing to use their skills to get games running and share their knowledge with the rest of us, I for one, am very appreciative of the help they provide.
Comments