Windows NT 5.x emulators

From Emulation General Wiki
(Redirected from Windows 2000 emulators)
Jump to navigation Jump to search
Windows NT 5.x
Developer Microsoft
Initial release December 15, 1999
Final release Service Pack 3 with May 2019 security update (5.1.2600.7701) / May 14, 2019
Preceded by Windows NT 4.0 (1996)
Succeeded by Windows Vista (2007)
Emulated
Bliss, originally known as Bucolic Green Hills, is the popular wallpaper of Windows XP
For emulators that run on Windows 2000, see Emulators on legacy Microsoft products#Enterprise Windows NT.
For emulators that run on Windows XP, see Emulators on legacy Microsoft products#Windows XP.

Windows NT 5.x is a family of Microsoft Windows NT, starting with Windows 2000 and ending with Server 2003. After Windows NT 5.2's end of support in 2015, no NT 5.x operating systems are supported by Microsoft.

By the early 2000s, personal computing had entered a dynamic new phase. ACPI PCs powered by x86 CPUs were now robust machines, built on the ATX standard. SSE2 slowly became common, followed by the adoption of SSE3 in the mid-2000s. This period was steeped in Y2K aesthetics, a design movement that embraced a sense of optimism about technology’s future. The early 2000s saw the internet explode into mainstream life with broadband, digital media like MP3s and DVDs take off, and security become a pressing concern as cyber threats grew more sophisticated. In this vibrant era, Microsoft rolled out Windows 2000, Windows XP and Windows Server 2003, all built on the Windows NT kernel. These systems ditched the DOS-based roots of the Windows 9x family, marking a full shift to a newer foundation; despite this, they retained the capability to run older applications through Windows on Windows (often shortened to WOW). Similarly to original Xbox situation with NT 3.5, Xbox 360 used a modified version of the Windows 2000 kernel as system software.

Windows 2000 was aimed at businesses but became a milestone as the first attempt for NT-based OS to reach a wide audience. This was also when multithreading started to matter more, as dual-core processors peeked over the horizon for consumer market, promising better performance for multitasking and complex applications. During this time, by late 2000 and early 2001, when the LCDs began its journey to mainstream adoption and 3dfx Voodoo era of Windows 9x was no longer dominant in the GPU market, NVIDIA GeForce and ATI Radeon emerged as rivals with DirectX 7.0 and XDDM (later it will be called as XPDM or XPDDM), beginning a competition that spanned multiple GPU generations (until AMD acquired ATI in October 2006).

Windows XP released in October 2001 with DirectX 8.1, uniting home and professional users under one banner with the NT kernel and a new interface. Its visual design nodded to Y2K aesthetics. XP’s launch stumbled with security vulnerabilities, stability issues, and compatibility problems with older software frustrated users but Service Pack 2 (SP2) in 2004 turned it around. During this time, PCIe replaced PCI and AGP with a high-speed, scalable, lane-based serial architecture, improving data transfer rates and power efficiency for graphics, storage, and peripherals in gaming, multimedia, and professional applications. Echoing the 3dfx era, lots of iconic cards released in this era, like the ATI Radeon 8500 (2001); Radeon 9700 Pro, GeForce 4 Ti 4200 (2002); Radeon 9600 Pro (2003); GeForce 6600 GT (2004); Radeon X800 XL (2005). The release of the X-Fi series in 2005 essentially marks the end of the "classic" PC sound card era, it coincided with the end of official Windows 9x driver support, the deprecation of hardware-accelerated audio, and the conclusion of the EAX vs. A3D API wars. The EAX 5.0 standard was a significant leap, but it also coincided with the decline of DirectSound3D and the shift to other audio APIs like OpenAL. Just like previous generation, the sixth generation of gaming dominated by home consoles, continued the fifth-generation trend of home console-exclusive blockbusters; left Windows XP as a stronghold for PC-oriented genres like simulation, strategy, competitive multiplayer shooters, MMOs, tycoon, and point-and-click adventures, and those comes with notable installers and pre-rendered isometric graphics. Many iconic PC games released, web-based games and much more thrived during this era. During the rivalry with PowerPC-based Mac OS X, Windows XP became a gaming and multimedia titan for personal computers thanks to DirectX 9.0c and Shader Model 3.0, introducing advanced graphics features, though these capabilities were outpaced by the Xbox 360’s Xenos GPU, which supported a superset of DirectX 9.0c and Shader Model 3.0+. The internet was on the cusp of becoming mainstream, building on the forum culture of the previous Windows 9x era; social media platforms like Friendster, MySpace, and Facebook emerged, redefining online interaction. Broadband’s rise fueled online gaming through Xfire and Steam. Instant messaging, with Windows Live Messenger, Skype, and Yahoo! Messenger, became ubiquitous. Peer-to-peer file sharing via Limewire boomed but faced legal and security issues. Web browsing experience improved with competition of Opera, Firefox and Internet Explorer. XP also dipped its toes into 64-bit computing with a special edition, hinting at the future even if 32-bit still ruled the day. Its longevity and versatility made it a cultural icon, sticking around for years as the backbone of homes, schools, and offices.

