VOGONS


NTVDM on windows 10 x64

Topic actions

Reply 60 of 73, by leecher

User metadata
Rank Newbie
Rank
Newbie

I don't care about DOSbox, it has no interaction with the Windows subsystems, console, etc. like NTVDM has, so it's pretty useless for normal office applications.

Games are not my target and the DosBox-author says DosBox is meant only for games. If you want to play games, just use DosBox, it does a very good job in this area. NTVDMx64 on the other hand targets office applications and DOS/Win32 interaction and integration like the original NTVDM does.
We all know NTVDM never was particularily good for games, even in V86 mode, so games are not really an interesting target for it anyway, altough they partly work, but video emulation is just too slow.
NTVDMx64 helps people, who are forced to use 64bit Windows, to continue using their DOS applications and most people that I know who are using NTVDMx64 are using it for exactly this purpose.

If you want HAXM integration in DOSbox, you may want to ask the DosBox authors for integration, they will know how to do it, I don't have any clue about DOSbox code, sorry.

Reply 67 of 73, by filipetolhuizen

User metadata
Rank Oldbie
Rank
Oldbie

haxm has some issues with a few games, at least on WineVDM. Nitemare3D freezes in the main menu when trying to start a new game.
Anyway, can NTVDMx64 be installed along with WineVDM?

Reply 69 of 73, by Doomn00b

User metadata
Rank Newbie
Rank
Newbie

Really cool project! 😀

Immediately when I heard about the issue with the vga-calls my brain started grinding its gears a bit on how to solve that... What do you think about these snippets?

"Linux GUI apps coming to Windows 10 WSL along with GPU access"

https://www.zdnet.com/article/microsoft-linux … ith-gpu-access/

"WSL2 will let developers run Linux GUI applications on Windows without a third-party X server... Microsoft is introducing a custom DirectX-based Linux GPU kernel driver – the dxgkrnl Linux Edition – for WSL2's Linux kernel, which creates a path to supported GPU hardware. Basically, it's a virtualized GPU driver that only works when on Microsoft's Hyper-V...libd3d12.so is compiled from the same source code as d3d12.dll on Windows but for a Linux target. It offers the same level of functionality and performance."

Could you theoretically leverage libd3d12.so to create your own version of d3d12.DLL, that allows unfettered access for ntvdm64 to the gpu?

Deploy graphics devices using Discrete Device Assignment
https://docs.microsoft.com/en-us/windows-serv … vices-using-dda

" This will allow high performance access to devices like NVMe storage or Graphics Cards from within a VM while being able to leverage the devices native drivers."

Is there a good open source generic svga driver you could port to ntvdm64 that can directly use modern gpu's? Perhaps you could then use DDA to shift it to ntvdm64 in hyper-v.

Oh... Wait... It says here this feature is exclusive to Windows server...?

Reply 70 of 73, by leecher

User metadata
Rank Newbie
Rank
Newbie

Hi,

The Linux driver sounds like a pipe from Linux kernel to the Direct3D-API, so nothing that is of any interest for DOS that wants to have direct I/O acess to the graphics card without causing VM exits on every trapped I/O operation (We already have a "driver" that emulates a VGA, but the amount of VM-Exits on every VGA-operation on the video memory and ports is massive which slows it down).
To understand, how VGA works, here is a little overview that also explains why you cannot just map in a memory page at A000 and treat it like a framebuffer: https://wiki.osdev.org/VGA_Hardware

Regarding DDA: Directly accessing a PCI device in the VM sounds good.
But I don't think that you can put Windows into headless mode (https://docs.microsoft.com/en-us/windows-hard … eadless-systems) on-the-fly so that you are able to "steal" its main graphics adapter and assign it to the VDM via DDA instead. Even it's possible, I guess it will most likely end up in a system crash.:Not sure, if the driver is capable to reprogram the video card on switching between DOS application and Window so that the video adapter isn't in an inconsitent state.
It may be possible for systems with multiple video cards where you can dedicate one video card with a seperate connected monitor to the NTVDM, but is this really a practical usecase? I guess not.

Reply 71 of 73, by superfury

User metadata
Rank l33t
Rank
l33t
Doomn00b wrote on 2020-06-16, 21:45:
Really cool project! :) […]
Show full quote

Really cool project! 😀

Immediately when I heard about the issue with the vga-calls my brain started grinding its gears a bit on how to solve that... What do you think about these snippets?

"Linux GUI apps coming to Windows 10 WSL along with GPU access"

https://www.zdnet.com/article/microsoft-linux … ith-gpu-access/

"WSL2 will let developers run Linux GUI applications on Windows without a third-party X server... Microsoft is introducing a custom DirectX-based Linux GPU kernel driver – the dxgkrnl Linux Edition – for WSL2's Linux kernel, which creates a path to supported GPU hardware. Basically, it's a virtualized GPU driver that only works when on Microsoft's Hyper-V...libd3d12.so is compiled from the same source code as d3d12.dll on Windows but for a Linux target. It offers the same level of functionality and performance."

Could you theoretically leverage libd3d12.so to create your own version of d3d12.DLL, that allows unfettered access for ntvdm64 to the gpu?

Deploy graphics devices using Discrete Device Assignment
https://docs.microsoft.com/en-us/windows-serv … vices-using-dda

" This will allow high performance access to devices like NVMe storage or Graphics Cards from within a VM while being able to leverage the devices native drivers."

Is there a good open source generic svga driver you could port to ntvdm64 that can directly use modern gpu's? Perhaps you could then use DDA to shift it to ntvdm64 in hyper-v.

Oh... Wait... It says here this feature is exclusive to Windows server...?

Windows-only drivers on a Linux system? Why does that remember be of the EEE-scheme Microsoft follows (Embrace(WSL), Extend(d3d12.so), Extinguish)...

UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io
Older UniPCemu PC/Android/PSP releases

Reply 73 of 73, by TechieDude

User metadata
Rank Member
Rank
Member
xcomcmdr wrote on 2020-06-28, 13:30:

Pah ! Ridiculous.

You know nothing about open-source if you think this is MS's strategy.

Linux zealots...

Sure, except they've proudly done so in the not-so-distant past...