Если вы попробуйте запустить исполняемый файл DOS в современной версии Windows, вместо окна соответствующей программы появится сообщение: «Невозможно запустить это приложение на вашем ПК», поскольку приложения DOS не поддерживаются. Однако, возможности их запуска существуют.
В этой инструкции способы запуска DOS программ и игр в Windows 11 и Windows 10, для чего можно применить несколько различных подходов. На близкую тему: Запуск 16-бит программ в Windows x64.
DOSBox
Если основная ваша задача — запуск старых DOS-игр, возможно, DOSBox будет лучшим вариантом для этого за счет своей отличной совместимости, удобства и сравнительно стабильной работы.
Пример использования DOSBox:
- Скачайте DOSBox для вашей ОС с сайта https://www.dosbox.com/ (в нашем примере — это Windows 11, загружаем Win32 Installer несмотря на то, что система 64-разрядная).
- Подготовьте файлы DOS, которые вы планируете запускать в какой-либо папке на компьютере.
- Запустите DOSBox и подключите эту папку с помощью команды mount. Пример использования:
mount c c:\dos\
в результате выполнения внутри DOSBox содержимое папки C:\dos на компьютере окажется подключено как виртуальный диск C.
- Запустите то, что требуется в командной строке DOSBox с подключенного диска. В примере на изображении ниже я запускаю Norton Commander.
- А уже из него — игру, которая исправно работает.
- И, на всякий случай: Ctrl+F10 — освобождает мышь из окна DOSBox, а Ctrl+F9 — выходит из него.
После установки DOSBox в меню «Пуск», помимо прочего, будет добавлен ярлык для открытия файла конфигурации (открывается в текстовом редакторе, в нём же сохраняется). Для большинства пользователей всё сравнительно исправно работает, но мне пригодилось изменение чувствительности мыши (пункт sensitivity).
Подробные сведения о конфигурации DOSBox можно найти на странице https://www.dosbox.com/wiki/Dosbox.conf
Существуют и альтернативные сборки DOSBox с расширенными возможностями: например, DOSBox-X и DOSBox SVN Daum.
vDos
vDos также позволяет запускать DOS-приложения в Windows последних версий, но стабильную работу мне удалось получить лишь для программ с текстовым интерфейсом, и то далеко не со всеми. Порядок использования:
- Скачиваем и устанавливаем vDos, официальный сайт — https://www.vdos.info/
- Скопируйте папки и файлы DOS в папку с vDos, эта папка со всей внутренней структурой будет работать как диск C: в запущенном vDos.
- Если сразу после установки запустить vDos, автоматически запустится демонстрационная программа DataPerfect. Так как нам это не требуется, откройте файл autoexec.txt в папке установки vDos и удалите строку CALL DPTEST\STARTDP.BAT, сохраните файл и лишь затем запускайте vDos.
- Используйте командную строку для запуска игры. Например, игра расположена в папке vDos во вложенной папке Games\game.exe. Используйте две команды: cd Games для перехода к папке, а затем game.exe для запуска игры. По какой-то причине запуск с указанием полного пути у меня не сработал.
- Как было отмечено выше, мало что получилось запустить с помощью vDos в моем тесте, потому повторю скриншот с файловым менеджером, но уже не из DOSBox.
Возможно, поработав с конфигурацией vDos возможно обеспечить и лучшую работу эмуляции.
NTVDMx64
Старые версии Windows умели запускать DOS-программы без каких-либо дополнительных трюков. В Windows NT это было реализовано с помощью виртуальной машины NTVDM.
NTVDMx64 — патч для современных версий Windows, включая Windows 11 и Windows 10 x64, встраивающий нативную поддержку запуска DOS-программ в систему. Учитывайте следующие нюансы:
- Установка NTVDMx64 меняет файлы системы и требует отключения Secure Boot в БИОС/UEFI
- Антивирусы ругаются на файлы NTVDMx
Поэтому, установка NTVDMx64 — под вашу ответственность.
Принцип использования:
- Компилируем сами из исходников автора https://github.com/leecher1337/ntvdmx64 или берем готовый установщик, например, здесь и используем файл install.bat для установки (вариант HAXM требует включенной виртуализации Intel VT-x, вариант CCPU — нет), запускаем файл install.bat и перезапускаем систему после установки.
- Запускаем программы DOS также, как и любые другие программы прямо из среды Windows.
В моем тесте полностью исправно работали программы DOS с текстовым интерфейсом и, сравнительно нестабильно и медленно — отдельные игры с графическим режимом экрана.
Виртуальная машина
При желании можно попробовать запускать DOS-игры и программы в виртуальной машине. Возможны разные подходы, в моём случае хороший был получен при установке Windows 98, эта система поддерживает запуск DOS-программ в VirtualBox (и не был достигнут при установке FreeDOS и некоторых других попытках).
Я использовал готовый образ виртуального жесткого диска Windows 98 для VirtualBox загруженный с Archive.org (подробнее о том, как найти старые программы на archive.org). Создал виртуальную машину, подключил диск, запустил — почти всё, включая Интернет (для загрузки старых DOS-программ с сайта old-dos.ru) и их запуск исправно, но иногда медленно, работали:
На эту тему может пригодиться инструкция Виртуальные машины VirtualBox для начинающих.
Надеюсь, один из вариантов подойдёт для ваших целей и запуска нужных DOS-программ в современных ОС.
For the impatient ones, who don't want to read: ntvdmpatch\doc\autobuild.txt should be the fastest way to get NTVDMx64 compiled. Known defects ============= Please be aware that starting with Windows 11 22H2, support for 16bit Windows applications (i.e. Windows 3.11 applications) is no longer possible due to removal of crucial functions (UserRegisterWowHandlers) from USER32.DLL and the whole Win16 support relies on this. You can still run DOS applications without issues, but for Win16, please use WineVDM instead. You may want to upvote issue https://aka.ms/AAl858b in MS Feedback hub to convince Microsoft to put back these functions. What is it? =========== NTVDMx64 is a port of the well-known Windows NTVDM, which is used by windows to run DOS-Applications, to 64bit Windows, so that you can run your DOS-Applications on 64bit Windows too. This is a proof-of-concept that it is possible to run the NTVDM on 64bit Windows and Microsoft was just too lazy to port it over and have disabled it for unknown reasons. More specifically, it's a set of patches to the sourcecode of original Microsoft NTVDM from NT4 in order to work on 64bit Windows. Motivation ========== The first question that may come now is: Why porting NTVDM when DosBox is working even better and more accurate in x64 Windows. There are mainly 2 reasons: 1) DosBox doesn't have a good interaction with the windows console. Specifically it's not possible to start Windows Applications from within the DOS-programs, redirect their output, and other useful interactions that are possible with Windows' own NTVDM. Over time my DOS-Applications have grown to interact with various Windows Applications and Interfaces and that wouldn't work with DosBox for instance. 2) Simply as a proof-of-concept that it would technically be possible and to encourage Microsoft to maybe take my patches and incorporate them into future Windows releases in order to bring back proper NTVDM Support on x64 (still x32 is a lot faster because of V86 mode, but on machines with lots of RAM, which may be required to run x64, there may be use for this). How does it work? ================= I never thought that it would be possible at all, as NTVDM on Win32 uses V86 mode of the CPU for fast code execution which isn't available in x64 long mode. However I stumbled upon the leaked Windows NT 4 sourcecode and the guys from OpenNT not only released the source but also patched it and included all required build tools so that it can be compiled without installing anything but their installation package. The code was a pure goldmine and I was curious how the NTVDM works. It seems that Microsoft bought the SoftPC solution from Insignia, a company that specialised in DOS-Emulators for UNIX-Systems. I found out that it also existed on MIPS, PPC and ALPHA Builds of Windows NT 4 which obviously don't have a V86 mode available like Intel x86 has. It turned out that Insignia shipped SoftPC with a complete emulated C-CPU which also got used by Microsoft for MIPS, PPC and ALPHA-Builds. For V86 mode, Microsoft implemented some facility called "Monitor" which is the piece of Software that interacts with the V86 part in the NT Kernel. However they assumed that i386 build = built with Monitor, therefore the sourcecode had to be patched to distinguish between a i386 build with CCPU and one with MONITOR. But there are a lot of other pitfalls too, which are to overcome. One major problem is that NTVDM uses calls to the Console and CSRSS Subsystem which are only used by the NTVDM and are therefore not working out of the box on x64 systems. Also stuff like Page allocation granularity poses a problem to EMM memory management on x64 systems. And last but not least, the way NTVDM is invoked is rather complicated, because it is done by the loader code of kernel32/kernelbase which registers the NTVDM and the requested application with the console server and the builds a commandline to execute NTVDM with the appropriate parameters (when I have more time, I may write how this all works in more detail). But fortunately as there still are 32bit Versions of Windows, Microsoft still has the code available in their x64 Windows Versions, as they are compiling the same codebase as on Win32. This enables us to use these facilities also on 64bit Windows, but structures have to be converted forward and back between 32bit and 64bit structures as NTVDM is 32bit code and therefore runs inside WOW64. WOW64.dll generally has transformations for a lot of calls by 32bit applications, but Microsoft didn't implement the ones that are necessary for NTVDM (as they are just used by this one application). Additionally they broke some functions on x64 builds simply by introducing bugs or not properly converting them, i.e. for console graphics. So all these difficulties require the system to be patched in order to support the calls of NTVDM and let it load properly with the CCPU. One solution would be binary patches of the Windows system files, but this is problematic as these files can change with various upgrades and there is also a nasty Patchguard in Windows which doesn't allow system files to be modified. Therefore the way to go here is a DLL that gets loaded into every process and patched the operating system DLLs in memory right after loading the application. The patcher also has to replicate between 32bit and 64bit processes which is another challenging task. The method that has been chosen by me is creating 2 DLLs, one for 32bit and one for 64bit (as they required different code for replication and modification). These DLLs get loaded into every process as AppInit-DLL, which is a nice mechanism by Windows that allows DLLs to be injected into every GUI process. Unfortunately these DLLs nowadays have a signature enforcement in order to get loaded, but this can be turned off in registry. As far as I know this only works if "Secure Boot" is off OR if Windows is in Testsigning mode, which therefore is a requirement for this all to work. Starting with Windows 11, "Secure Boot" cannot be disabled out of the box, therefore we use AppCert.DLL approach on Win 11 loader. Fortunately, the Windows 11 loader can also be used under Windows 10, so it is now possible to also use ntvdmx64 without Secure Boot. AppInit-DLLs only get injected to GUI processes by the CSRSS, but injection is also required into CLI processes as these are even more likely to launch a DOS application. Therefore the AppInit-DLL also has to invade the console server and inject into created console applications from there (WinEvent hook). Of course this mess could be all avaoided if Microsoft would implement all the required patches from the AppInit-DLL into their WOW64 and into NTDLL (which wouldn't hurt anyway). Further technical details will be provided later. With the help of the mentioned AppInit hook loader it is possible to start the NTVDM when a user tries to launch a DOS-Application. The NTVDM.EXE has to reside within SYSTEM32 and SysWow64 directories, as it gets searched and called from 32- and 64bit appliations. As NTVDM.EXE is a 32bit application, all its support files need to be in SysWow64 directory as this is the SYSTEM32 directory seen by 32bit applications. Futhermore the way how the windows console works changed with Windows 7. In earlier times, this was all managed by the CSRSS, but nowadays it is done with the conHost.exe Console host process, which processes the calls to the console. The calls are transparent for the caller, so this shouldn't be a problem, but there are 2 different ConHost DLLs that implement 2 versions of the console server. Only version 1 of the Console supports direct console I/O by the NTVDM. On Windows 10 for instance, a registry entry forces the conhost to use Console V2, so this has to be changed to use V1 console so that NTVDM can interact with it, but this fortunately is just a matter of setting a registry key. Some registry keys also need to be set to show that the NTVDM is present and can get called. So this is all rather complex, but it sort of works with some patches to the operating system. It's enough as a proof-of-concept and to use it for most business applications and even some games. Cool, where can I get it? ========================= Redistribution of the compiled NTVDM is probematic, as it is based on leaked Windows NT 4 sourcecode, which is (C) by Insignia and Microsoft, so I'm legally not allowed to redistribute the code. However I published the code and compiled versions of the loader that enables you to run the patched NTVDM, as this is my own code. As the OpenNT project released the sourcecode, copyright issues are up to them, I can just say that you need the old-src.trunk.r687.20150728.7z source package released by them (Google and web.archive.org are your friends) if you want to try it out. Depending on the build flavour you choose, you also need the appropriate SDK package. I'm providing patchfiles that patch the sourcecode to compile your own version of NTVDM which works on x64, publishing patches shouldn't be a copyright issue, I hope. And therefore you can try to patch the source and compile it yourself. Of course it would be nice if Microsoft would do that themselves to provide x64 Windows users a NTVDM again, but I'm not very positive that this will happen, they seem to forget about us DOS-users. :-( There are various "flavours" of NTVDM that can be built: * old-src [!DO NOT USE!] The original NT4 NTVDM. Maybe the easiest version to build, but it doesn't have multilanguage and lacks some features like LFN This has been the default repository until Feb/2020 where development has been switched to MINNT tree. This build method therefore is DEPRECATED in favour of the MINNT build systemand will not receive any future updates! This build is left unmaintained and unchecked, so don't complain if it doesn't build anymore. Please note that you need Windows XP for building. Build instructions in: doc\old-src.txt * HAXM Instead of using the emulated CCPU, it uses HAXM VT-x hardware accelleration (CPU needs to support it), so it is significally faster in textmode. But it will probably never support graphics, as it is technically impossible to emulate a real VGA card with sufficient performance on VT-x Works with minnt and old-src build. Build instructions in: doc\haxm.txt * MINNT This is the most recent NTVDM source code, it supports multiple languages, but is probably harder to build. It is planned to continue development on this source tree as of Feb/2020 Build instructions in: doc\minnt.txt To make building easier, there is an automated build system available. Please refer to doc\autobuild.txt for details. In case you want a fully compiled build, I recommend Googling for ntvdmx64 How to install ============== Now you can install the NTVDM on the destination machine: Run install.bat so that all files will be installed on the target machine and Registry patches will get applied. Afterwards you may need to reboot the machine to get the AppInit-DLL loaded into explorer, but it should already get loaded into the next GUI process you start (as long as it's a loader based on AppInitDLLs which is true for Windows Versions <10 and Windows 10 with Secure Boot disabled), so if you start a DOS-Application from this process, it should also work. You must also ensure, that the machine is connected to the Internet during the first run of a DOS-Application, because the loader code needs to fetch symbols from the Microsoft Symbol server so that it can call OS internal functions in order to properly start NTVDM. When the symbols are once fetched for the current user, they won't be fetched again, until either the Temp-folder is cleared or the OS files are upgraded. Debugging ========= Name of debugger Master Yoda is. Compiling frontend in mvdm\softpc.new\debugger you do. Like Gandalf, debugger master Yoda smokes pipe in \\.\pipe\softpc Therefore writing REG_SZ Key named PIPE containing \\.\pipe\softpc to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\CpuEnv you need. Setting empty REG_SZ named TRACE to CpuEnv you must. After running vdmdebug.exe, you will be enlighted by running vdmdebug. Do not call Yoda, Yoda will call you. Known bugs ========== Currently there are crashes with some DPMI programs like i.e dpmi.exe, but most programs should work, I hope. Tested on ========= Windows Server 2003 x64 Windows 7 x64 Windows 8 x64 Windows Server 2008 x64 Windows 10 x64 Windows 11 x64 You are invited to improve this project to bring back DOS to Windows. FAQ === NTVDMx64 stops working after Patch Tuesday updates, what shall I do? --------------------------------------------------------------------------- It always takes some time (up to 7 days) after new symbols for updated dll files required by the loader get released. So the only thing you can do in such a situation is to wait until the new symbols appear. The loader should start working again automatically, after the symbols become available and you have an Internet connection available that allows downloads from the Microsoft Symbol Server. You can verify if the missing symbols are the problem by checking the loader output via DebugView. Additionally, it's a good idea to execute reload-symcache.cmd from the release-directory in order to delete the symbol cache of the NTVDM loader, as it sometimes becomes out of sync and starts acting weird, so this will ensure that it reloads all the symbols. I want to have a proper soundcard emulation --------------------------------------------------------------------------- MINNT build supports AdLib soundcard emulation by incorporating code parts of SoundFX2000 into NTVDM SB20 emulation. To make it more clear: As MUSIC device, select AdLib As SOUND device, select Soundblaster 2.0 But you can also try to use the real http://www.softsystem.co.uk/products/soundfx.htm To remove time limit (as it's free nowadays anyway), please see: #40 (comment) But it sometimes causes applications to hang and not react to keyboard input, so only try it if the NTVDM internal sound emulation isn't good enough for your needs. The PC speaker output is choppy and generally inaccurate, I want my PC speaker sound back --------------------------------------------------------------------------- This is not NTVDMx64's fault, it is related to a bad design change in Windows starting with Windows 7. It can be solved by installing a proper PC Speaker driver: https://www.vogons.org/viewtopic.php?f=46&t=58233 I want to run 16bit Windows applications --------------------------------------------------------------------------- As of 05/2020, NTVDMx64 now generally supports WOW32, so your applications should run. However, they currently only work with the CCPU build and we know that the CCPU is slow, so I still recommend wineVDM: https://github.com/otya128/winevdm The loader tries to detect if winevdm is installed and if so, it gets precedence over NTVDMx64. If you restore original registry entries, WOW32 will be handled by NTVDMx64 again. The crucial registry key for the check is: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NtVdm64\0OTVDM If it is present, NTVDMx64 won't load its WOW32 implementation. Please note, that detection of the key is done upon inital load of ldntvdm.dll into the process address space, so if you toggle the 0OTVDM, the process where you are launching your 16 bit application from needs to be restarted. If unsure, you can reboot your machine after installation/uninstallation of WineVDM handlers. To debug wow32, before launching your application: set WOWTRACE=C:\log.txt set WOWLOGLVL=16 For more detailled information about debugging, please refer to doc\debug-wow.txt Is there a way to enlarge the graphics window? --------------------------------------------------------------------------- You can use the EyeStrain parameter for this. Just execute reg\eyestrain.reg from the release-folder of NTVDMx64 and as soon as the parameter is set, you can switch between 3 variants of graphics display (Standard - Big - Huge) by pressing the "Scroll Lock" key. This only works in graphics mode! Here is how it works: The .reg file creates a REG_SZ key named "EyeStrain" under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\CpuEnv which contains the string representatino of a hex value of the VK_ virtual key code that needs to be checked for in order to switch between magnificaton sizes. The .reg file contains "91" as value, as 0x91 is the VK_SCROLL. You can find a list of Virtual keycodes here and change it accordingly: https://nehe.gamedev.net/article/msdn_virtualkey_codes/15009/ Further explanation how it used to work on MIPS/Alpha builds: #95 (comment) I want to use more than 16MB of DPMI memory --------------------------------------------------------------------------- NTVDM is patched to obey DPMI memory size from .PIF file. However, its size is limited to maximum of 64MB due to .PIF specification. If you want to use more, you must set a registry key under: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\CpuEnv Create a REG_SZ value named DPMIMEM with the requested size of DPMI memory in KB, i.e. 131070 for 128MB of DPMI memory max. You can just execute the reg\dpmimem.reg from the release-folder of NTVDMx64 to set 128MB of DPMI mem. I want to use my mouse in my textmode application and not select text --------------------------------------------------------------------------- You forgot to disable QuickEdit mode of the windows console. See: #80 When launching a DOS program from a user's console, it doesn't start on first launch and on second launch, I get System Error 4001h --------------------------------------------------------------------------- This is due to the fact that the ForceV2 key of the Windows console is on a per-user basis, not systemwide, so it resides in HKEY_CURRENT_USER\Console Do you need to set the DWORD ForceV2 key in mentioned path to 0. You can just execute reg\conhost.reg from the release-folder of NTVDMx64 as the correct user to fix that key. It seems that my applications crash randomly i.e. on launching NTVDM and I see weird behaviour (possibly after a Windows update). I suspect bad offsets in the Symbol Cache, how can I refresh the NTVDM symbol cache? -------------------------------------------------------------------------- Run reload-symcache.cmd from the release-directory to tell the loader to reload all required symbols. I want to use WSL (Windows Services for Linux), but it doesn't work due to the requirement for ConhostV2, however NTVDMx64 enforces ConhostV1. How can I use WSL and still use NTVDMx64? -------------------------------------------------------------------------- If you can live with the shortcoming that you cannot directly launch a DOS application on the new console (i.e. from cmd.exe shell), but let it open up in a new console, you can revert the default console host setting by executing reg\conhostv2.reg from the release-folder of NTVDMx64 to revert that key to Windows default (ConhostV2). It is also possible to switch between consoles with conhost.reg for classic console (NTVDMx64 compatible) and new console with conhostv2.reg So i.e. to execute WSL, execute conhostv2.reg prior to starting WSL and afterwards, revert it with conhost.reg. It seems that there are currently no plans to implement conhostv1 functionality into conhostv2 by Microsoft, unfortunately, leaving us with this workaround as the only option. Even after uninstalling NTVDMx64, I cannot use WSL anymore due to classic console being enforced. What can I do? -------------------------------------------------------------------------- See question above. I want to print to my windows GDI printer or a network printer --------------------------------------------------------------------------- Use DOSPR.ZIP, see here: #161 I have trouble printing to a printer which has been redirected via "net use" --------------------------------------------------------------------------- You may need to use SMBv1 and disable SMBv2. See: #161 https://docs.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3 I still suggest you use DOSPR.ZIP Printing to a printer attached to the LPT port doesn't work on Win11 --------------------------------------------------------------------------- Enable plug&play, see: #245 I want to completely disable error messages regarding direct disk access etc. --------------------------------------------------------------------------- There is a non-standard extension as this feature was requested by a user. Under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW create a new REG_DWORD value called TlsDirectErrorDefault There you must use a bitmask which error messages you want to suppress (OR the values together): Hex Flag An application has attempted to.... ------------------------------------------------------------------------- 1 D_A_FLOPPY, "directly access an incompatible diskette format" 2 D_A_HARDDISK, "directly access the hard disk" 4 D_A_DRIVER, "load a 16-bit Dos device driver" 8 D_A_ILLBOP, "perform an unknown internal 'BOP' opcode" 10 D_A_NOLIM, "allocate Expanded Memory" 20 D_A_MOUSEDRVR "use a third party mouse driver" i.e., if you want to suppress the first 2 errors, set it to 3. I have a HASP/HARDLOCK dongle for my DOS application and want to get it working with NTVDMx64 --------------------------------------------------------------------------- Use the HASPNT64 driver: https://github.com/leecher1337/haspnt64 Why doesn't QUAKE work? --------------------------------------------------------------------------- See: http://www.delorie.com/djgpp/v2faq/faq18_6.html Are there any documents that describe the inner workings of the NTVDM subsystem? --------------------------------------------------------------------------- Not much documentation available, but this slide may be interesting to you: https://documents.pub/document/2013-syscan360-wang-yuntvdm.html For other questions, I recommend looking at the Issue tracker: https://github.com/leecher1337/ntvdmx64
NTVDM is a Feature on Demand and only supported on the x86 version of Windows. It is not supported on x64 and ARM versions of Windows, which do not support 16-bit x86 code of any kind, including DOS programs.
How do I enable NTVDM on Windows 10 64-bit?
Just open the Control Panel, go to Programs, and click Turn Windows Features on or off. You can find NTVDM listed in the Legacy Components section, as shown in the image below. Incidentally, NTVDM does not exist in 64-bit editions of Windows 10, as illustrated in the next image.
How do I run 16 bit programs on Windows 10 64-bit?
Configure 16-bit Application Support in Windows 10. 16 Bit support will require enabling the NTVDM feature. To do so, press Windows key + R, then type: optionalfeatures.exe then hit Enter. Expand Legacy Components then check off NTVDM and click OK.
How do I download NTVDM on Windows 10?
Please follow the steps below to download and properly replace you file: Locate your Windows operating system version in the list of below “Download ntvdm.exe Files”. Click the appropriate “Download Now” button and download your Windows file version. Copy the file into the appropriate directory for your Windows version:.
What is NTVDM Windows 10?
NTVDM stands for NT Virtual Dos Machine. It is not installed by default in Windows 10. It was introduced with Windows Vista as a compatibility component for older programs. It you are installing or running older programs, Windows 10 will identify the need for NTVDM and ask you to install it.
Can Windows 10 run DOS programs?
If so, you may be disappointed to learn that Windows 10 cannot run many classic DOS programs. Luckily, the free and open source emulator DOSBox can mimic the functions of old-school MS-DOS systems and allow you to relive your glory days!Sep 13, 2017.
How do I reinstall Ntvdm EXE?
How to Reinstall NTVDM.exe Insert your Windows installation CD in the appropriate drive. Open the search feature by clicking “Start” > “Search.” Specify the directory to search in by selecting your CD drive, which is “D:” by default. Copy the three files to your hard drive. Type “expand ntvdm.
How do I run a DOS program in Windows 10 64-bit?
Windows 64-bit Download and install vDos. By default, it installs to C:\vDos, but I recommend you install it into a new folder you create inside your Documents folder. That way, all of your DOS data files will be backed up and protected (assuming you back up—and you should).
Can I run a Windows 95 program on Windows 10?
There’s now an Electron app with Microsoft’s Windows 95 operating system that you can install and run on Windows 10 devices. The well-known developer Felix Rieseberg has packed the full-fledged Windows 95 operating system in an app that you can run on your computer.
Can I run a 32-bit program on Windows 10?
In general, yes, you can . the fact that they are 32-bit is irrelevant. Both 64-bit Windows 10 and 32-bit Windows 10 can run 32-bit programs.
What is the file Ntvdm EXE?
Ntvdm.exe is a legitimate file. It is also known as Windows NT Dos Virtual Machine which belongs to Microsoft Windows Operating Systems. It is used to provide an Environment for 16 bit process to execute on a 32 bit platform. It is commonly stored in C:\Windows\System32.
How do I run vDos?
To run your software, download your DOS software and place it in the same directory as vDos (for example, “C:\vDos”). This directory is treated as the initial “C:\” directory. Use the dir command to list files in your current folder, then cd followed by a folder name to move to that folder.
How do I fix Ntvdm exe in Windows 10?
How to fix NTVDM encountered a System Error in Windows 7 & Windows 10. * Enable NTVDM Component. Simultaneously press the Win. + R keys to open the run command box. Enable Legacy console. Simultaneously press the Win. Step 3 (Optional *). Enable Access to 16-bit Applications from Registry or Group Policy.
What is WineVDM?
WineVDM is an open-source compatibility layer that emulates kernel/user/GDI calls with other aspects like windowing being passed off to the host OS. It’s a fork of Wine using MAME’s 80386 CPU core and MS-DOS Player.
Can Windows 7 32-bit run 16 bit programs?
Yes, 32-bit Windows 7 can run 16-bit programs.
How can I run Foxpro 2.6 on Windows 10?
Steps: Download and install DOSBox – it is an emulator with DOS, you can run any DOS applications using this emulator. Create a folder to mount as a drive in DOS, for example, create a folder named ‘DOSBOX’ in D drive. ( Download and copy the foxpro installation package folder to the DOSBOX folder. ( Open DOSBox.
How do I install DOS on Windows 10?
Installing MS-DOS 6.22 Insert the first MS-DOS installation diskette into the computer and reboot or turn on the computer. If the MS-DOS setup screen appears when the computer starts press the F3 key two or more times to exit from the setup. Once at the A:\> MS-DOS prompt type fdisk and press Enter .
How can I play old DOS games on Windows 10?
So, how to play old DOS games on Windows 10? The easiest way to do it is by using DOSBox, which is a DOS emulator available for Windows, Mac, Linux, and various other operating systems. It creates a virtual environment on your PC that resembles the Disk Operating System.
How do I fix NTVDM exe has stopped working?
EXE has stopped working” and it keeps appearing again and again. To troubleshoot this issue, run System File Checker (SFC) scan on your computer. In addition, ensure that your computer has all the latest updates. Visit the support section of your computer manufacturer’s website and check for all the updates.
How do I use NTVDM?
NTVDM is provided as a Feature on Demand, which first must be installed using a DISM command. Run Windows PowerShell ISE as an administrator and use the following command: To enable NTVDM: DISM /online /enable-feature /all /featurename:NTVDM. To disable NTVDM: DISM /online /disable-feature /featurename:NTVDM.
Can Windows XP run 16 bit applications?
Windows XP is a 32-bit operating system and runs 16-bit programs via a bit of a bodge known as Windows NT Virtual DOS Machine support (NTVDM). However, 16-bit Windows programs will not work at all when we move to 64-bit Windows (and 32-bit programs are run using WOW), so it’s time to start replacing them.
Are you tired of being unable to run your favorite old-school games or applications on Windows 10? Do you miss the good old days of MS-DOS and Windows 95? Well, fear not, dear reader, for we have some fantastic news for you! It is possible to get NTVDM (NT Virtual DOS Machine) up and running on Windows 10, and in this article, we’ll show you exactly how to do it.
The Magic of NTVDM
For those who may not be familiar, NTVDM is a virtual machine that allows MS-DOS and 16-bit Windows applications to run on 32-bit versions of Windows NT. It was first introduced in Windows NT 3.1 and was a key feature of Windows 95 and Windows XP. However, with the advent of 64-bit versions of Windows, NTVDM was phased out due to compatibility issues.
But why is NTVDM so important, you ask? Well, many classic games and applications were built to run on MS-DOS or 16-bit Windows, and without NTVDM, they simply won’t work on modern versions of Windows. This has left many enthusiasts and gamers frustrated, unable to experience the nostalgia of their childhood or run critical business applications.
The Challenges of Running NTVDM on Windows 10
So, why can’t we simply install NTVDM on Windows 10 and be done with it? The problem lies in the fact that Windows 10 is a 64-bit operating system, and NTVDM was designed to run on 32-bit systems. This means that NTVDM is not compatible with Windows 10 out of the box, and Microsoft has not provided an official way to run it on the latest version of Windows.
However, where there’s a will, there’s a way, and enterprising enthusiasts have found ways to get NTVDM up and running on Windows 10. But before we dive into the solution, it’s essential to understand the risks involved.
Risks and Limitations
Running NTVDM on Windows 10 is not without its risks and limitations. Since NTVDM is not officially supported by Microsoft, you may encounter stability issues, compatibility problems, or even system crashes. Additionally, NTVDM may not work with all applications or games, and you may need to tweak settings or use workarounds to get things running smoothly.
Furthermore, using NTVDM on Windows 10 may also pose security risks, as older applications may not have the same level of security as modern software. This means you’ll need to be cautious when running older applications and ensure you have the necessary antivirus software and firewall protections in place.
Solution 1: Installing NTVDM using Compatibility Mode
One way to get NTVDM running on Windows 10 is by using the built-in Compatibility Mode feature. While this method may not work for all applications, it’s worth trying before exploring more advanced solutions.
To use Compatibility Mode, follow these steps:
- Right-click on the application or game you want to run and select Properties.
- In the Properties window, click on the Compatibility tab.
- Check the box next to Run this program in compatibility mode for, and select Windows XP (Service Pack 3) from the dropdown menu.
- Click OK to apply the changes.
If you’re lucky, the application or game will now run without issues. However, this method has its limitations, and you may need to try more advanced solutions to get NTVDM working.
Solution 2: Using DOSBox and ScALER
Another way to run NTVDM on Windows 10 is by using DOSBox, a popular emulator that mimics the MS-DOS environment. To take things to the next level, we’ll also use ScALER, a tool that allows you to run Windows 3.x and 9x applications on modern Windows versions.
Here’s how to set things up:
- Download and install DOSBox from the official website.
- Download the ScALER package from a reputable source.
- Extract the ScALER zip file to a folder on your computer, such as C:\Scaler.
- Open DOSBox and configure it to use the ScALER package by adding the following lines to the [autoexec] section of the dosbox.conf file:
mount c c:\Scaler
c:
scaler.exe
- Save the changes and restart DOSBox.
With DOSBox and ScALER up and running, you should now be able to run NTVDM-compatible applications and games. However, keep in mind that this method requires some technical expertise, and you may need to tweak settings or use workarounds to get things working smoothly.
Solution 3: Using PCEM and NTVDMx86
If the above methods don’t work for you, it’s time to bring out the big guns. PCEM (PC Emulator) is a powerful emulator that allows you to run a wide range of operating systems, including Windows 95 and 98. By combining PCEM with NTVDmx86, a modified version of NTVDM, we can create a virtual environment that mimics the 32-bit Windows NT architecture.
Here’s how to set things up:
- Download and install PCEM from the official website.
- Download the NTVDmx86 package from a reputable source.
- Extract the NTVDmx86 zip file to a folder on your computer, such as C:\NTVDmx86.
- Configure PCEM to use NTVDmx86 by creating a new virtual machine and selecting the Windows 95 or Windows 98 operating system.
- In the Hardware tab, select the NTVDMx86 option under Processor.
- Save the changes and start the virtual machine.
With PCEM and NTVDmx86 up and running, you should now have a fully functional NTVDM environment that allows you to run 16-bit Windows applications and games on Windows 10. However, this method requires a significant amount of technical expertise, and you may need to tweak settings or use workarounds to get things working smoothly.
Conclusion
Getting NTVDM up and running on Windows 10 may require some technical wizardry, but the rewards are well worth the effort. Whether you’re a retro gaming enthusiast, a nostalgic for the good old days of MS-DOS, or simply need to run critical business applications, NTVDM can unlock a world of possibilities on modern Windows versions.
By following the methods outlined in this article, you should be able to get NTVDM working on Windows 10, allowing you to run classic applications and games with ease. Remember to exercise caution when running older software, and always ensure you have the necessary antivirus software and firewall protections in place.
So, go ahead and unleash the power of NTVDM on Windows 10. Your inner child (or retro gaming enthusiast) will thank you!
What is NTVDM and why do I need it?
NTVDM, or NT Virtual DOS Machine, is a system component of Windows NT-based operating systems that allows running 16-bit DOS and Windows 3.x applications. It provides a virtual environment for these older applications to run, allowing them to access hardware resources and interact with the operating system. You may need NTVDM if you have older software or games that were designed for DOS or Windows 3.x and want to run them on your modern Windows 10 system.
By using NTVDM, you can enjoy classic games, use legacy software, or even run old business applications that were essential for your work. Without NTVDM, these applications would not be able to function properly, or may not even run at all, on modern 64-bit versions of Windows. By installing and configuring NTVDM correctly, you can unlock the full potential of your Windows 10 system and breathe new life into your old favorites.
Is NTVDM compatible with 64-bit versions of Windows 10?
NTVDM is not compatible with 64-bit versions of Windows 10 out of the box. Microsoft officially discontinued support for 16-bit applications on 64-bit versions of Windows, starting with Windows 7. However, there are workarounds and alternative solutions that can help you run NTVDM on 64-bit Windows 10. These solutions often involve using third-party emulation software or running a virtual machine with a 32-bit version of Windows installed.
Despite these limitations, many users have successfully managed to run NTVDM on 64-bit Windows 10 using creative solutions and workarounds. With some technical know-how and patience, you can also get NTVDM up and running on your 64-bit system, allowing you to enjoy your favorite old games and applications.
How do I install NTVDM on Windows 10?
Installing NTVDM on Windows 10 can be a bit tricky, especially on 64-bit systems. However, the process is relatively straightforward if you follow the right steps. For 32-bit systems, you can simply download the NTVDM installer from Microsoft’s website and follow the installation instructions. For 64-bit systems, you may need to use alternative solutions, such as third-party emulation software or virtual machines.
In either case, it’s essential to ensure that you have the necessary system files and components installed before attempting to install NTVDM. You may also need to configure your system settings and environment variables to allow NTVDM to function correctly. By following a comprehensive guide or tutorial, you can successfully install and configure NTVDM on your Windows 10 system.
Can I run multiple instances of NTVDM at the same time?
Yes, it is possible to run multiple instances of NTVDM at the same time on your Windows 10 system. This can be useful if you need to run multiple 16-bit applications simultaneously, or if you want to test different configurations or settings for different applications. However, keep in mind that running multiple instances of NTVDM can consume more system resources and may affect the performance of your system.
To run multiple instances of NTVDM, you may need to create separate shortcuts or batch files for each application, and configure the environment variables and system settings accordingly. Additionally, you may need to use third-party software or tools to manage and switch between multiple instances of NTVDM.
How do I troubleshoot NTVDM issues on Windows 10?
Troubleshooting NTVDM issues on Windows 10 can be challenging, especially if you’re not familiar with the technical details of the system component. Common issues include compatibility problems, errors, and crashes, which can be caused by a variety of factors, such as incorrect system settings, missing files, or conflicts with other applications.
To troubleshoot NTVDM issues, it’s essential to gather as much information as possible about the error or problem you’re experiencing. Check the system logs and event viewer for error messages, and try to isolate the problem by testing different configurations and settings. You can also seek help from online forums, tutorials, and guides, or consult with experts who have experience with NTVDM and Windows 10.
Are there any alternatives to NTVDM for running old games and applications?
Yes, there are several alternatives to NTVDM for running old games and applications on Windows 10. Some popular alternatives include DOSBox, ScummVM, and Windows XP Mode, which can provide a more comprehensive and compatible environment for running older software. These alternatives may offer additional features, such as improved performance, graphics, and sound support, or enhanced compatibility with modern hardware and software.
When choosing an alternative to NTVDM, consider the specific requirements of the old game or application you want to run, as well as the system resources and compatibility of your Windows 10 system. Some alternatives may be more suitable for certain types of applications, while others may offer more flexibility and customization options.
Is NTVDM still supported by Microsoft?
Microsoft officially discontinued support for NTVDM with Windows 7, and it is no longer supported on modern versions of Windows, including Windows 10. However, the NTVDM system component is still present in the Windows 10 operating system, and many users have reported success in getting it to work with some creativity and technical know-how.
Although Microsoft no longer provides official support or updates for NTVDM, the community and online forums continue to offer guidance, tutorials, and workarounds for running NTVDM on modern Windows systems. By leveraging the collective knowledge and experience of these communities, you can still get NTVDM up and running on your Windows 10 system.
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 a compiled version of his patched version, but I have obtained a copy, together with an installer, which may be downloaded here. I did not build this copy; I obtained it from another source. 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 January 2022.)
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.
This copy of 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, it switches smoothly between text and graphic modes.