RetroArch - Native CRT Support


It should work fine anywhere with an X server running. As far as I know, the composite output doesn’t provide very granular timing controls, but I’d love to be proved wrong. :slight_smile:


in lakka or retropie i don’t think you’re using x server - you’re outputting directly to the framebuffer, right?

As far as I know, the composite output doesn’t provide very granular timing controls, but I’d love to be proved wrong

this thread gives some examples of how to update the HDMI timings via runtime:

not composite, i know, but i believe this technique is chiefly used for the RGB/composite/svideo hat adapters like the retrotink, so i think it’s the kind of thing that the crt switch res stuff could usefully hook into.

i think you might be right about the composite timings. i wonder if that’s something that could be requested at the above github, or whether it’s a hardware limit?

i don’t have this hardware to test so i might be getting the wrong end of the stick, here :slight_smile:


Well I finally spent some time on setting it up this weekend and using windows 10 I ran into some issues.

#1. I couldn’t get arcade OSD to set up the testing so I could get change overscan and center position for any of the modelines.

#2. High dpi/full screen optimization kept messing things up, so that had to be disabled.

#3. Not sure if anyone else has this issue, but with vsync on games get synced to 60.00hz. I had hoped I could get custom refreshes going and turn my crt into a poor man’s vrr screen.

#4. MAME locks up retroarch and makes everything unresponsive. Same roms in fba work fine so I believe it has to do with the setup.

Aside from that it looks great with fba and the consoles. If anyone has any ideas on what I could try, please let me know. Had anyone else gotten arcadeosd to work in windows 10 fully?



It can be done. I have created a custom Rasbian build with full X11 server. There are still many kinks that need working out though. Other than that it switches, looks and runs lovely.

@hunterk Composite is not the way to go though you’ll want to use a HDMI to VGA adapter.

I have so many things on ATM that I had to halt my work on RetroArch temporarily. but hopefully I’ll be able to get back on it soon. There are many things I want ti add and change.


there Just seems to be too many issues with windows 10, I keep suggesting to people that windows 7 seems to be easier to setup.

If you want to get native refresh rates, Linux is the best way to go. It has less overheads and currently runs every core at its native resolution and refresh rate. well at least every core that has the correct information. Which is most to be fair.


Yeah, vcgencmd looks promising.

I use a hdmi-to-vga adapter on my RPi and set hdmi_timing lines in the config.txt, but being able to do that automatically during runtime would be great.


ArcadeOSD is using DirectDraw, which is fully emulated in Windows 10. Calamity apparently is planning to update it to use Direct3D.

I don’t understand why people keep asking in these forums on issues with crt-emudriver and ArcadeOSD, why don’t you ask in the groovymame forums so that Calamity himself actually gets to know of any issues people are experiencing and may do something about it?

On the same note, I also don’t understand the push for windows 7. Groovymame and crt -emudriver work perfectly fine with Windows 10. I think people should just spent some time reading the manual at the geedorah site linked from Calamity’s forum thread on It goes in great detail on how to install this. But clearly this is for computer savvy people, we shouldn’t underestimate that.

Finally, sorry to say this, but that’s how I feel currently, when 8 out of 10 people are using Windows, it’s kind of a bummer to read here every time the suggestion to use Linux if you want custom refresh rates.

@Alphanu I thought Calamity was going to help you out implementing his Windows XP/7/8/10 switchres api into RA? Or did he back out of it?


Its a working process, but not just for RA. We are working on SwitchRes standalone and libraries(.dll and .so). Which will also work with Nvidia. :grinning:

I really don’t mind which OS people wish to use, they just need to figure out how to get it to work properly. In the case of windows setting up CRTEmudriver correctly.

ATM the only way to get native refresh rates through RA is through Linux. This is why when asked about refresh rates, its the go to comment. Also the majority of my work has been based on custom porches and sync pulses to match original console outputs. Unfortunately this again is currently is only available in Linux making the most up to date and accurate version.

This will eventually come to Windows but I do not know how long it will take.


yeah, i think for RPI via the vcgencmd API would be idea, rather than X11, purely because that would mean it could be used in regular retropie (and lakka?), which doesn’t use X11 either. but i’m not sure if

  1. the vcgencmd API i linked above is sufficient for everything you need in CRT switchres
  2. does lakka support vcgencmd calls? I know the libreelec stuff means the OS is ‘locked down’ to an extent. it seems to:


I tried out Linux and the performance was abysmal on my radeon HD 5870.

I noticed also that in both Linux and windows, window full-screen has to be on otherwise retroarch crashes. Does anyone else have that issue?