Microsoft Windows NT 3.51 Compatibility

8 July 2018

Microsoft Windows NT 3.51 is very close (compatibility wise) to the original release of Windows 95. It is often the case that a program that works in Windows 95 will also be fine in NT. Sometimes there are barriers.

Error message - You need at least Windows 95 or Windows NT 4.0 to run this program.

These errors aren't generated by Windows. The programs are checking what version of Windows you are using, and exiting if it's too low. It makes sense to do this if it truly is incompatible, but my mind boggles at the programs that do work. Here are two examples.

Exhibit A: Interactive Atlas of GB v3

Error message - Windows 95 or later required.

This is what you get if you attempt to run this program in NT 3.51. Interestingly, it is also the same error you get in NT 4, 2000, XP and so on. All NT based versions of Windows are excluded. In Windows 2000 and above, you can use the compatibility tab and lie to the program about the version of Windows you are using. But as no such option exists in NT 3.51, we'll have to examine the program a bit.

Disassembly of the program file at the error message.

As you can see, this daft thing insists on Windows 9x only by checking the platform ID constant. The bodge is as easy as always jmping at 0042BB25. The modified program works flawlessly on NT (no point making a screenshot as it looks identical as on other platforms). Why would someone deliberately lock out NT?

Exhibit B: Paint Shop Pro 4

Error message - PSP4 requires a minimum of Windows 95 or NT 4. Please contact Jasc.

This program is a bit smarter as it checks the major version number is 4 or above. This permits both 95 and NT 4, but rejects Windows 3.1 (with Win32s) and NT 3. A quick change of the comparison logic from 4 to 3 allows NT 3 to have a try and... what do you know.

About dialog showing NT 3.51 SP5 as the platform PSP 4 is running on.

Almost everything works. You can make new images. You can embed and update images in other documents using OLE. All the filters and tools work. You can pass images to PSP 4 at the command line to open them. So what doesn't work? The file open and save as common control dialog boxes. These are part of the explorer shell in 95 and NT 4, but as they don't exist in NT 3 nothing happens when you try. (If you apply the experimental newshell to NT 3, it works.)

Jasc Software could've implemented the legacy dialogs for use when NT 3.51 was in use. However, I assume they decided that supporting it would be more effort than it was worth. There was a 32-bit version of Paint Shop Pro 3 available at the time that was officially supported.


Now that Microsoft Windows XP has been out of support for over 4 years, programs have dropped their support for it. If you attempt to run such a program on XP, you will probably get this error message:

Error message - program is not a valid Win32 application.

This is down to two of the fields in the program's header - MajorSubsystemVersion and MinorSubsystemVersion. Like the example with Paint Shop Pro above, if the version number of Windows is below that stated in the program, Windows won't even attempt to run it. Changing these headers to 5 and 1 respectively will allow you to try running it. However, all the exports have to be available!

Return to Blog Index