leecher1337 / ntvdmx64

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

Can not run 16 bits DOS program. #148

Open peter8777555 opened 3 years ago

peter8777555 commented 3 years ago

I have a 16 bits DOS program,it can run on DOSBOX. But NTVDMX64 can not run.

TEST.zip

leecher1337 commented 3 years ago

yoda tells you, why:

d:\bld2\w\minnt\base\mvdm\softpc.new\base\video\ega_vide.c:2348 Illegal EGA VIO: 0x4f

Thus, this application requires VESA support. NTVDM doesn't support VESA extensions. I tried with SolVBE, but I wasn't very successful.

peter8777555 commented 3 years ago

I find a VESA support.

leecher1337 commented 3 years ago

UnieVBE would require a compatible Graphics card/BIOS to enable VESA, but as NTVDMx64 cannot use the real VGA hardware (due to restrictions of the 64bit architecture and the lack of XPDDM display driver model in favour of the WDDM starting with Win 8), it depends on the NTVDM VGA emulation capabilities. This is also a problem with the HAXM-Build, because it makes video emulation unbearbly slow there. SolVBE at least tries to emulate VESA, so I think it is the best starting point for a solution to this. I tried it on a real XP machine and there, it at least showed something, even though with wrong colours/palette and weird mouse emulation. In NTVDMx64, it doesn't show anything useful. So I guess it has to be adapted for NTVDMx64 use (SolVBE source is available, fortunately), but I guess it would require a lot of work. Not sure, if this is worth the effort, because VGA emulation already isn't fast in NTVDMx64, but on the other hand, as far as I understand, VESA buffers can be used as framebuffer and therefore should be a lot faster than the emulation of all these planar VGA video modes. Anyone willing to start work on this?

peter8777555 commented 3 years ago

It sounds SolVBE is a good soluation. If it needs a lot work,please give up.

The NTVDMx64 is my best love tool and thank you for building.

leecher1337 commented 3 years ago

I will keep the ticket open as a lower priority enhancement task.