Otvdm/winevdm: run old Windows software in 64-bit Windows


A method for running 16-bit Windows programs in 64-bit Windows

Applications written for Windows 1.x, 2.x, or 3.x, and some programs written for Windows 95 or Windows 98 or Windows Me, cannot run in 64-bit Windows because 64-bit Windows has no support for 16-bit applications.

A programmer who calls himself or herself otya128 has adapted the Wine ("Wine Is Not an Emulator") software into a system called winevdm (also otvdm) so that old Windows programs (including installation programs) can run in 64-bit Windows as if they were ordinary modern Windows programs. With this system installed, you can simply double-click on these old Windows programs and launch them in the same way that you launch modern Windows programs. Under this system, these old programs can open files in the same way that modern Windows applications do, and many (but not all) applications that were designed to send data to a printer can print to any Windows printer. Some visitors seem to think I wrote otvdm; it is not my work; it was written by the programmer who uses the name otya128.

If you need help with this system, do not ask me, because I do not know the answer! Create an "issue" report at the GitHub page for this project.

Note: Some simple DOS (non-Windows) programs can run by entering the command "otvdm <dosprogram.exe>" (use the actual name and no quotation marks) from the otvdm folder. For anything more complicated, you'll need vDos or some variety of DOSBox.

The easiest way to install OTVDM is go the Releases page on its Github site. Find the version marked "Latest", download the zip archive listed under Assets, and extract it to any convenient folder (for example C:\OTVDM). Then double-click on Install. That is all you need to do.

If for some reason your 16-bit application doesn't work with the latest release version, you may download the most recent experimental build of the software from this AppVeyor page, by following these links on the page: click "Jobs", then "Environment: THIS_BUILD_IS_RECOMMENDED [etc.]", then "Artifacts" (at the right, above the blue screen image), then download the zip file named "otvdm-master-###.zip". Extract the files to a convenient folder (for example, C:\OTVDM) and click on Install.

You do not need it, but, if you want, you can download an Inno Setup installer that I created for a recent (October 2023) version of otvdm. My installer will never be as up-to-date as the version you can find on the AppVeyor page linked above, which includes an installer. Please do not waste your valuable time (as one visitor did) by sending me e-mails telling me that I should update my installer.

My installer offers to install the system into a folder named OTVDM in the root of your system drive (typically C:), but you can select or create any other folder that you may prefer. After installing the system, you can update it with the latest release of the system by downloading the new release from the AppVeyor page linked above and copying its contents into OTVDM folder, overwriting the existing files. But keep this in mind when installing or reinstalling: If you have already installed otvdm/winevdm using this or any other installation method, my installer will prompt you before it overwrites your otvdm.ini and otvdm\windows\system.ini and otvdm\windows\win.ini files. If you let the installer overwrite these files, you may need to install your 16-bit Windows applications again. Back up your otvdm system before reinstalling! The latest version of the installer offers to open the otvdm.ini file for editing. I strongly recommend that you open that file and read its contents. Some applications (e.g. XyWrite for Windows) will not run unless you enable the option to limit font enumeration.

Show 16-bit icons in Explorer: The installer offers to run a small program (created by the author of otvdm) that allows icons of 16-bit programs to appear in Windows Explorer, instead of appearing with generic icons. I strongly recommend that you accept the option to run this program (which only needs to be run once). It seems to have no ill effects, only benefits.

Virus detection: Some anti-malware programs will report that the installer I provide contains malware; this is to be expected with software that goes fairly deep into the operating system, as otvdm does. If you don't trust my software, don't use my software! Find something else instead! If you want expert opinions, I recommend uploading the installer to sites like virustotal.com or metadefender.opswat.com. When I uploaded the installer to these sites, 4 out of 71 engines at VirusTotal and 1 out of 38 at MetaDefender reported the installer as a threat. It's up to you to decide what to do with results like these. Please don't waste your extremely valuable time sending me an e-mail asking if the installer is safe. If you don't trust it, don't use it!

Important note: The installer described above differs in two ways from a standard installation of otvdm/winevdm. First, it adds to the otvdm folder a program named FileOpen.exe that acts like the Windows start command (it runs applications or opens files); and, second, it changes the a line near the end of otvdm.ini so that FileOpen.exe, not otvdm itself, is used to open or run applications that are started from 16-bit applications. If this causes problems, edit C:\otvdm\otvdm.ini and comment out or remove the line that enables FileOpen.exe.

Another important note: My installer also offers to make a copy of FileOpen.exe that will be named Command.com. This change makes it possible for some applications to "go to DOS" or perform DOS commands. It is not necessary to specify this "Command.com" in otvdm.ini for it to work correctly.

The installer installs a "shim" that is designed to prevent errors when running an InstallShield installer for old Windows programs or games. You can read the details here; the installer modifies otvdm.ini and sets the compatibility mode for the "shim"; you need not do anything else to make this work correctly.

Alternatively, if you want to run a full Windows 3.1x environment, you can use my Win31DOSBox system, but you probably do not need it.


Use 16-bit programs for OLE linking

(This paragraph is based on information provided by Lennart Lindfors.) You can use a 16-bit application as an OLE server in applications that include an Insert->Object menu. Use regedit.exe to open the Windows Registry for editing. Find every instance of the path of your 16bit application, and change it as in the following example. In the registry, replace all instances of  c:\pathto\your16bit.exe  with something like the following (also, if necessary, replacing C:\otvdm  with the actual path of your installation).

c:\otvdm\otvdm.exe "c:\pathto\your16bit.exe"


Printing from 16-bit programs

Many applications will print to the same printers that you have installed in 64-bit Windows. The following notes may be useful in special situations.

WordPerfect 5.x for Windows. Do not use or install the WordPerfect printer drivers. Use the option to print using Windows printer drivers. You may need to experiment. Some Windows printer drivers will cause errors; some, like the default PCL6 driver for my HP LaserJet, will print correctly.

XyWrite for Windows. See a separate page for advice on using XyWrite for Windows.

If your 16-bit application can't work with current Windows printer drivers, or can't print for any other reason, you can use my PrintFilePrinter program, described on another page.


Edward Mendelson (edward [dot] mendelson [at] columbia [dot] edu)