[edit | edit source]

Running software designed for Windows 2000, XP, or Vista on modern Windows operating systems can be tricky. Unlike emulating older DOS-based/Windows 3.x or Windows 9x systems, which is considered the best solution nowadays, using emulators for NT-based OSes like Windows 2000, XP, or Vista should be a last resort. Why? These systems have huge compatibility and performance limitations when emulated, and there’s little ongoing support for such setups. Furthermore, Hypervisors dropped support for these including much older legacy OSes, with outdated guest tools or missing features like 3D acceleration. This means, it shouldn't be considered as viable solution at this point, see #Other solutions section for more information about that.

Thankfully, you can often run games or software from these platforms on modern Windows thanks to backwards compatibility through WOW64.[1] This nifty layer lets 32-bit apps work on 64-bit Windows, and you can pair it with wrapper solutions which can further smooth out a lot of bumps. Plus, DirectX 9.0c is still supported in Windows,[2] helping older games keep chugging along.

Key developers behind open-source projects that create compatibility layers, wrappers, and emulators to help run legacy software (especially old games and apps relying on outdated APIs) on modern 64-bit Windows systems. Microsoft has largely abandoned built-in support for these (e.g., no native app execution on x64, or poor handling of ancient APIs and copy protection methods), so these tools are mentioned in this page are crucial for many users preserving or playing vintage stuff.

Intel’s proposed x86-S architecture could shake things up by dropping support for legacy stuff like 16-bit real mode and some 32-bit rings.[3][4] It’s just a proposal for now, not in actual CPUs yet, but if it happens, it might make running old software tougher down the road.[5] Intel ARC GPUs lack native DirectX 9.0c support, using D3D9On12, which may impact performance and compatibility for older games, fortunately improvements have been made since then. On top of that, some copy protection methods—like SecuROM or SafeDisc (or worse; Online DRM)—can be a real headache on modern systems (see secdrv.sys situation). They could depend on old hardware or software features that just don’t exist anymore, leaving your vintage game disc unplayable.[6] And then there are user reports about recent Windows updates causing trouble: the EmulateHeap compatibility shim broke on Windows 11 22H2, and Win32 API changes in 24H2 have messed up games that rely on quirky behavior.[7][8][9] Be aware that critical library functions may be deprecated in the future, as seen with the UserRegisterWowHandlers case.

PCGamingWiki likely has info on running it on modern systems, complete with compatibility notes. You can also check out compatibility databases or forums for workarounds and fixes tailored to your software.

