leecher1337 / ntvdmx64

Run Microsoft Windows NTVDM (DOS) on 64bit Editions
784 stars 81 forks source link

(WRONG PROJECT) "Windows cannot find" (path of an existing file) #133

Open jimhabegger opened 3 years ago

jimhabegger commented 3 years ago

NOTE: Sorry, I got this confused with ntvdm.

I have files from some installation floppies for FutureWave SmartSketch from 1995. It installs and runs perfectly in Win31DOSBOX, and after some issues were fixed that I reported on the otvdm github site, it works almost perfectly with otvdm. Someone on that page suggested that I try it with ntvdm and report any issues that come up, here. I'm using the ntvdm installer from this page: http://www.columbia.edu/~em36/ntvdmx64.html

I'm attaching a zipped copy of the SmartSketch installation files.

SmartSketch Disks.zip

In Win3DOSBOX, and with otvdn in my actual Wiindows 10 x64, I'm able to install the program by double-clicking on _setup.exe in the Disk1 folder. When I do that in Windows 10 x64 on VMWare, with ntvdm installed, after I click "Yes" to a message asking me if I want to allow the app to make changes, a message comes up saying "Windows cannot find 'C:\Users\Practice\Downloads\SSDisks\Disk1_setup.exe'," with the path name that it says it can't find exactly the same as the path name of the actual file.

Screenshot (207) Screenshot (208)

I've done a lot of searching on the Internet, looking for an explanation and a fix for that. Possibly it has nothing to do with ntvdm, but when I double-click on _setup.exe without ntvdm, I don't get that message. I get a message saying that the app can't run on my PC.

Screenshot (203)

I installed VMWare only for this purpose, using a Windows 10 x64 iso from the Microsoft website. The only other app that I've installed in it besides ntvdm is 7-zip, to unzip the ntvdm files. When I double-click on _setup.exe without ntvdm installed, I get a message saying that the app can't run on my PC. When I double-click on _setup.exe with ntvdm installed, after I click "Yes" to a message asking me if I want to allow the app to make changes, a message comes up saying "Windows cannot find 'C:\Users\Practice\Downloads\SSDisks\Disk1_setup.exe',"

leecher1337 commented 3 years ago

So, to prevent 32bit setup from being run, you are running _setup.exe instead of setup.exe in Disk1 folder, am I correct?

I tested it under Windows 7 x64: I took your .zip file, went to disk1 folder, double clicked on _setup.exe and it just installed the application (setup is smart enough to detect disk2, disk3 etc. directories).

image

Yes, there is an error while creating program group during setup, but it's not really an issue, you still get your program group and can run it normally.

image

I then tested under Windows 8 and 10. Installation also wasn't an issue there, but for some strange reason, it doesn't start. The 16bit loader is unhappy and doesn't find some library or something like that. Other 16bit applications run fine, though:

image

Very strange...

leecher1337 commented 3 years ago

Looks like starting with Windows 8, Microsoft is shipping damaged versions of the following files:

typelib.dll 
storage.dll 
ole2nls.dll 
ole2disp.dll 
ole2.dll 
compobj.dll 

So applications depending on these libraries, like SmartSketch, fail to start. Arrgh!!

jimhabegger commented 3 years ago

So, to prevent 32bit setup from being run, you are running _setup.exe instead of setup.exe in Disk1 folder, am I correct?

First I want to explain that posting here was a mistake. Someone suggested for me to post differences between how it works in Win31DOSBOX and how it works with ntvdm. I got that confused with ntvdmx64. Afterwards, I tried it in a 32-bit Windows 10 virtual machine, and it installed and ran perfectly, with _setup.exe. In that VM, when I double-clicked on _setup.exe, a message came up saying that ntvdm needed to be installed. I agreed, and after that it installed and ran perfectly, exactly in every way like it does in Win31DOSBOX, except possibly for being able to move the help windows outside of the app window, with ntvdm. In the box, the help windows can't be moved outside of the box.

I don't remember clearly why I used _setup.exe instead of setup.exe or setup32.exe. Maybe I tried those and they didn't work, so I tried _setup.exe, just to leave no stone unturned.

leecher1337 commented 3 years ago

Ah, ok, nevertheless by posting here, you revealed an interesting bug, I didn't know about these stubbed DLLs before.

jimhabegger commented 3 years ago

Ah, ok, nevertheless by posting here, you revealed an interesting bug, I didn't know about these stubbed DLLs before.

Would it be interesting or useful for me to experiment some more with installing and using SmartSketch from those Floppy install files, with ntvdmx64? It looks to me like setup32 is trying to install a different version from the one that is installed by setup. It fails to install after copying a few files into a program folder, but I can get it to run by copying the other files into that folder myself.

leecher1337 commented 3 years ago

Yeah, _setup.exe = 16 bit installer setup.exe = 32bit installer

Some 32bit files seem to be missing. So if you want to experimet with NTVDMx64, run _setup.exe and - like said above - ignore the error about program group ceration. With latest release (auto autobuild to create a release), you should be able to run it:

image

However don't expect too much, it will be very slow, that's why I usually recommend NTVDMx64 + OTVDM for best user experience

jimhabegger commented 3 years ago

So if you want to experimet with NTVDMx64, run _setup.exe and - like said above - ignore the error about program group ceration. With latest release (auto autobuild to create a release), you should be able to run it:

However don't expect too much, it will be very slow, that's why I usually recommend NTVDMx64 + OTVDM for best user experience

Okay, I'll try that.