Page 1 of 1

Getting DOS to work with Direct_Video=1

Posted: Mon Nov 15, 2021 2:12 pm
by Kuro Houou
Has anyone figured out how to get DOS to display correctly when using direct_video=1 (HDMI to VGA). I have a 20L5 PVM which is designed to run 480P (640x480 60) just fine and it works with the analog vga output.. But when trying to use the direct_video hdmi output to vga, it is squished and interlaced. The odd thing is, the Mister is reporting its outputting the exact same resolution and frequency..

720x400 26.94KHz 60.0Hz | 640x480 25.96MHz 59.5Hz

First when using Direct_Video=1 is it using the top or bottom resolution? I thought normally the analog output was top and hdmi digital was the bottom?

But regardless of that I guess, why does DOS looked squished as soon as I enable direct_video, regardless if I am using the analog VGA out or the HDMI to VGA.

I uploaded two pictures.. One with direct_video=0 where the text looks mostly right (can never seem to get DOS to look 100% right, seems to be a recurring problem here, but its ok for now), but then the second is with direct_video=1 and you can see its VERY BAD. Not sure why this happens, but as soon as I enable direct_video=1 both the analog vga output and hdmi->vga output look horrible! Is there a way to fix this?

Re: Getting DOS to work with Direct_Video=1

Posted: Mon Nov 15, 2021 2:34 pm
by akeley
First you can try flipping Aspect Ratio & Scale in the Video menu

Long story short: viewtopic.php?p=28578#p28578

Or you can read the whole thread. There's no ideal solution, it's all a bit of a hack.

Re: Getting DOS to work with Direct_Video=1

Posted: Mon Nov 15, 2021 2:44 pm
by FoxbatStargazer
direct_video=1 on a0486 is designed for 240p i.e. SD TVs, hence the scanlines. forced_scandoubler=1 might fill it in to 480p but its just going to double the pixels, so you still aren't going to get the full 400p resolution of DOS text. Its been optimized to make 320x200 games look passible on a 240p SD TV. I wouldn't use it for your set if you want clean DOS text and want to take advantage of that 480p.

If you want best results I would leave direct_video off and supply some custom modelines. Even though you are working with 480p, the CRT thread can be a good idea for how to adjust the width as you have about the same flexibility here. My recommendation would be 720x480 and set HV integer scaling in the menu. This will deliver pristine scaling at the cost of DOS appearing a little fat, and a black frame around your games. If you can then adjust the TV to zoom in a bit, you will get far cleaner output than trying to digitally scale via the Mister.

Of course this being a PVM I wonder if it can sync to 70 hz? If so 640x400, with vsync_adjust=1 or 2, and refresh rate=variable, would make games look identical to O.G. hardware on a VGA monitor.

Re: Getting DOS to work with Direct_Video=1

Posted: Mon Nov 15, 2021 3:09 pm
by Kuro Houou
akeley wrote: Mon Nov 15, 2021 2:34 pm First you can try flipping Aspect Ratio & Scale in the Video menu

Long story short: viewtopic.php?p=28578#p28578

Or you can read the whole thread. There's no ideal solution, it's all a bit of a hack.
Aspect Ratio is the only one that seems to "function" with direct_video=1. But then it stretches it too wide and causes the monitor to freak out some, out of range basically. Changing Scale options does nothing. Also Modelines don't work when using direct_video, it ignores them apparently. I was able to get a decent modeline when NOT using direct_video and using the VGA out on the analog board.

Re: Getting DOS to work with Direct_Video=1

Posted: Mon Nov 15, 2021 3:26 pm
by Kuro Houou
FoxbatStargazer wrote: Mon Nov 15, 2021 2:44 pm direct_video=1 on a0486 is designed for 240p i.e. SD TVs, hence the scanlines. forced_scandoubler=1 might fill it in to 480p but its just going to double the pixels, so you still aren't going to get the full 400p resolution of DOS text. Its been optimized to make 320x200 games look passible on a 240p SD TV. I wouldn't use it for your set if you want clean DOS text and want to take advantage of that 480p.

If you want best results I would leave direct_video off and supply some custom modelines. Even though you are working with 480p, the CRT thread can be a good idea for how to adjust the width as you have about the same flexibility here. My recommendation would be 720x480 and set HV integer scaling in the menu. This will deliver pristine scaling at the cost of DOS appearing a little fat, and a black frame around your games. If you can then adjust the TV to zoom in a bit, you will get far cleaner output than trying to digitally scale via the Mister.

Of course this being a PVM I wonder if it can sync to 70 hz? If so 640x400, with vsync_adjust=1 or 2, and refresh rate=variable, would make games look identical to O.G. hardware on a VGA monitor.
I would say that's fine if it was working for my TV at 240p.. but it actually doesn't as you can see from my screenshots.. when it is interlaced for a 240p set its very distorted and can't be fixed through any means of scaling.. The fact that its not even running at 15KHz is what is the strange part to me, which is what most 240p sets would expect.

Just wondering if anyone has ever gotten a normal picture from the ao486 core using direct_video=1 and what settings they use.

FYI, scandoubling is the only way to get a semi decent picture, although its still not as good as what I can get from the analog vga output with a custom modline..

Re: Getting DOS to work with Direct_Video=1

Posted: Tue Nov 16, 2021 3:25 pm
by FoxbatStargazer
Finally got around to hooking this up to an SD Wega and yeah.... direct_video=1 and forced_scandoubler=0 does output 240p, but it doesn't seem to be synced quite right, at least when using component. So while it seems to be intended for SD TVs, it's probably not working well at the moment, and you need to make your own video_mode as in that thread for SD.

forced_scandoubler=1 will output actual 480p and it does somehow use the full vertical DOS resolution . This synced perfectly to my VGA CRTs, none of that "interlacing" issue that you showed. Note the horizontal resolution is close to 2K so that might pose a problem for some converters. I don't know why this mode is giving your PVM trouble if it is 480p capable, although maybe it has actually been tuned for VGA monitors rather than TVs? Although it does force 60hz rather than allowing 70...

As for the resolution numbers, the top one is the original PC resolution and the bottom is whatever the "scaler" is outputting. For this core I'm guessing that some restricted version of the scaler is still in use, perhaps imagine direct_video just forcing some preset resolution. The width is a multiple of 640, which is going to blur 700 wide DOS text a little, but is perfect for 320 wide games. They key thing to keep in mind is that this core does not have any "real" analog out and direct_video is closer to a scaler preset, so you have to play with video_modes and vga_scaler for best results.

Re: Getting DOS to work with Direct_Video=1

Posted: Tue Nov 16, 2021 7:55 pm
by SuperBabyHix
I had a number of Sony L5 PVMs. I was never able to get a good picture when sending it a 640x480 signal. It would result in a dark, off center image. 720x480 seemed to work fine though.
Can't quite tell from your pictures if that's the issue you are having.
That was all using a PC though. I got rid of them long before I got a Mister.

Re: Getting DOS to work with Direct_Video=1

Posted: Sun Jan 02, 2022 4:27 am
by Kuro Houou
So turns out this is was because I had direct_video=1, but unless your core is 240p or maybe 480i you should use direct_video for those cores as it will output normal over the HDMI port. So I just set that flag to turn off direct video when running the AO486 core.