leecher1337 / ntvdmx64

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

As SoundFX2000 tends to hang sometimes and DSP emulation may not work… #82

Closed peter8777555 closed 4 years ago

peter8777555 commented 4 years ago

NTOSBE-master.zip update to 3/16/2020

I build and got ONE error.

buildchk.err

1>NMAKE : fatal error U1077: 'exe2bin' : return code '0x1'

But it still can get ALL(17) release versions And include get ALL(17) exe2bin.exe versions

This seem is NOT a problem.

leecher1337 commented 4 years ago

Please disable SoundFX2000, as it should not be needed with latest build anymore: See https://github.com/leecher1337/ntvdmx64/issues/81 I guess that's the reason for your rebuild, though.

Please check buildchk.err, which conversion fails with exe2bin, this normally happens when building .sys files. You should see the lines before the NMAKE error which are assigned to 1> thread.

peter8777555 commented 4 years ago

Just ONE line only in buildchk.err

I attached all files to you.

buildchk.zip

leecher1337 commented 4 years ago
1>exe2bin USA\\hpscan16.exe USA\\hpscan16.sys 
1>The system cannot execute the specified program. 
1>NMAKE : fatal error U1077: 'exe2bin' : return code '0x1' 
1>Stop. 

exe2bin is shipped with my Windows XP installation. It has exe2bin.exe in Windows\system32 folder and therefore compiles it correctly. exe2bin.exe however is a DOS application. But NTOSBE also ships it in tools16 as a Windows executable: c:\Work\NTOSBE-master\tools\x86\tools16

Now what could be the case is that you compiled and installed NTVDMx64 once, then removed it and exe2bin is still present in windows\system32 directory. Now without working NTVDM, it doesn't execute correctly, however, it has precedence over exe2bin in tools16 directory. And this may be the cause for your error. However, hpscan16.sys isn't really important. But you may check your system32/syswow64 directory, if my assumption is right.

peter8777555 commented 4 years ago

I can NOT find any hpscan16.* in Windows XP -> /Windows/System32 Windows 7 X64 -> /Windows/SysWow64 and \Windows\System32

If hpscan16.* is NOT important,i suggest ReMark exe2bin USA\hpscan16.exe USA\hpscan16.sys

To build without any error messages is more better.

By the way. Why can i "exe2bin hpscan16.exe hpscan16.sys" without any error message ?

123

peter8777555 commented 4 years ago

By the way, What is the MinNT(NTVDMX64) roadmap/plans in the future ?

leecher1337 commented 4 years ago

hpscan16 also is part of the NTVDM, so even though it is not essential for the NTVDM to run, it still is a valid part (HP scanjet driver) that should ship with it, as it ships with Windows NT. Interesting that manual execution of exe2bin works but not within build script. Still suspecting that another (maybe DOS?) exe2bin in path may have precedence, as the error states that it is not executable. Maybe do a full search on your harddisk if there is an exe2bin.exe anywhere besides the NTOSBE.

There are many options for enhancement of MINNT based version. One thing I'm currently researching is if Windows 7 x64 can also be enhanced to support full screen video (as in writing directly to the video card), as Windows 7 x86 still supports this due to its support of XPDM display driver model. If that would be possible, then it may be very useful for running the HAXM accellerated build so that it can write to the video card directly in order to solve the problem of lousy video performance in VT-x mode. Another option would be to enable the HAXM build to switch between CCPU and VT-x on the fly so that video output can be virtualised with an emulated CPU and after execution of a given set of instructions without video output switch back to VT-x accelerated mode. dosemu tries to solve the problem of slow video output mmio with this strategy. Fixing further DPMI bugs or getting protected mode applications to run with VT-x would be another interesting goal, but I think this will get too complicated for me. One more thing that I may do some day is forking opensource Microsoft Console V2 code and integrate console graphics into it, as they still haven't done this yet and I proved that it works with NTVDM on Conhost V1. (Not really needed as long as we have Conhost V1 available, but someone already asked in their bugtracker about console graphics support)

So there are a lot of options/problems that we can deal with, but of course I don't have a lot of time to work on this project alone, so these are just some points that can be explored over the next years.

peter8777555 commented 4 years ago

Sounds good for enhancement of MINNT based version.

By the way,

1. HXGUI216a.zip \HXGUI216a\TEST\OGLTEST.EXE

It can run full screen video on my Windows 7 X64.

2. Running UPX/RAR failed #56 https://github.com/leecher1337/ntvdmx64/issues/56

I try CWSDPMI.EXE

Test.zip

leecher1337 commented 4 years ago
  1. You are running a Windows application that uses OpenGL for drawing. But that's not the point of the fullscreen support experiment. The problem we are facing is specific to HAXM build. Planar video mode drawing is done via MMIO in the VGA memory area A000-C000, so in VT-x, you will get a VMX exit for every read/write in this area because MMIO needs to be passed to VGA card emulation routine. As you have a VM-exit for every read/write, this is 10 times slower than with the emulated CCPU. This was also an issue with the original NTVDM, that's why the x86 version doesn't support console graphics, but instead always forces you into fullscreen mode. Because with the old XPDM display driver model, DOS programs were able to access the video card directly and therefore no exits and emulation was needed. But this is only supported on x86 (up to Windows 7 x86, later Windows versions use WDDM display driver model that don't support it) As Win 7 x64 still has XPDM display driver model, it MAY be possible to accomplish direct video there, but I'm completely unsure about it, so it's an experiment with unknown results.

  2. I didn't forget about this problem, but debugging it will be really hard, I could really need the help of some experts having a look at this.

peter8777555 commented 4 years ago

Thank you for detail explain.

These technology are too hard for me. I am end user and programming some simple tools in Delphi.

Thank you hard work for this project.

You seem come from Germany. Due to Corona virus inflect in Europe,i hope everyone be safe.

I come from Taiwan,R.O.C. and happy to know you.

123

leecher1337 commented 4 years ago

Germany, well, not quite.. Austria, to be more specific, but it's next to Germany... ;-) Thanks to the Internet, we can share our knowledge worldwide, so I'm happy that my project even gets used in Taiwan, also happy to know you. Thank you for always testing my newest builds, that is very helpful to ensure that the builds are also working in different locales!

I think as of today, infection rates in Austria are lowering, so I hope that this pandemic chaos will be over in the forseeable future. Best wishes!