NTVDMx64 by Leecher1337

 A verson of NTVDM for 64-bit Windows

NTVDMx64 makes it possible to run old DOS applications under 64-bit Windows 7 and Windows 10. (It is reported to work correctly with Windows Server 2008 R2, and perhaps also with more recent Windows Server versions.)

Recent versions of NTVDMx64 make it possible to run 16-bit Windows applications under 64-bit Windows, but you may prefer to use the much less obtrusive otvdm/winevdm for this purpose.

Unlike emulator applications such as vDos and DOSBox, NTVDMx64 is fully integrated with Windows, with the same access to the Windows file system and ports that NTVDM has under 32-bit Windows. NTVDMx64 does not perform as quickly as DOSBox or vDos, but its integration is a unique and important advantage. For example, a DOS application running under NTVDMx64 can print directly to LPT1 if the computer has a parallel port; this is impossible under DOSBox (although possible with vDos through a configuration option).

NTVDMx64 is not my work! It is a patched version of Microsoft's original NTVDM, based on the leaked source code of Windows NT, and patched by a programmer who calls himself "Leecher1337." The leaked source code may not be distributed legally, so, in order to avoid legal problems, Leecher1337 publishes only patch files that contain modifications to the original code. These patch files may be downloaded from his GitHub page. With the proper development environment, the patched Windows NT code can be compiled to build a 64-bit version of NTVDM, which Leecher1337 has named NTVDMx64. Don't be clueless! Do not waste your valuable time sending me questions about NTVDMx64! I don't know the answer! Post your questions on Leecher1337's GitHub page! I really mean this!

Leecher1337 does not distribute compiled versions of his patched version, but I have obtained copies of the CCPU and HAXM versions (see the GitHub page for details of requirements and differences). Each has an installer. I did not build these copies; I obtained them from another source. To make downloads easier, the files are encypted with the password leecher.

To install NTVDMx64, run INSTALL.BAT, and restart your system when prompted. If you want, you may uninstall it from the Control Panel or PC Settings. This installer is frequently updated to match the latest version of Leecher1337's code. (Updated 13 February 2023.)

Warning: If Microsoft asks me to take down this page for any reason at all, the page and all files linked from it will be deleted immediately. Microsoft has not made any such request during the years that this page has been posted.

All comments and questions about NTVDMx64 should be posted on Leecher1337's Github page. Don't be clueless! Do not waste your valuable time sending me e-mails asking for help installing and running NTVDMx64, because I will not know the answers. Open an issue at the GitHub page for this project. Also, do not waste your valuable time asking me to update the version posted here. I have no control over which version is available to me.

Secure Boot: With Windows versions below Windows 10, you must disable the "secure boot" feature on your computer (if it is enabled). With Windows 10 and above, it's preferable but not strictly necessary to disable "secure boot.". To disable secure boot, you will need to modify the BIOS settings of your machine; it is not a Windows setting. If you don't know how to accomplish this, search the web or consult the manual for your system board.

Windows Smart Screen may refuse to let the installer run; choose Run Anyway from the buttons that appear when you click on More Info (or some similar setting). Windows Defender may block a DLL in the program; find it in the Quarantine settings, click on its name, and choose Restore. Other anti-virus programs may similarly block the installation. Don't complain to me or to Leecher1337; complain to your anti-virus vendor. And don't waste your extremely valuable time asking me or Leecher1337 whether this software is unsafe. If you don't want to override these security features, don't use this software.

Cautions and warnings: NTVDMx64 uses non-standard methods of process propagation to inject loader code into 32-bit and 64-bit applications. I don't know exactly what this means, but I am reliably told that this may cause problems not yet recognized. You may want to experiment with a VMware or other virtual machine before running it on production systems. Also, it has been tested only under the 64-bit versions of Windows Server 2003, Windows 7, Windows 8, Windows Server 2008, Windows 10, and Windows 11. Do not attempt to run it under any earlier version!

You may launch DOS applications from the Windows command prompt (CMD) or by double-clicking them in Windows Explorer. The first time you try to run any DOS program, you may see an error message; try again immediately afterwards, and the program should run.

Some programs will require command-line switches to run. For example, WordPerfect for DOS 6.x should be started with the /NE command-line switch. Some programs will not run at all; there is probably nothing that can be done about those programs, but you should feel free to file a very detailed "issue" at the GitHub page linked above.

Microsoft's NTVDM uses a licensed version of the SoftPC emulation software by Insignia. The original NTVDM, written for Windows NT, operated differently when run on Intel's x86 hardware and on alternate hardware, including VAX VMS, DEC Alpha, and Mips. SoftPC included a software-based CPU (CCPU) that could emulate an Intel 80386 processor. For performance reasons, when running under an Intel processor, the emulated CPU was not used; instead, the V86 mode of the hardware CPU was used, via a kernel interface which Microsoft called "Monitor". So the CCPU was used only on non-x86 architectures, and the Monitor interface was used on x86. Leecher1337's NTVDMx64 modifies the original code so that the CCPU is used when running under 64-bit Windows, because Intel processors have no V86 support in the "long mode" used by 64-bit Windows.

NTVDMx64 makes one change in the CONFIG.NT file from the original NTVDM: it increases the FILES = line from 20 to 100, which should be sufficient for most applications). If you want to change that number, or make any other changes in CONFIG.NT, do the following: run CMD.EXE as an administrator; navigate if necessary to \WINDOWS\SYSTEM32 and run the command "start notepad config.nt", and edit the file.

For a full description, see Leecher1337's Github page, which also notes some problems with DPMI programs and DOS extenders.

Like NTVDM, NTVDMx64 can be customized from the system menu of an NTVDMx64 window to change window size, display font, etc. Unlike NTVDM, the CCPU version switches smoothly between text and graphic modes (the HAXM version reportedly will never work smoothly with graphic modes).

Edward Mendelson (em thirty-six [at] columbia [dot] edu, but with two initials and two numerals before the [at] sign, not spelled out as shown here).