You have a piece of software you rely on — maybe a specialized tool from years ago, an old game with no modern equivalent, or a business application the company no longer updates. You upgrade to Windows 11 and suddenly it refuses to open, crashes immediately, or displays a compatibility error. This is more common than most people realise, and it's almost never a dead end. Windows has more compatibility tools than most users know about — and when those don't work, there are free third-party solutions that handle even the most stubborn legacy software. This guide covers every method, from the easiest one-minute fix to the nuclear option that works for virtually anything.
Running old software on a new version of Windows is a solvable problem in the vast majority of cases. The key is knowing which tool to reach for depending on how old the software is and exactly what's failing. This guide walks you through every method in order of simplicity — start at the top, work down until your software runs.
6+
Different methods Windows provides for running legacy software
95%
Of old software can be made to run with the right approach
1min
Is all it takes to fix most compatibility issues using Compatibility Mode
Why Old Software Breaks on New Windows Versions
Old software breaks on new Windows versions for several distinct reasons — and knowing which one applies to your situation points you directly to the right fix. The most common causes are: Windows removed a system component the old software depended on (like 16-bit application support), the software was designed for a specific Windows API version that has since changed, security improvements in newer Windows versions block the software's access to system resources, the software requires administrator privileges it no longer gets automatically, or hardware drivers the software relied on no longer exist. Most of these problems have specific, targeted fixes. The compatibility troubleshooter often solves them automatically. But for the cases it can't handle, the methods further in this guide will.
Try first — 1 minuteMethod 1: Compatibility Mode
Tell Windows to pretend it's an older version. Built-in, free, works for most software from Windows XP through Windows 8 era.
Automated — let Windows diagnoseMethod 2: Compatibility Troubleshooter
Windows automatically tests different compatibility settings and finds what works. Best starting point for software that gives an error message on launch.
For very old softwareMethod 3: Install missing components
Some old software needs .NET Framework 3.5, Visual C++ Redistributables, or DirectX versions that aren't installed by default on Windows 11.
For 16-bit and DOS softwareMethod 4: DOSBox or virtual machine
For truly ancient software — DOS programs, 16-bit Windows apps — DOSBox or a full Windows XP virtual machine is the only reliable solution.
Most powerful optionMethod 5: Windows Sandbox / Hyper-V VM
Run an isolated Windows environment inside Windows 11. Perfect for software that needs a completely different Windows version to function correctly.
Last resortMethod 6: Wine / CrossOver
Run Windows software through a compatibility layer — useful for cross-platform scenarios or when all other methods fail for specific older programs.
Method 1 — Compatibility Mode (Start Here for Most Old Software)
Compatibility Mode is Windows' built-in feature that makes the operating system present itself to a specific application as if it were an older version — Windows XP, Vista, 7, 8, or 8.1. The software thinks it's running on the OS it was designed for, which resolves most compatibility issues caused by API changes between Windows versions. This fix takes under a minute and works for the majority of software from the Windows XP through Windows 8 era. It's always the right starting point before trying anything more involved.
1
Find the software's .exe file or shortcut
Navigate to the software's installation folder — usually in C:\Program Files or C:\Program Files (x86) — and find the main .exe file. Or right-click the desktop shortcut if you have one. Do not use a Windows Store shortcut — Compatibility Mode only works on traditional .exe applications.
2
Open Properties → Compatibility tab
Right-click the .exe file or shortcut and select "Properties." Click the "Compatibility" tab at the top of the Properties window. This tab contains all compatibility settings for this specific application.
3
Under the Compatibility mode section, tick the checkbox labelled "Run this program in compatibility mode for." A dropdown menu will appear with Windows version options. Select the Windows version the software was designed for — if you're not sure, start with "Windows 7" as it covers the widest range of older software.
4
Enable additional compatibility options if needed
In the Settings section below, try enabling "Run this program as an administrator" — many old programs need elevated permissions they used to get automatically. Also try "Disable fullscreen optimisations" for older games that have display issues. "Override high DPI scaling behaviour" helps with apps that appear tiny or blurry on high-resolution screens.
5
Click Apply → OK and test the software
Click Apply then OK to save settings. Double-click the .exe or shortcut to open the software. If it still doesn't work, go back to Properties → Compatibility and try a different Windows version from the dropdown. Work through Windows XP SP3 → Windows Vista → Windows 7 → Windows 8 until you find one that works.
Compatibility Mode for All Users
In the Compatibility tab, there's a button labelled "Change settings for all users." If you click this and apply Compatibility Mode there instead, the settings apply to every user account on the PC — not just yours. This is useful on shared PCs or when the software is launched by another process rather than directly by you.
Method 2 — Program Compatibility Troubleshooter (Automated Fix)
The Program Compatibility Troubleshooter does what Compatibility Mode does — but automatically. It runs the software multiple times with different compatibility settings, detects what fails, and applies fixes without you having to guess which Windows version to select. Use this when you're not sure what compatibility settings to apply or when manually trying different modes hasn't worked. It also helps with issues beyond just Windows version compatibility — such as colour depth requirements, screen resolution problems, and privilege issues.
1
Right-click the .exe or shortcut and select "Troubleshoot compatibility"
Right-click the software's .exe file or shortcut. In the context menu, select "Troubleshoot compatibility." Windows will open the Program Compatibility Troubleshooter and begin analysing the program.
2
Choose "Try recommended settings" or "Troubleshoot program"
Select "Try recommended settings" if you want Windows to automatically apply its best guess. Select "Troubleshoot program" if you want to specify what's going wrong — such as "The program worked in an earlier version of Windows" or "The program opens but doesn't display correctly."
3
Test the program when prompted
The troubleshooter will ask you to test the program with the applied settings. Click "Test the program." The software will launch — test it properly to see if it's working correctly.
4
Confirm if the fix worked or try different settings
Return to the troubleshooter window and click "Yes, save these settings for this program" if the software worked correctly. If not, click "No, try again using different settings" and the troubleshooter will try another combination. If nothing works, click "No, report the problem to Microsoft and check online for a solution."
Method 3 — Install Missing Legacy Components
Windows 11 ships without several components that older software commonly depends on. If your old software crashes instantly, shows a missing .dll error, or gives a runtime error on launch, installing the missing component usually fixes it immediately. The three most commonly needed legacy components are .NET Framework 3.5 (required by many pre-2015 applications), older Visual C++ Redistributable versions, and DirectX End-User Runtime Web Installer for older games. These are all free to install from Microsoft's official website and installing them does not affect your existing software in any negative way.
1
Install .NET Framework 3.5 (covers 2.0 and 3.0 too)
Press Windows key + I → System → Optional Features → More Windows Features. Scroll down and tick ".NET Framework 3.5 (includes .NET 2.0 and 3.0)" then click OK. Windows will download and install it automatically. This one component fixes a huge range of older software that refuses to launch.
2
Install legacy Visual C++ Redistributables
Go to Microsoft's official website and search "Visual C++ Redistributable downloads." Download and install both x86 and x64 versions of: 2005, 2008, 2010, 2012, 2013, and 2015-2022. Install them all — they don't conflict with each other and together they cover virtually every piece of software that needs a C++ runtime.
3
Install DirectX End-User Runtime for old games
Many older games use DirectX 9 components that Windows 11 doesn't ship with. Go to Microsoft's website and search "DirectX End-User Runtime Web Installer." Download and run it — it installs legacy DirectX components (d3dx9, d3dx10, etc.) that older games need. This fixes the majority of old game launch issues.
4
Restart and test the software
After installing any missing components, always restart your PC before testing. The newly installed libraries need to be registered with Windows — a restart ensures all components are properly initialised and available to the old software.
Method 4 — DOSBox for DOS and 16-bit Software
Windows 11 (64-bit) cannot run 16-bit applications at all — this is a hard architectural limitation with no workaround within Windows itself. If your old software was built for DOS or for 16-bit Windows (Windows 3.1 era), the only way to run it is through an emulator. DOSBox is the gold standard for this — it's a free, open-source DOS emulator that can run the vast majority of DOS programs and old 16-bit software with remarkable accuracy. It's the tool of choice for preserving and running vintage software and games and is actively maintained by a dedicated community. Download it from dosbox.com.
1
Download and install DOSBox
Go to dosbox.com and download the latest version for Windows. Install it normally. For a more user-friendly experience, also consider DOSBox-X which offers enhanced features, or D-Fend Reloaded — a graphical frontend for DOSBox that makes configuring old software much easier.
2
Create a folder for your old software files
Create a folder on your PC
3
Mount your folder as a drive in DOSBox
Open DOSBox.
4
Navigate to and run your software
Type the name of the program's .exe or .com file and press Enter to run it. The old software will launch inside the DOSBox window as if you were running it on the original hardware from that era.