Windows 11, the latest iteration of Microsoft’s operating system, intriguingly retains a piece of its predecessor, Windows 95. This connection is facilitated by a compatibility feature known as EmulateHeap, which provides legacy applications with access to Windows 95’s memory management system. This compatibility fix is still present in the Windows 11 26H2 version, allowing users to run older applications that rely on the forgiving nature of the original memory manager.
Microsoft changed how Windows 95 managed memory just for SimCity
In the realm of software, memory management is crucial. Applications request memory while they operate and are expected to release it once their tasks are complete. However, a bug known as use-after-free occurs when an application attempts to access memory that has already been freed. The original version of SimCity for Windows 3.x fell victim to this bug.
Joel Spolsky, co-founder of Stack Overflow and a former Microsoft engineer, recounted this tale in a 2000 essay, referencing Jon Ross, the developer behind that version of SimCity. Ross confessed to inadvertently leaving a bug that allowed the game to “read memory that he had just freed.” Spolsky elaborated on why this oversight went unnoticed: “It worked fine on Windows 3.x, because the memory never went anywhere.”
However, when SimCity encountered issues during the Windows 95 beta testing phase, Microsoft opted for a proactive approach. Instead of waiting for a patched version of the game, the company modified Windows 95 itself. As Spolsky noted, “If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away.” This unique solution exemplifies Microsoft’s commitment to ensuring compatibility for a single game.
Microsoft recompiled Windows 95’s heap manager to keep old apps alive
The workaround for SimCity was not an isolated case. Other applications had similar dependencies on the quirks of Windows 95’s memory management. Microsoft engineer Raymond Chen shared insights in his Windows Confidential column, explaining that various programs relied on the peculiarities of the Windows 95 heap, such as reading freed memory and expecting the old values to remain intact. Unfortunately, these applications faced crashes on newer versions of Windows, which adopted a different memory management approach.
To address these compatibility issues, Microsoft introduced EmulateHeap. This fix redirects an application’s heap calls—“from HeapCreate to LocalLock to GlobalReAlloc and everywhere in between,”—to alternative functions that mimic the behavior of Windows 95. Chen describes this solution as “extremely simple” yet “completely crazy.” The remarkable aspect of EmulateHeap lies in its creation: Microsoft essentially took a copy of the Windows 95 Heap Manager source code, recompiled it, and integrated it into the compatibility framework.
Chen emphasizes that “there’s a copy of a significant chunk of the Windows 95 kernel inside the Windows application compatibility framework.” Importantly, this legacy code only activates when EmulateHeap is enabled for a specific application, ensuring that Windows 11 does not run Windows 95 in the background.
It’s worth noting that EmulateHeap is distinct from the code Microsoft originally developed for SimCity. Both stem from the company’s ongoing focus on compatibility, a legacy that began with Windows XP’s extensive database of application fixes.
How to find EmulateHeap in Compatibility Administrator on Windows 11
For those interested in exploring EmulateHeap, it can be located within the Compatibility Administrator, a free tool from Microsoft designed for IT administrators. This tool provides a comprehensive list of compatibility fixes included with Windows. Microsoft defines a compatibility fix (or shim) as “a small piece of code that intercepts API calls from applications.”
Compatibility Administrator is part of the Windows Assessment and Deployment Kit (ADK), which officially supports Windows 11 26H2 as of its September 2026 release. To find EmulateHeap on a Windows 11 26H2 PC, follow these steps:
- Download the Windows ADK from Microsoft and run the installer.
- Select only Application Compatibility Tools from the list of features and complete the installation.
- Search for Compatibility Administrator in the Start menu and open the 32-bit version, as most Windows 95-era applications are 32-bit.
- Under Custom Databases, right-click New Database, then select Create New > Compatibility Mode.
- Scroll through the list of available compatibility fixes to locate EmulateHeap.
However, it’s important to remember that simply listing a fix does not guarantee functionality. Following the Windows 11 22H2 update, users reported issues with games such as GTA Vice City losing sound and Need for Speed: Most Wanted crashing when the shim was enabled.
Interestingly, while Microsoft is in the process of replacing the Windows 95-era Properties dialog with WinUI 3, it continues to support Windows 95’s heap manager for a select group of older applications. Unfortunately, this effort has not extended to 3D Pinball, which was discontinued due to a 64-bit bug that the team deemed unworthy of further investment.