16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
Summary
winevdm (otvdm) 是一个 16 位 Windows 模拟器的修改版,移植到 64 位 Windows 上,可在现代系统中直接运行 Windows 1.x/2.x/3.0/3.1 等 Win16 程序和部分 DOS 可执行文件。
View Cached Full Text
Cached at: 10/27/26, 02:06 AM
otya128/winevdm
Source: https://github.com/otya128/winevdm
winevdm on 64-bit Windows
Download latest version (unstable)
16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
An altered version of winevdm (a 16-bit Windows emulator), ported to 64-bit Windows.
How to run
- If you get an error that VCRUNTIME140.dll is missing, install Microsoft Visual C++ Redistributable for Visual Studio 2017 (32-bit)
- Drag and drop Win16 executable file to otvdm.exe or execute otvdmw.exe.
How to install
- Download or compile
- Run “install” shortcut or right-click on install.inf and select “Install”
- You can execute Win16 binaries directly!
If the registry is initialized by Windows Update, perform the above procedure again.
You can uninstall it by running uninstall.reg.
Configuration
See otvdm.ini.
How to compile(Visual Studio)
- Install Visual Studio 2017
- Edit PropertySheet.props
- Compile
How to compile(cmake)
git clone https://github.com/otya128/winevdm.git
cd winevdm
mkdir build
cd build
cmake ..
make
How does it work?
This program contains the following items
- CPU Emulator
- 64-bit Windows cannot modify LDT(NtSetInformationProcess(,ProcessLdtInformation,,) always returns error)
- wine based Win16->Win32 conversion codes:
Relay routines from 16-bit to 32-bit are autogenerated by convspecBOOL16 WINAPI DestroyWindow16( HWND16 hwnd ) { return DestroyWindow( WIN_Handle32(hwnd) ); }53 pascal -ret16 DestroyWindow(word) DestroyWindow16 - DOS emulation for Win16
- 16-bit <=> native HANDLE conversion
- Fix compatibility problems, fix compatibility problems
install.inf
When 64-bit Windows detects a 16-bit installer, it has a mechanism to start an alternative installer which is not 16-bit. This program uses it.
WINDOWS directory redirection
Some Win16 programs try to save their settings in %WINDIR%<filename>.ini
In recent Windows, it is not allowed to save to %WINDIR%, so it redirects.
winevdm
winevdm.exe [--app-name app.exe] command line
winevdm.exe CALC.EXE
It can also run DOS executables (DOS emulator-like). You can set the DOS version with the VDMDOSVER environment variable.
DOS emulation is incomplete and it is recommended to use DOSBox or MS-DOS Player.
Similar Articles
Oldest GUI application that still runs on Windows 11
一个技术博客探索了能在 Windows 11 上不加修改直接运行的最古老 GUI 程序,最终发现 1992 年 11 月链接的 CDPLAYER.EXE(来自 NT 3.1 预发布 Build 347)仍可运行,甚至用 otvdm 模拟器还能运行 1985 年的 REVERSI.EXE。
Run Windows 2000 on a DEC Alpha with a new es40 fork
A new fork of the es40 emulator adds JIT compilation and S3 graphics support, enabling faster emulation of Windows 2000 and OpenVMS on DEC Alpha systems.
Wine ported to OpenBSD
A collective effort has produced a working port of Wine to OpenBSD, with dozens of 64-bit Windows applications—including The Witcher 3 remaster—running successfully, though 32-bit WoW64 software remains unsupported.
More emulation goodness, an Intel Itanium (IA-64) emulator that boots Windows
A new Intel Itanium (IA-64) emulator from Yufeng Gao and gdwnldsKSC can boot Windows Server 2003 and Windows XP 64-bit, though it runs very slowly. The code is expected to be open-sourced later.
VECOS – A Windows-Like Operating System for the Vectrex on the UVMC2 [video]
CharlesW showcases VECOS, a Windows-like operating system developed for the Vectrex's UVMC2 hardware, featuring built-in apps like a file manager, notepad, paint, DOS prompt, MP3 player, and solvable/minesweeper-style games. It supports USB mouse, keyboard, flash drive, and gamepad input, and looks ahead to future networking via an add-on Wi-Fi board.