Author Topic: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM  (Read 2323 times)

0 Members and 1 Guest are viewing this topic.

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
What it says on the tin.  This is basically modded NTVDM (what 32-bit Windows uses to run 16-bit DOS / Windows apps).

Might (should?) work for those pesky 16-bit installers.

Resources:

Easy installer: http://www.columbia.edu/~em36/otvdm.html

EDIT: you will get virus hits on the installer for the FileOpen.exe (which gets copied to COMMAND.COM) on some AV software - see the Installer author (Edward Mendelson)'s note on this, if you don't trust it, manually install WINEVDM from the GitHub page instead (the Installer does some niceties like pretending to be COMMAND.COM etc)

GitHub page: https://github.com/otya128/winevdm


Misc:

Based on: http://www.columbia.edu/~em36/ntvdmx64.html

GitHub page: https://github.com/leecher1337/ntvdmx64

EDIT2: Tested with ProgMan.exe, Mplayer.exe, and clock.exe  from Windows 3.1 and that fires up with no problem.  (Yes, canyon.mid played fine - once I set a default MIDI device using CoolSoft MidiMapper, that is).  EDIT3: And mspaint, woo-hoo!  And MSHelp is working.  Excellent. Soundrec records audio. Bahahaha TaskMan actually works and reports tasks. Write works.  WinFile has a problem reading SCONFIG.DLL

WINEVDM and NTVDMx64 basically replace Windows x86 NTVDM, and NTVDM uses a CPU emulator, but on an x86 processor, it doesn't do full emulation.  But this is a problem on an x64 processor as it doesn't have the capacity to handle the part of the process that the x86 would.  The easy solution is to get NTVDM to do what it would do on an ARM or other type processor (that is, full x86 emulation).  Works quite well.

Fair warning, though, you're going to have to fight your AV software tooth and nail for a round or two until it gets the hint you want to exclude both the .dlls (one in system32 and one in syswow64) etc... you may have to restore / undo the auto-actions a couple of time until it gets the hint.  Adjusting how Windows launches applications is of course highly suspicious behavior except there's actually a reason for it here.

Now it would be 'easier' to just disable the AV software but that's kinda dumb all things considered.  Just keep setting exceptions and restoring quarantined files until the new .dlls are accepted as part of the system.

Alternatively use the manual installation and go that route, that might trigger less AV action but also it will be harder to launch 16-bit / DOS programs (have to launch from the otvdm / otvdmw program instead of just double-clicking the program).
« Last Edit: November 03, 2020, 10:51:10 pm by jr2 »

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
This might be handy. I occasionally use a few Descent 2 and Red Alert modding tools that are 16-bit and just use a 98 VMWare VM or Windows 3.1 in Dosbox when I need them.

 
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
I always wondered why Windows on Windows on Windows wasn't a thing.q

 
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
I suspect because DOSbox is a thing and does the job just fine?
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
I suspect because DOSbox is a thing and does the job just fine?

No, because dosbox does dos really well, but it doesn't have measures for Windows 95 programs. Support for 16 bit programs was dropped for 64 bit Windows, but not for 32 bit, which I've never really understood.

It's really niche since it's really only been an issue for win9x games' installers for me, but still.

I'd love to be able to run the MW2 Mercs patch 1.10 at some point again

 
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
Support for 16 bit programs was dropped for 64 bit Windows, but not for 32 bit, which I've never really understood.

It seems to be because running x86-64 processors in their full 64-bit mode disables significant amounts of the 16-bit backwards compatibility.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

  

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: Run 16-bit Windows and DOS programs natively on 64-bit Windows: WINEVDM / OTVDM
WINEVDM and NTVDMx64 basically replace Windows x86 NTVDM, and NTVDM uses a CPU emulator, but on an x86 processor, it doesn't do full emulation.  But this is a problem on an x64 processor as it doesn't have the capacity to handle the part of the process that the x86 would.  The easy solution is to get NTVDM to do what it would do on an ARM or other type processor (that is, full x86 emulation).  Works quite well.

Fair warning, though, you're going to have to fight your AV software tooth and nail for a round or two until it gets the hint you want to exclude both the .dlls (one in system32 and one in syswow64) etc... you may have to restore / undo the auto-actions a couple of time until it gets the hint.  Adjusting how Windows launches applications is of course highly suspicious behavior except there's actually a reason for it here.

Now it would be 'easier' to just disable the AV software but that's kinda dumb all things considered.  Just keep setting exceptions and restoring quarantined files until the new .dlls are accepted as part of the system.

Alternatively use the manual installation and go that route, that might trigger less AV action but also it will be harder to launch 16-bit / DOS programs (have to launch from the otvdm / otvdmw program instead of just double-clicking the program).