Tuesday, August 30, 2011

How to get old 16-bit Windows games to work on 64-bit Windows?

Question

Trying to play some old Windows 95 games on Windows 7 64-bit, I'm getting the following error:

The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.

Trying to run the application in compatibility mode has no effect. I'm guessing these games somehow rely on 32-bit dlls which are missing from my system, and I would like to know if anyone else has encountered a similar problem and is able to give insight as to possible solutions or work-arounds.

Notes:

  • I've checked this question but it discusses system requirements and not actual application invocation.
  • The games in questions are Metal Marines and Fire Fight, but I'm sure many more might be affected.
  • The error message above is not game-specific, it comes directly from Windows itself.

Answer

It's actually quite likely that these games are relying on old 16-bit DLLs. A lot of early 32-bit software relied on old 16-bit DLLs for some functions, as they did the job, they weren't used in a performance critical part of the software and there was no need to look for 32-bit versions. (for example until fairly recently the install software was often 16-bit, so much so that Win7 actually detects that and silently replaces with it's own 64-bit version of the old DLL).

Have you looked at Windows 7's XP Mode? This runs an entire copy of 32-bit Windows XP within your Windows 7, letting old programs run within XP without the program knowing it's on a 64-bit Win7 machine at all, and as it's all integrated you will hardly notice that it's running in XP.

Windows 7's XP Mode: what it is, how it works, who it's for

No comments:

Post a Comment