RetroArch - Native CRT Support


I’ve been messing around with this again today and seem to have got to the bottom of it – removing the Geforce GT 710 and re-enabling the onboard Radeon 4200 seems to have solved the problem. Works perfectly without the need for Vsync, Hard GPU sync or threaded video enabled. I would be interested if anyone knows why.

I was hoping I would get the Geforce working with it so initially I tried replacing the nouveau drivers with the nvidia binary blob – I would not recommend that others try this as from what I gather from the official nvidia drivers only accept predefined modes or modes from a monitor EDID – xrandr won’t change modes with these drivers.

Maybe ATI cards are better suited for CRT displays in Linux as well as Windows?


I’ve found that using crt switchres with super resolutions (2560) on windows 7, retroarch can’t seem to get the correct refresh rate so the game is stuttery and the sound skips. However if I use native resolution modes it runs fine. my video card is an HD5450 and groovymame works just fine with super resolutions. I don’t really mind having super resolutions for mame and native for retroarch, but I’m still curious why this would happen. My cpu is a Pentium G3258 OCed to 4.5GHZ with 8GB ram. This cpu has great single thread performance so I’m not sure what’s happening here.


That’s a strange one. I’ve never had sync problems. You’ll need VSYNC and audio sync turned on. It will Probably be due to the modelines you have installed. Grroveymame uses dynamic hz which Retroarch does not.

You’ll have to install static modelines. You’ll find the ones you need on the front page of the Retroarch Github.

Also Retroarch has mame with switching so you don’t need both.


I’m trying to enable super resolution but can’t find the super resolution settings under the \Video in Retroarch. Do i have to enable something so they show up? I have CRT Emudriver installed and GroovyMame is running fine with super resolutions.


You need to enable advanced settings. This can be found in user interface I believe.

Once enabled CRTSwitch will be found in video settings.

You need to make sure that you install your super resolutions in static mode not dynamic. RetroArch can do 3840, 2560 and 1920. you need to change these values within the retroarch.cfg file


(EDIT: Discussion complete)

Re: $1082 BountySource on RetroArch lagless VSYNC

Question: Does the Native CRT support preserve original machine’s input latencies for mid-screen input reads too, with the CRT module implementation?

EDIT: No, it is refresh cycle granularity, not scanline granularity

(e.g. no surge-execution, no pre-rendering of framebuffer before scanning out, just 1:1 emulator execution speed while having original machine’s lag, streaming scanlines out of graphics output in realtime, aka realtime beam racing – emulator executes at 1:1 original machine speed with no surge-execution, yet is streaming pixels out in realtime, rather tham framebuffering all of them first before display?)

EDIT: The beam racing sync support can be later merged with CRT support, to achieve exact original signal with exact original-machine lag without need for pre-framebuffering).


Lagless VSYNC Support (beam raced synchronization) - [$1082 !]

I’m just trying to research commonalities.

EDIT: Done. Thanks, @Alphanu

P.S. I must compliment you in this great work in CRT support.


I manualy added the modes to my super resolution setup. The ones which are listed in the FAQ: 15 khz CRT documentation wiki.

Set the CRT Switch in retroarch and started a game with BigBox. I hear a switching noise from my chassis and then my screen goes black. The games run well if i connnect a LCD with the CRT Switch OFF.


Hello @Alphanu Let me ask if there was any progress implementing calamity 's dynamic modelines to your code.


I have been having a break recently. Taking some time out for family!

However, I am back now. I am still talking with calamity and it will be happening. ATM I don’t have a time scale on when this will be implemented as he is quite busy.


this is quite fair.
thanks for your job!


I’m trying to get the Commodore 64 core (vice_x64_libretro) to work with CRT Switchres.

I have the 2560x272@50hz resolution available on the CRT, but the core will not switch to the resolution. CRT Switchres is on and I have the aspect set to Core Provided.

Other cores I tried up until now work perfectly with CRT switchres, but this Commodore 64 seems to have some issues.

@Alphanu could you possibly take a peek to what’s going wrong with this core? (Or what I may be doing wrong :smiley: )



In case you missed my previous post.

Does the vice_x64_libretro core (commodore 64 core) work for you with switching under Linux?


I have not tested that core yet. Next time I have a run through I will give it a go.

No. I’ve been measuring the output from the PC connection with an oscilloscope. So I have re-written the way the dotclock and porches are calculated to generate the output resolution for Linux. Now the output matches the original hardware. So for cores that report the exact res and hz its almost perfect :wink:


If you guys can list cores that don’t report exactly, we can try to fix that.

@Alphanu FYI, Twinaphex just added those menu options for you to tie into.


@hunterk Oh cool. I’ve had a quick look and it seems that until I change things my side, CRT switching wont work.

If i get time in the week I will get on it, otherwise it will get done at the weekend.


Hello Guys !

Maybe I won’t have any answer as this discussion is already gone so fare technicaly speaking; however, I wanted to know if any tutorial existed for the retroarch CRT setup. I found videos only showing it worked (without explanation), and some forum topic, but nothing very clear. My problem is that I got a UMSA (ultimate scart adapter), an ATI card, with 15khz activated, and tried to use retroarch on my crt (advanced mode, crt switch activated so on…). However, I don’t know if I miss some modelines, or if arcade_OSD is messing with retroarch but I can’t have the UI properly scaled, for instance. I found a retroarch_2560.exe file but it didn’t work. There are also some trick to do in order to launch the menu from a LCD and emulators to the CRT I think, but I didn"t find any how-to.

that’s why I’m asking if anybody did a clear tutorial designed for people that have a PC hokked to a CRT.

thanks in advance to whoever will help :slight_smile:


I want to know too whether there is a tutorial, much more convenient that going through 350 posts. :sweat_smile:

I have a VGA to RGB-Scart adapter that works perfectly with 15kHz resolutions from my Nvidia card, but I have to set the secondary monitor (CRT TV) to that specific resolution (1280x240) permanently.


@lkl2018 @James-F

Guys I will write up a good TUT for you.

In brief. If you are using CRTEmudriver you must install the resolutions in static mode not dynamic. If not you’ll have ti install all the resolution you need via CRU or your favorite resolution utility. For windows you currently need to make sure your CRT the default display.

For needed resolutions you’ll need to go here and scroll down until you see the readme they will be in the list.

I have made this all automated under Linux, So if you are willing to install Linux then you will have much better experience. Also under Linux you can use use native resolutions instead of super resolution even with some Nvidia and Intel Cards.

Windows automation will be coming but I am waiting on Calamity to help out with his API.

Please bear with me. I am still ironing out Issues and adding more comparability to CRT Switchres.

You do need to be careful with video conveners as they might process the video image which means you will loose switching.

@hunterk do you know much about the UMSA?


Nope, this is the first I’ve heard of it. It doesn’t sound like it does any signal processing, though, based on this info page:

It’s powered, but I think that’s just for creating the right voltages.


UMSA has no signal processing other than sync combination AFAIK.

I’ve raised an issue for beetle saturn as width is currently not correctly reported (by design I think). It’s hard set to 352 where a lot of games including the BIOS I believe switch to 320 and back.

Also feel like n64 pal refresh is wrong, I’m struggling to find real figures online but 50.00hz can’t be right?