Sometimes, all that's needed to run an older game is a DLL wrapper for its graphics API. While not as common as the Glide wrapper for Windows 9x games, these wrappers can be useful for Windows XP games that were designed for older versions of OpenGL or D3D. Also you can use these in virtual machines for increasing "Virtual GPU Adapter" compatibility. More information is available at the respective page.

  • dege: The creator of dgVoodoo2, a graphics API wrapper that translates old DirectX (up to DX7), Glide, and other legacy 3D APIs into modern Direct3D 11/12. It's essential for running '90s-era games (like those from 3dfx Voodoo days) without emulation overhead, fixing rendering issues on current hardware.
  • doitsujin: The lead developer of DXVK, a Vulkan-based runtime that translates Direct3D 9/10/11 calls to Vulkan. While primarily for Linux gaming (via Proton), it works on Windows too, boosting performance and compatibility for older DirectX titles on modern GPUs; especially useful where native DX struggles with new drivers.
  • Federico Dossena: He's the author of WineD3D for Windows, a DirectX 1–11 to OpenGL wrapper ported from Wine's implementation. It helps legacy DirectX apps render properly on systems without old DX runtimes (e.g., via software or Mesa OpenGL on Windows), and he's also involved in other gaming tools like TDF for sandboxed Wine setups.

All these folks have basically reverse-engineered and maintained what MS dropped, saving tons of hassle for retro computing and gaming.

Many games are considered enough of a cult classic that the source code is made publicly available for study and use as a base for ports to newer platforms. For some titles, this is done by the developer themselves to show other developers the viability of such a project. However, for most games this'll usually be done by force through reverse engineering.

Digital Storefronts

[edit | edit source]

There are digital storefronts out there which includes games that released on during this era. Some of this digital storefronts modifies game files for compatibility reasons with modern operating systems, this results in the elimination of the original game installers though, providing only custom setup executables or no authentic original setup process at all.[6]

Compatible Hardware

[edit | edit source]

If you're willing to put in the effort, you can find a compatible PC setup from this era in second-hand markets.

Other solutions

[edit | edit source]

Emulators

[edit | edit source]
Main article: PC Emulator Comparisons (also see emulation issues section and reference number 2)
86Box and Windows XP

As we mentioned before, unlike emulating earlier systems like DOS, Windows 3.x, or Windows 9x, emulating Windows 2000 or XP remains a significant challenge, even with actively developed advanced emulators. While these emulators excel at handling older systems, performance remains a major hurdle for Windows 2000+. Therefore, emulation isn't a practical choice, even for those seeking the most accurate experience. See Vogons.org thread: Using PCem with a XP guest page.

Another way to get Windows 2000, XP or Vista software running on modern system is to run the operating system in a hardware-assisted virtual machine, this requires you to have VT-x or AMD-V supported hardware. If you do decide to install these legacy operating systems in a Type-2 virtual machine, you will need to install integrations (e.g., VMware Tools, VirtualBox Guest Additions, Parallels Tools) for features like 3D acceleration, mouse integration and shared folders... But keep in mind, those 3D drivers in hypervisors are outdated, and haven't been updated since ~2014. Having said that, 3D acceleration in hypervisors are fairly capable of running video games or other 3D applications with a few drawbacks such as limited API capabilities and compatibility. Every hypervisor has a different approach to handling 3D graphics; as a result, VirtualBox supports for OpenGL, DirectDraw and older versions of Direct3D are slightly better, on the other hand VMware has better support for Direct3D 9. Keep in mind that most Windows games used Direct3D. Recommended to check compatibility reports.

Virtualization Pack

[edit | edit source]

You can use this pack, which includes the latest 3D acceleration-supported versions of VMware and VirtualBox for Windows XP guest, along with scripts for LaunchBox integration, wrappers, various patches and other convenient tools.

  1. Make sure to read "README.txt" first. All of the information and necessary files mentioned below provided with the pack already. Also, recommended to see Virtual GPU Adapter Compatibility List.
  2. You can configure the ProtoWeb proxy server if you want to use retro internet within the guest system. See the instructions at their webpage and input the numbers into the proxy settings of Internet Explorer.
  3. Lots of patches, updates and wrappers compatible with Windows 9x, Windows 2000 and Windows XP provided in the pack. See "README.txt" for more information.
  4. For reasons we mentioned in "Comparison" and "Notes for Type 2 Hypervisors" sections, it is recommended to use VirtualBox for OpenGL, DirectDraw and older versions of Direct3D, on the other hand VMware is recommended for Direct3D 9.
  5. It is recommended to use this audio fix for VMware.
  6. You can use wrappers for increasing your chance if game is uncompatible with virtual GPU adapter. Keep in mind that some games may have issues with "mouse integration" feature, so you may need to use a "USB/mouse passthrough" feature. Additionally, some older DirectDraw games might require you to turn down the hardware acceleration slider from the guest OS, which you can find in the Display settings->Advanced->Troubleshoot tab.
  7. Use Root Certificate Updates for HTTPS connection errors.
  8. Recommended to see Copy protection page as well. Use Virtual Mounting Disc software on the guest OS, and "Shared Folders" feature of the Virtualization software.
  9. If you have conflict issue with Hyper-V, use this guide.
  10. To ensure optional tools like QRes (and the shader+overlay work correctly if you're using one with ShaderGlass), set your display or GPU scaling to Aspect Ratio. QRes and the shader+overlay will not function correctly with Full (Stretched) or Off scaling.
Name x86 platforms ARM platforms Acceleration Virtual GPU Adapter Compatibility License Active
Type 2 Hypervisors
VMware Workstation Windows Linux VMware Virtualization Engine SVGA3D 70.45%
31 out of 44 reported titles
Proprietary
VirtualBox Windows Linux macOS FreeBSD Solaris Built-in VBoxVGA 65.12%
28 out of 43 reported titles
GPLv3 (Copyleft)[10]
Parallels Desktop macOS [N3 1] Parallels Hypervisor Parallels Video Adapter 66.67%
2 out of 3 reported titles
Proprietary
Type 1 Hypervisors
Because these are using KVM or WHPX for acceleration, we decide to include these solutions as Type 1 Hypervisors. See Limitations of the Type-1 / Type-2 classification for more information about this.
QEMU Linux KVM GPU-Passthrough 100% GPLv2 (Copyleft)
QEMU-3dfx Linux Windows KVM (Linux)
WHPX (Windows)[N3 2]
MESA GL and Glide Pass-Through ($) 95.45%
42 out of 44 reported titles
?
  1. ARM version cannot run the Windows XP as guest OS.
  2. QEMU with TCG is painfully slow. So, that is not included in this table. Keep in mind that, WHPX have some issues with some systems.[1][2][3][4] You can also use WSL2 to make an ubuntu container and run qemu with virt-manager and create a windows xp machine using KVM on Windows that way. See here.

Comparison

[edit | edit source]
QEMU-3dfx
qemu-3dfx builds advantage is "MESAGL/3Dfx Glide pass-through". The project took on the troubles to support the legacy of vendor-specific OpenGL extensions that matter for PC games. Past and existing solutions (VirtualBox VBoxVGA's ChromiumGL, VMware SVGA3D and QEMU Virgil 3D) are all based on API "re-rendering" rather then "direct forwarding".[11][12] MESA GL Pass-Through's compatibility with games mostly depends on Wrappers performance and capabilities. See QEMU 3dfx wiki: 3D APIs Pass-Through and KJ Liew's YouTube channel for more information about this approach.
Tutorial
To summarize the setup process for Windows XP guest OS;

first create qcow2 disk image using qemu-img;

qemu-img create -f qcow2 WinXP.qcow2 20G 
Enable Windows Hypervisor Platform
Open Turn Windows features on or off → check Windows Hypervisor Platform → OK → reboot if prompted. No need to enable any other thing.
Install Git (for Git Bash terminal), install the bundled Git-2.50.1-64-bit or grab the latest Git. You’ll use Git Bash to access QEMU’s monitor easily (handy for ISO hot-swap since QEMU has no full GUI for that).
Select "Open Git Bash Here" to launch Git Bash and use the script below to launch QEMU for Windows XP (Windows host). Remember, you will have to stay with TCG until manually switch to 'ACPI PC' kernel from device manager after Windows XP installed; the starting 'ACPI Uniprocessor' kernel does not boot on QEMU WHPX;
../qemu-system-i386 --version
../qemu-system-i386 -nodefaults -rtc base=localtime -display sdl -monitor stdio \
    -name "Windows XP" \
    -M pc,accel=tcg,kernel-irqchip=off -audio dsound -m 512 \
    -cpu max \
    -smp 1 \
    -device VGA -device lsi  -device ac97 \
    -netdev user,id=net0 -device virtio-net-pci,rombar=0,netdev=net0 \
    -chardev qemu-vdagent,id=vdagent,name=vdagent,clipboard=on,mouse=off \
    -device virtio-serial,max_ports=2 \
    -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
    -drive id=fld01,if=floppy,format=raw,file=virtio-win-0.1.141_x86.vfd \
    -drive id=winxp,if=none,file=winxp.qcow2 -device virtio-blk-pci,drive=winxp \
    -drive id=scd04,if=none,media=cdrom,file=winxp.iso -device scsi-cd,drive=scd04 \
    -boot menu=on -trace 'vdagent*'
Use this command to launch QEMU for Windows XP (Linux host);
../qemu-system-i386 --version
../qemu-system-i386 -nodefaults -rtc base=localtime -display sdl -monitor stdio \
    -name "Windows XP" \
    -M pc,accel=kvm,kernel-irqchip=off -cpu host -audio dsound -m 512 \
    -device VGA -device lsi  -device ac97 \
    -netdev user,id=net0 -device virtio-net-pci,rombar=0,netdev=net0 \
    -chardev qemu-vdagent,id=vdagent,name=vdagent,clipboard=on,mouse=off \
    -device virtio-serial,max_ports=2 \
    -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
    -drive id=fld01,if=floppy,format=raw,file=virtio-win-0.1.141_x86.vfd \
    -drive id=winxp,if=none,file=winxp.qcow2 -device virtio-blk-pci,drive=winxp \
    -drive id=scd04,if=none,media=cdrom,file=winxp.iso -device scsi-cd,drive=scd04 \
    -boot menu=on -trace 'vdagent*'

After Windows XP installed as guest OS, install the following drivers from the prebuilt package that KJ Liew provided in vmaddons.iso and virtio-win-0.1.141_x86.vfd:

Red Hat VirtIO SCSI Controller for the SCSI controller
Red Hat VirtIO SCSI Disc Device for the disc drive
Red Hat VirtIO Ethernet Adapter for the Ethernet adapter
SigmaTel C-Major Audio (STAC97) for the Intel 82801AA AC'97
Advanced Configuration and Power Interface (ACPI) PC for the ACPI Uniprocessor PC
BoxVNT (VirtualBox/QEMU/Bochs SVGA Driver) for the Video controller

After this step you can use WHPX for acceleration instead of TCG;
    -M pc,accel=whpx,kernel-irqchip=off -audio dsound -m 512 \
You need to use Wrappers like WineD3D (or KJ Liew's custom WineD3D) per-game basis (check each game’s API first, obviously), as you would with other virtual machines in uncompatibility situation with virtual GPU adapter, but in this case you must also use the "ddthru" technique. This involves placing kjliew's custom hooks (ddraw.dll, ddrawwq.dll, dsound.dll, and dsoundwq.dll) into the $SYSTEMROOT/system32 directory. Instead of manually copying these files from vmaddons.iso, you can use the kjliew's terminal (from vmaddons.iso) or MSYS2 shell to execute this command;
wine-get ddthru
wine-get install 6.0.4 d3d8 /c/Program Files/GameName (you can also use d3d9 for dx9 and ddraw for D3D7 or lower, 7.0.2, 6.0.4, 5.0.5, 4.12.1, 3.0.5, 2.0.5, 1.9.7, 1.8.7 for wine)
For detailed instructions, refer to the official guide, vogons thread about qemu-3dfx[7][8] or this video.
If you're using Windows 9x as guest OS, using SoftGPU drivers recommended; otherwise use prebuilt drivers (VBoxVideo, boxv9x or VMDisp9x) with wrappers such as WineD3D and OpenGlide. It is recommended to set the QEMU's CPU mode to "pentium3" instead of "host" to improve compatibility if you're using Windows 9x for Guest OS, otherwise, some programs will complain about MMX not being supported and may fail to run. Keep in mind that, SoftGPU isn't compatible with Windows XP at the moment.
While the program is open source and the source code is free to download, binaries are only provided to those who donate $90 to the creator. Instructions on how to build from source are provided on the GitHub page (with dependencies listed for Arch Linux). Since SoftGPU is available, you don't need to build the wrappers if you're only using Windows 9x as a guest OS.
Use virtual fat disk images for quick file sharing between host and guest. Although unimplemented at the moment, Direct3D 9 support via native Mesa Gallium 9 drivers (instead of using WineD3D wrapper) is theorized, and may be implemented in the future. For Hot-swap ISOs through git bash console (QEMU monitor);
eject scd0
change scd0 ../new.iso
VMware
"VMWare Tools" supports Windows 95 through Windows 11 but VMware Tools 10.0.12 version will be the last one to support legacy Guest Operating Systems (first included with VMware Workstation 12.5.0). You can still use the latest VMware version with VMware Tools 10.0.12; VMware will automatically installs VMware Tools to guest operating system for you, but with recent update (17.6 version) Legacy VMTools ISOs are no longer included by default, however it is still available for download.
Recent VMware releases has major issues with legacy guest operating system nowadays such as; VMware sound issues and due to major changes in VMware 16.x in how virtual graphics were handled (sandboxed) with added support for DX11 in Windows VMs, users reported lots of crashes (ISBRendererComm error) lately especially with "3D Acceleration". Although some users report that it's fixed with 17.5 version, crash still occurs with WinXP guest OS; because of this reason, it is recommended to use 15.7 or older version, including audio fix mentioned in this section until these issues fixed. Additionally, users have reported performance degradation and minor compatibility issues in certain games with VMware versions 16.x and possibly slightly earlier versions; for optimal performance, consider using versions 10.x, 11.x, 12.x, 13.x, 14.x or maybe 15.x.
VirtualBox
"VirtualBox Guest Additions" supports 3D acceleration for numorous guest operating system but does not include 3D acceleration for legacy operating systems anymore with recent versions due to VBoxVGA deprecation and changes in VirtualBox's 3D acceleration system, so you must use VirtualBox 6.0.24 version or earlier to use 3D acceleration in a Windows 2000, XP or Vista guest operating system.
Parallels Desktop
Parallels Desktop has discontinued updates for Parallels Tools on Windows versions older than Windows 10 (including Windows XP, Vista, 7, 8, and 8.1) due to Microsoft’s termination of driver signing support.[13] The last version of Parallels Tools supporting these legacy operating systems was included in Parallels Desktop 18.1.0 (and App Store Edition 1.8.0). In newer versions (for example, Parallels Desktop 20), the automatic Install Parallels Tools menu option is unavailable for legacy systems such as Windows XP. Users can still manually install older Tools by downloading the Parallels Tools ISO from PD 18.1.0 or earlier and mounting it in the virtual machine, though this procedure is unsupported and may not fully restore features such as graphics acceleration, Coherence mode, shared folders, or clipboard sharing.[14] Windows XP virtual machines with Parallels Tools pre-installed from older versions (e.g., PD 17 or 18.1.0) will generally continue functioning in newer Parallels releases, but the Tools cannot be updated, and compatibility issues may gradually degrade performance; especially for graphics-intensive applications. Some users have reported crashes or instability when running Direct3D-based applications or games on Windows XP virtual machines in Parallels Desktop 18 and later,[15][16] though these issues are anecdotal and not officially documented. As support for legacy operating systems has ended, no future updates will address these problems. Parallels Desktop relies on macOS’s Hypervisor framework and graphics stack (translating Direct3D to Metal) for virtualization, and major macOS updates can disrupt compatibility; particularly on Apple Silicon Macs, where 32-bit operating systems like Windows XP are unsupported due to architectural limitations. The shift to Universal binaries in Parallels Desktop 17 and later (supporting Intel and Apple Silicon) is not the primary cause of legacy-OS issues; rather, Microsoft’s driver-signing restrictions and Parallels’ focus on modern OSes are the main factors. To maintain stability for legacy Windows virtual machines, Intel-based Mac users running Parallels Desktop 17 or 18.1.0 are advised to stay on a compatible macOS version (for example, macOS Monterey 12 or Big Sur 11) to avoid disruptions from changes in the virtualization stack, or manually install older Parallels Tools for new virtual machines if needed — though results may vary. For the latest guidance, consult the Parallels Knowledge Base and Parallels Forums.
QEMU
If you're using Linux as an host operating system you have the best option which is "QEMU using KVM + GPU-Passthrough" approach, but this option only possible if you have I/O MMU virtualization (AMD-Vi and Intel VT-d) supported hardware and Windows XP compatible GPU. Latest supported GPU and GPU drivers from AMD; its 200 series and from nVidia; its 900 series. See this video for tutorial.

Future

[edit | edit source]
QEMU + VirGL
VirGL virtual adapter only supports Linux guests at the moment (Specifically needs 4.4+ Linux kernel with mesa 11.2+ compiled with the "gallium-drivers=virgl" command option). Plans are to target "GL2.1 + GLSL 1.20" as the possible lowest GL interface to support. The guest would then expose the same level of GL. This project will eventually support Direct3D and Windows guest but there is none at the moment. Currently the renderer is GLSL 1.30 based, and requires some extensions from later GL levels. Current developer only really tested on the open source nouveau driver exposing GL3.0/GL3.1 core profile, and the binary nvidia driver exposing GL 4.3. Future plans to add a capabilities system will be required to work make things work across more systems. The capabilities system will expose different guest GL levels dependant on the host GL level, this could allow for a GLES2 specific interface etc. The current guest driver exposes GL2.1 and GLSL 1.20. Also there is a pull request: Windows Virtio GPU 3D acceleration for QEMU. For more information about VirGL3D use this link, and this repository which is to help build qemu with virgl support for windows hosts.
Hyper-V + GPU-Passthrough
Hyper-V + GPU-Passthrough currently exclusive to Windows 10/11 host and guest systems at the moment. See GPU Virtualization - API remoting wiki page for more information about this.
UTM
UTM is a full-featured system emulator and virtual machine for Intel and ARM Macs and iOS devices. It uses QEMU under the hood, essentially functioning as a frontend for QEMU. Currently, it supports the Red Hat QXL GPU through the installation of 'Windows Guest Support Tools' for proper virtual GPU adapter support (limited to 2D acceleration; do not expect compatibility or performance comparable to Parallels Video Adapter, VMware SVGA3D, or VBoxVGA). Until significant advancements occur, we will not include this solution in the table to avoid unnecessary complexity. See this video for a demonstration.

Notes

[edit | edit source]
  • You can use wrappers like "WineD3D for Windows" or "DxWnd" for translate D3D calls to OpenGL on the legacy operating system for increasing your chance if games uncompatible with virtual GPU adapter. Also you can use d3d8to9 since VMware's Direct3D <=8 acceleration has graphical and/or performance issues. Keep in mind that some games may have issues with "mouse integration" feature, so you may need to use a "USB/mouse passthrough" feature. Additionally, some older DirectDraw games might require you to turn down the hardware acceleration slider from the guest OS, which you can find in the Display settings->Advanced->Troubleshoot tab.
  • DxWnd 2.05.70, WineD3D 1.7.52 or 1.9.7-staging(partially) versions are the latest compatible versions with Windows XP (if OneCoreAPI is not installed to OS), for getting these old "WineD3D for Windows" builds use this link
  • If you do decide to install Windows 95 in a virtual machine, you will need to install FIX95CPU (or better Patcher9x by JHRobotics) for it to run on processors with clock speeds over 2.1GHz (for Intel CPUs) and 300MHz (for AMD CPUs). Failing to do so will result in a "Protection Error" at boot time.
  • Using proxy projects for retro web browsing experience is recommended.
  • You can also use software tools for middleware or disc-check emulation, see Copy protection#Emulation section.
  • Using VMware-KVM utility (or even remote control software such as RDP or vnc) instead of VMware built-in display is recommended for smoother experience, this shouldn't be confused with KVM (Kernel-based Virtual Machine). The vmware-kvm utility, also known as the VMware KVM mode, was first introduced in VMware Workstation 10, released in May 2014. It allows users to run virtual machines in full-screen mode with easy switching between the VM and host OS using the Pause key, along with command-line control via vmware-kvm.exe for tasks like starting VMs and managing preferences. It uses the host's graphics capabilities more efficiently, reducing lag and improving responsiveness.
  • VirtualBox’s parser is very strict, for instance; it does not recognize the multi-track disc image or FLAGS DCP, so it throws: VERR_NOT_SUPPORTED. VMware on the other hand only supports ISO images. See Ripping games, Copy protection and Disc Drive emulation pages for more information.
  • Using WHPX for acceleration on Windows host will be slightly slower compared to using QEMU with KVM on Linux host.[9] Changing Windows XP HAL from "ACPI Uniprocessor" to "ACPI PC" is unnecessary for Guest images that would solely be used with Linux KVM. This is only required for Guest images that are shared among Linux KVM and Windows 10/11 WHPX. Such enables one to play the games on dual-boot Linux/Windows PC/laptops regardless of which OS was booted. Such enables one to play the games on dual-boot Linux/Windows PC/laptops regardless of which OS was booted.

Protection mechanisms against VMs

[edit | edit source]
Main article: Hypervisors#Virtualization Detection Mechanisms

Summary

[edit | edit source]

You have four reasonable options to choose (either is in recommended or other solutions)[10];

  1. Install XP on supported hardware or on unsupported hardware with unofficial updates and drivers.
  2. Use ESX or Linux with KVM using Windows XP/Vista supported real GPU for passthrough, and also real sound card if you want.
  3. Use the QEMU-3dfx builds with WHPX/KVM acceleration, or 15.5.7 (or older) version of VMware Player/Workstation and VirtualBox 6.0.24 (or older).
  4. Use fixes for the game on a modern version of Windows host with using dgVoodoo2, DXVK or WineD3D and WoW64, OR Wine with other fixes on Linux host.
[edit | edit source]
  1. https://support.microsoft.com/en-us/windows/make-older-apps-or-programs-compatible-with-windows-783d6dd7-b439-bdb0-0490-54eea0f45938
  2. https://www.microsoft.com/en-us/download/details.aspx?id=8109
  3. Intel Abandons "x86S" Plans to Focus on The Regular x86-64 ISA Advisory Group
  4. In 2023, Intel proposed a major change to the architecture referred to as x86-S (with S standing for "simplification"), which aims to remove support for legacy execution modes and instructions
  5. On x86-64, Wow64cpu.dll takes care of switching the processor from 32-bit to 64-bit mode. This is computationally cheap, as x86-64 machines have a native mode for running 32-bit x86 code.[5]
  6. MattKC: How Windows 11 BROKE Grand Theft Auto: San Andreas
  7. https://github.com/kjliew/qemu-3dfx/issues/170#issuecomment-2974904268
  8. https://answers.microsoft.com/en-us/windows/forum/all/emulateheap-compatibility-shim-broken-on-windows/c64e5428-2f2b-4352-8ca5-a59c7e539755
  9. https://community.pcgamingwiki.com/files/file/3465-emulateheap-fix/
  10. The Extension Pack is under a Proprietary license
  11. javispedro's comment about Virtual GPU adapters
  12. KJ Liew's "QEMU Star Wars: Knights of the Old Republic (2003) -- Tribute to NVIDIA OpenGL" video description
  13. Legacy Windows support in Parallels Desktop. Parallels Knowledge Base
  14. Download Parallels Tools for legacy operating systems. Parallels Knowledge Base
  15. Windows XP 3D crash after PD18 update. Parallels Forums
  16. Parallels 18 Windows XP display issues. Parallels Forums

Microsoft(edit)