otya128/winevdm

16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 32 minutes ago
Added to GitGenius on September 20th, 2026
Created on September 22nd, 2015
Open Issues & Pull Requests: 351 (+0)
GitHub issues: Enabled
Number of forks: 200
Total Stargazers: 3,422 (+0)
Total Subscribers: 86 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 56
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 733 days
Stale 30+ days: 52
Stale 90+ days: 45

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Detailed Description

winevdm is an emulator that runs 16-bit Windows applications on 64-bit Windows.

The tool solves the problem of executing legacy 16-bit Windows binaries on modern 64-bit systems, which cannot natively run 16-bit code. It works by combining a CPU emulator, Wine-based Win16 to Win32 conversion routines, and DOS emulation. The emulator handles the architectural gap between 16-bit and 64-bit Windows by converting 16-bit relay routines to 32-bit equivalents, managing handle conversion between 16-bit and native formats, and redirecting file operations that legacy programs attempt to perform in protected system directories.

Adoption suits developers or users who need to run legacy 16-bit Windows applications from the 1.x through 3.1 era on contemporary Windows systems. The tool integrates with the Windows installer detection mechanism, allowing 16-bit executables to be run directly after installation. It also provides incomplete DOS emulation, though the README recommends DOSBox or MS-DOS Player for serious DOS application support. The project offers both stable and development builds, with configuration available through an INI file.

Development activity shows consistent engagement with the codebase. The project maintains both Visual Studio and CMake build systems, indicating attention to developer accessibility across different build environments. Bug fixes and compatibility improvements appear as ongoing work, with the README documenting known limitations and workarounds such as registry reinitialization issues and incomplete DOS support. The availability of unstable development builds alongside stable releases suggests active iteration on features and fixes.