CRT Switchres on PC Monitor

It’s still.l in the works. Ive got quite a few lines f Of code to re write and they up. Plus were waiting on the menu options to be added as well.

So as there is a couple of different people working on it I can’t really give you a completion time. However, it is going to take me a few weeks to finish my part.

Great work @Alphanu! I’m currently using crtemudrivers since some time with retroarch and works well, the mayor draw back, for me, being the darkened result when using the “black frame insertion” option to eliminate ghosting. I saw in youtube that you were working in a frame doubler code to prevent the darkened result but with half frame added of input lag. Its cool and I think it would work good for some games and others will benefit more from the laggless black frame insertion. Could it be posible to implement a gamma boost, like fba or some fpga use to try to mitigate the darkened output? Thanks for all your work improving retroarch!

PD: Thinkig a bit about it, maybe your aproach is even less lag than the actual option, being that you set V-sync to off. And the half frame of added input lag cose of the buffering on the frame dubler code is the same half frame that is removed from running in 120hz instead of 60hz. So some tests will be required to determine the final input lag of the 2 options.

The way I use it right now is: Create the native game resolution (1x acording to what says in the video option when “integer scale” is marked) and try to get the refresh rate to exact double or a bit more of what the original console does. Activate black frame insertion, v-sync=on and desactivate “Audio sync” and activate “sync to exact content framerate” to get the same speed of the game on the original console (and all the “Crop Overscan” options on to get the same output than a crt tv would). The result is expectacular and I think this way is even better of what a fpga like super nt, has to offer. Your new switchres code would aloud this settings to work with the same results? it would be great, specially in conjuntion with “Sync to exact content framerate” to get the same results than the original systems.

The method of doubling frames does not add any lag. I hold the first frame waiting for the next.

Lag would only be introduced if this method was used in say a FPGA version converting a real console signal to 120hz 31k.

Yeah i guess it should not add lag if you redraw the first frame after drawing it directly the firts time, but this part confused me: “Because the frame is drawn at twice the speed. You need to buffer half of it then start drawing the image to the screen. By the time you have the full frame bufferered you have already drawn it once. At this point yould need to store this frame in ram then continue to output it while collecting the next halfframe from the video source. So by the time you have drawn the second copyframe you already have half the next frame so you rinse and repeat. So essentially this will only give you half a frame of lag or 8 milliseconds which is really good.”

31khz mode has now been added to RetroArch. It will be available in the next nightly.

For Linux users this will all be done automatically when the option is enabled. hz are exactly doubled, for the best output disable VSNC and enable maximum run speed to 1.0x

For windows users will need to install resolutions with specific hz in static mode.

Use 120hz for any core that uses less than 54hz normally (PAL) Use 110hz for any core that uses less than 57hz and more than 54hz normally (Mortal Kombat) Use 120hz for any core that uses more than than 57hz normally (NTSC)

4 Likes

Could you add tests for output names like "DVI-I-1"?

1 Like

Excellent!, I was waiting for this since the issue was opened, I hope it works fine in Linux. Great job!.

Is the frame double already working? becose I see the same stutter than using crtemu driver without blackframe insertion. What about a gamma bust, can that be done?

Is there a list of what Resolutions we need to add anywhere?

Simply double the hz, at least for windows! So all resolutions you have install install again with 120hz instead. It will not work with PAL roms. For game like MK that run at 54hz install 110hz instaed.

If your running Linux everything is done for you.

Well I’m on windows, so I have to install a bunch of specific resolutions with CRTEmudriver or something right? Like 320x240, and others?

Or are you saying I just have to set my resolution to 120hz, and it will just work?

To use CRT Emudriver you need a radeon video card http://geedorah.com/eiusdemmodi/forum/viewtopic.php?id=295 you need to copy this refresh rates for the systems you use in the user_modes.ini http://tasvideos.org/PlatformFramerates.html then vmmaker will create the closest to the double of that refresh rate. For the resolution dimensions, you can what is reported in the video settings of retroarch once the game is loaded but be sure to mark “integer scale” and the custom dimensions must say “1x” that is the original resolution for the game.

here is an example for the user_modes.ini file

## Family Computer - Nintendo Entertainment System ##

240 x 224 @ 60.098813897441

256 x 240 @ 60.098813897441 famicom

You can use the first resolution if you crop everything, for a crt tv style look, the second one will just show everything even the borders that have trash sprites or a single color column like the left of the screen in super mario 3.

K, so I found this file - so I kind of follow. Does every resolution need to be under a specific section like this? If so, what is the proper naming for all the other systems?

If not, can I just put all the needed resolutions at the bottom or something??

You simply need to change the hz! So 320x240@120!

1 Like

I’ve tried playing with CRTEmudriver, and editing that file by changing everything to 120Hz, then using vmmaker to install the ‘modes’? It always says it’s rejected by the driver… Everything installed and went into test mode OK.

I’m usually pretty good at figuring this kind of stuff out, but I don’t understand what I’m supposed to be doing to make this CRT switch feature work with the 31khz monitor.

No matter what I do though the resolution on the monitor never changes.

I’m not too sure here, but it sounds like VMM is not installing the modes!?

Have you loaded ArcadeOSD to see what modes are installed?

Have you changed CRT Switch Res from 15khz to 31khz?

I just checked out the ArcadeOSD and yeah the resolutions like 320x240 aren’t there at all. It’s not really giving me an error, I’m not sure why the modes wouldn’t be installing.

I did set RetroArch’s setting to 31khz though, yes. I also have it on ‘native’.

Maybe this is a question for Calamity! We’ll need to find out why VMM is not installing the resolutiins with 120hz.