Windows is all about backwards compatibility, allowing people — especially businesses — to keep using their important applications on new versions of Windows. But there are limits. The older a program is, the more likely it will break.
You should generally stay away from old software. Avoid picking up software CDs designed for Windows 95 at garage sales. Ancient software that doesn’t work any longer should probably just be upgraded to a modern, compatible version.
Software Doesn’t Last Like Media Does
Twenty-year-old audio CDs will play fine on modern CD players, records will play fine on modern record players, and DVD videos will always play on devices with DVD-reading hardware. But that ancient software CD made eighteen years ago for Windows 95 is different.
Audio CDs, video DVDs, even records — they’re all standard media formats. In other words, an audio CD has audio data on it. The computer interprets this audio data on its own. That’s why an audio CD manufactured in 1980 will be playable on a Windows 8 PC, a Mac, or any other device — the computer knows how to interpret the audio CD and takes care of this on its own. The audio CD doesn’t need to know about the operating system or device it’s playing on.
However, software is different. Software isn’t something standard that all computers know how to interpret — software is code that runs on your computer. It’s up to the software to do what it needs to do. Software written for Windows 3.1 or Windows 95 will likely be extremely confused if it finds itself running on Windows 7 or Windows 8. It will look for files that no longer exist and may refuse to even run in this unfamiliar environment.
Windows is famous for its backwards compatibility and tries to help older programs run as best it can, but there’s a limit to even what Windows can do. It’s impressive that modern versions of Windows can even run Windows 95 programs at all, given that the Windows 9x series was based on DOS and Windows XP and later versions of Windows are based on the Windows NT kernel — they’re completely different operating systems under the hood.
Why Programs May Not Run
We’ve already covered the high-level explanation, but here are some low-level details that could prevent programs from running properly:
- Programs Refuse to Run: Some programs may refuse to install if they notice they’re being run on a version of Windows they don’t know about.
- 16-bit Programs: 32-bit versions of Windows contain a 16-bit emulation environment that allows old Windows 3.1 software to run. This was removed from 64-bit versions of Windows, so those old Windows 3.1 programs won’t run at all.
- DOS Software: Since Windows XP, consumer versions of Windows are no longer built on top of DOS. Complicated DOS software and games that depended on real mode DOS won’t be able to run natively on modern versions of Windows. The Command Prompt window is an incomplete compatibility feature, not a full DOS system.
- Old Library Dependencies: Some programs may have depended on ancient libraries that are no longer included in Windows or may have depended on other old programs that also don’t work properly on new versions of Windows.
- Security Issues: Old programs aren’t used to modern Windows security features and may not play nice with limited user accounts and UAC. Windows tries to trick old programs into running under limited user accounts, but this doesn’t always fix every problem.
This isn’t an exhaustive list, but it should help you understand some of the issues involved. Programs are designed to run on current versions of Windows, not versions of Windows that may exist 20 years in the future. Breakage should be expected when running ancient Windows applications on modern versions of Windows. As Microsoft and other operating system vendors improve their operating systems, old programs are gradually left behind unless they’re updated.
How to Run Older Programs
While you should avoid very old software if at all possible, sometimes you just can’t. You may have a business-critical application you need to run or may want to play an old PC game. There are ways you can run these programs anyway.
Use Windows’ Compatibility Settings: Windows has built-in compatibility mode settings that can help get programs working. Right-click a program’s shortcut, select Properties, and click the Compatibility tab. You can choose the version of Windows that the program run under — Windows will try to trick that program into thinking it’s running on the old version of Windows. This won’t always allow every old program to work, but it’s worth a shot. There’s even a Program Compatibility Troubleshooter that will attempt to automatically find the correct compatibility mode settings for your program.
Run Old Software in a Virtual Machine: Rather than try to make your old software run on a modern version of Windows, you can install a virtualized copy of an old version of Windows and run the software in there. For example, if you had an application that ran on Windows XP but doesn’t run on Windows 7 or 8, you can use a Windows XP virtual machine to run that program. If you have an old game that ran under DOS, you can install it in DOSBox. This will work fine for most programs, unless they require direct access to hardware devices — for example, an ancient program that interfaced with a printer over a serial port won’t work. However, this is much less convenient than installing the program normally.
Troubleshoot PC Games: PC games sit somewhere between media and software. Just as you might want to watch a movie from 20 years ago, you might want to play a game from 20 years ago. However, games are software and playing a game from 20 years ago would be like trying to run a program from 20 years ago — something that’s to be avoided if at all possible. The tricks above may help you run old games, but we’ve also covered other ways to get old PC games working properly.
Research, Research, Research: If none of these tricks work — or you’re dead-set on getting the program to install on your current version of Windows instead of in a virtual machine — you may have to do some research. Perform Google searches for the name of the program and your current version of Windows, search for any error messages you see, and so on — this may be a painstaking process that requires you fix problem after problem, but the information may be out there if you’re trying to install a popular program. The tedious work involved here means it is often a good idea to leave an old program behind and upgrade, if possible.
In general, you should try to avoid older software that may not work properly. Stick with reasonably modern, up-to-date software. Windows software CDs aren’t like audio CDs — there’s no guarantee they’ll work properly with modern versions of Windows and new hardware.
Chris Hoffman is a technology writer and all-around computer geek. He's as at home using the Linux terminal as he is digging into the Windows registry. Connect with him on Google+.
- Published 09/24/13