-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NTVDMx64 on Win10: 'The parameter is incorrect' #84
Comments
I'd say you problem is the path length |
Thank you so much! It worked! I never thought long path names would be an issue (probably cause I never owned a DOS computer). Can I ask how NTVDMx64 can run this application in Windowed mode in Windows 10? I need to run some DOS executables in windowed mode in Windows XP because some applications automatically decide to run in Fullscreen (which can sometimes crash my graphics driver causing a BSOD) |
Good to hear that it just was this simple issue. Regarding fullscreen, it gets a bit technical here to explain. You may be aware that the original NTVDM on x86 performs so great because it is running in V86 mode, so DOS programs are running natively on the CPU. In order to not disrupt the background operating system, calls to I/O ports and MMIO space need to get trapped and redirected to the emulator, because otherweise, they would crash the system. Trap&emulate implies that the CPU has to jump out, switch context to the emulator, let the emulator do its emulation and then switch context again and continue execution of the DOS application. As you may have guessed, this produces quite some overhead. Now with planar video modes, you communicate via a MMIO bar with the video controller card at A000-C000. You can write there and you can read back data from the graphics adapter. Now if you are painting to the screen, you have possibly thousands of MMIO operations in this memory area. If you need to trap & emulate them all, you have a significant overhead that trendemously slow down your application to a crawl. We do have the same problem in the HAXM NTVDMx64 build btw. |
NTVDM is the DOS subsystem, you are right, but I wanted to explain that you need to emulate privileged instructions in V86 mode too in order to get the routed into your host application and not execute directly on hardware. Regarding your video problem, this sounds like a driver issue. The Bugcheck code is THREAD_STUCK_IN_DEVICE_DRIVER. You can check the Minidump folder in your Windows XP directory and load it up in windbg with symbols enabled to see a stack backtrace, maybe this gives an idea where it hangs in the driver, but it looks like the driver would need to get repaired,quite a complex task to do without having the sourcecode. A common problem is that drivers don't pass through the IO ports that are required by the card's VGA BIOS and thus, fullscreen operation is completely broken in some cases. There is a nice fix for this: http://www.rayer.g6.cz/download/videoprt.zip |
I don't really have Windbg installed and even if I did install it, I don't think I'd be able to use it properly. These files will be better appreciated by people with great technical knowledge. Crashes from Mavis.exe Please let me know your findings and whether this works or not. Meanwhile, about videoprt.zip.... Does this file prevent only DOS applications from going fullscreen or does it prevent all applications from going fullscreen? I can imagine trying that file out if it only blocks out DOS applications from going fullscreen. |
The videoprt.zip patch should not block anything, in contrary, it should enable Passthrough of IO ports that weren't considered by the writer of the Video driver. I had this problem with NVIDIA drivers on Windows XP, for instance. And it's only NTVDM related afaik. |
Here is your crashdump analysis:
For further investigation, at least ATI2DVAG.sys and ATI2CQAG.dll from the target machine would be neeeded, however it can also relate to a hardware bug, as hardware maybe isn't responding which gets the driver stuck etc. |
Thank you so much for the bugcheck analysis. It was a very interesting read and explained the THREAD_STUCK_IN_DEVICE_DRIVER part very easily for laymen.
All righty, here's all the ATI files I could find on Windows/System32 You'll find ATI2DVAG and ATI2CQAG in there as well as a bunch of other files starting with ATI. Please and Thank you again, in advance :D Also, to make this a bit more relevant to NTVDMx64 again... |
Unfortunately, I don't know the software you mentioned and wasn't able to find it by Googling, so I can't tell you whether it is Win16 or DOS, but judging from the error message, I'd say it's a Win16 application. If you want to run the Win16 application, you can install the fantastic WineVDM in addition to NTVDMx64 in order to get it working. |
Regarding your driver issue, maybe experiment with different versions of the Catalyst driver..? Catalyst 4.3: Catalyst 6.11: Both versions mention something with DOS Fullscreen in the release logs. |
Thank you so much! I guessed that the main issue might be the graphics drivers, and hence I tried out the latest Catalyst for XP (14.4, so it should include all the bugfixes in the previous versions...) since that's the only Catalyst that detects the graphics card on my laptop and allows me to proceed the installation (the 6.11 version prevents me blabbing that I don't have compatible hardware installed :( ). Speaking of crashes, I've noticed some wierd things:
|
I'm trying out videoprt.zip, but it says that 'the system cannot find the file specified' at the last 3 commands it issues, is that supposed to happen? |
Not really supposed to happen. Dir you unpack all files into a directory before running install.bat? |
Yes, Now I'm booting into safe mode and trying to do it on higher privileges... By the way, I just heard of VDMSound and I think it's awesome. I tried to get it running on my Windows XP but it doesn't seem to work properly. I installed it and tried to run DOOM with sound, but it gets stuck on the command prompt with a blinking cursor (ie the DOOM shortcut for VDMSound doesn't form, and the game doesn't start). I'm very surprised people manage to get VDMSound running on modern OS's like 7 and 10 but it can't run on XP, any experience/troubleshooting tips? (I'd love to run DOS stuff natively on 10 but it's so slow that installing VDMSound on 10 just isn't worth it. If a C++ compiler is slowing down, I shudder to think what DOOM or Beez would do kek) |
For native XP NTVDM, I recommend using SoundFX2000 instead, it works better than VDMsound imho. But I'm using DosBox even on Windows XP for games, in terms of Sound emulation, it just performs better than the NTVDM extensions. |
Thanks for the great recommendation, SoundFX2000 worked out of the box with very little configuration necessary. The problem is the time-limit. The registry file they provided does not seem to work, I still get the 'yu hab 3 mins!!1' notification when I run DOOM. (And that is a huge problem because it task switches to the notification, which means a potential crash when I go back to the DOS application) You're right, I was thinking of DOSBox from the moment I saw the old Catalyst drivers fail to install. But there are many reasons why I haven't done it yet...
By the way, I have some great news. That VIDEOPRT.SYS... I don't know what it did, but it definitely changed the behaviour of DOS stuff on fullscreen. The past 15-20 times I've run a DOS app, it has not crashed my system. I think it is safe to say that the VIDEOPRT.SYS modification prevents crashes if you open the DOS application and DO NOT TASK SWITCH!! Switching back to other Windows Applications and then going back to the DOS application now causes a crash. Still, I am very happy, since DOS was not supposed to be multi-tasking anyway. I consider this situation resolved. Now I just need to figure out how to prevent SoundFX2000 from shifting focus to the stupid dialog box AFTER one opens the DOS application. |
On 32bit System, it's \Windows\System32 obviously. DosBox has an [autoexec] section in its config, where you can let it mount your drives on startup, i.e.:
NTVDM surely is best in terms of integration, but I remember myself messing around with VDMsound back in NT4 days and I never was very happy with its emulation quirks, that's why I usually booted into plain DOS for playing games back then. |
Installed NTVDMx64 on Windows 10 LTSB x64, with some problems. Bitdefender interrupted the install due to detecting ldntvdm.dll as a virus, and also preventing conhost.exe from loading when opening CMD. However after adding exceptions and reinstalling, I'm still stuck and can't open any DOS applications.
Opening a random DOS application, let's say Mavis Typing Tutor, gives me....

Trying to open it from CMD instead gives me...

Please help me out here! Thank you in advance.
PS: I am also trying to solve another problem where native NTVDM is not working all of a sudden after reinstalling Windows XP, unable to open DOS apps that I could previously run before. It has the same nature as the one shown in the second screenshot, simply stating that it cannot execute. In this day and age, you guys are the few people with the technical know-how to help me out. Please let me know if you have a solution for this. Click here for more reading/context
The text was updated successfully, but these errors were encountered: