otya128 / winevdm

16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
GNU General Public License v2.0
2.6k stars 150 forks source link

Some apps can't be run natively despite having winevdm installed #1387

Open FerdinandoPH opened 5 months ago

FerdinandoPH commented 5 months ago

Describe the bug Some Windows 1.0 apps do not run when opened natively through the explorer. They must be run going to the winevdm folder, running winevdm explicitly and selecting the old exe (as if winevdm's install shortcut had not been run). Opening the windows 1.0 apps through winedvm explicilty returns this error code: 0ea4:err:module:build_module exe type is not windows or windows/386. (typ:00, ver:0000), but the app opens normally. The apps I'm using can be found at the attached zip. winapps.zip

Expected behavior I expected the windows 1.0 apps to run directly when being clicked on at the explorer, instead of needing to drag them to winevdm

Screenshots image image

Environment (please complete the following information):

Additional context Add any other context about the problem here.

It is very helpful to provide a trace file if possible. Please note that this file contains detailed information about the program.

I was only able to generate a trace.txt when running the command otvdm clock.exe. Simply running clock.exe would return a warning saying that the program isn't compatible with 64 bit windows: Esta versión de D:\Users\perez\Desktop\Hacks\pc\otvdm-master-2497\CLOCK.EXE no es compatible con la versión de Windows que está ejecutando. Compruebe la información de sistema del equipo y después póngase en contacto con el anunciante de software.

trace.txt

cracyc commented 5 months ago

This isn't a bug with winevdm it's a bug in Windows itself. Winevdm depends on ntvdm64.dll which is loaded by kernel32.dll to see if the file is a win16 program but Windows 1.0 programs get misidentified as OS/2 1.x and so rejected. Since ntvdm64.dll is a Windows system file winevdm doesn't have any way to fix it.

Anixx commented 5 months ago

Maybe Windhawk can fix it?

WindowsNinetyTen commented 4 months ago

I noticed this too. Windows 1.0 programs can also be run using the version of MS-DOS Executive from Windows 3.0 available on Web Archive, in addition to dragging them to otvdm or opening them in otvdmw.exe. Windows 2.0 programs can be run directly.

kristibektashi commented 1 month ago

This isn't a bug with winevdm it's a bug in Windows itself. Winevdm depends on ntvdm64.dll which is loaded by kernel32.dll to see if the file is a win16 program but Windows 1.0 programs get misidentified as OS/2 1.x and so rejected. Since ntvdm64.dll is a Windows system file winevdm doesn't have any way to fix it.

Has this been fixed in the ARM64 version of the DLL? (which is a custom version since by default ARM64 Windows doesn't have ntvdmx64.dll) (aka this: https://github.com/otya128/ntvdm64.dll)