RetroArch - Native CRT Support

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:

1 Like

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:

1 Like

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.

1 Like

@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?

1 Like

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?

thank you so much for your time @Alphanu ! However, still no luck. Maybe you can help me clarify some points :slight_smile:

The context : I’m under W7, UMSA between vga and scart. I have an ATI R7 240. I used some distro like HFSbox15k (a french hyperspin pack only for 15Khz screen). It worked pretty well. Before trying retroarch I was using “officials” VMM user modelines. Arcade OSD to switch my destkop to the 640x480 resolution.

So, now I’m struggling with retroarch CRT mode, but I think we can figure out what’s happening.

  • do we agree we can use the official retroarch latest release, or do I have to use the beta exe provided here?
  • I made a txt file for VMM. selected every resolutions (super and native), and put it in the file. Then in VMM I first deleted the previous modelines and imported this fresh one.
  • when I launch retroarch, it displays ok in windowed but the CRT screens shakes very quick and continuously when I go fullscreen. I tried every mode in the crt crtswitch options but nothing worked.
  • I tried launching a system in windowed mode : pc engine is ok, snes displays a squashed screen, while saturn is almost fullscreen (black bars left and right)

I am little lost now… I don’t know what I can do. I even reinstalled CRTemudriver.

Thank you again for your help!



OOOOK, so, some news. Got it almost working ! :slight_smile:

Here is my tutorial, maybe it can help someone


hardware : W7, UMSA (must work w/ vga to scart cable too), ATi R7 240 1go pcie card, LCD display, CRT display

  • install CRTemudriver (read geedorah website to know exactly how)
  • if you have 2 screens (my setup : LCD screen attached to the dvi or hdmi, CRT on VGA), make sure on the W7 display panel that CRT is marked as your main display
  • launch VMM (included in CRTemudrivers). import this set of modelines (hope these are the good ones, let me know otherwise) : uncheck extended display, and make sure the import is made in "STATIC’ (screenshot at the end of this tutorial)
  • generate modelines, install modelines. The CRT screen should flick one second, this means the operation was sucessful.
  • launch arcade_OSD (also packed w/ CRTemudrivers), and check that 15khz resolutions are available. Make sur to you selected “attach OSD to current monitor” to have the good values.
  • get retroarch latest release. unpack. launch once, close. If needed use my retroarch cfg file :
  • if all work as expected (or, like it worked for me), you should get retroarch with the RGUI interface (not the PS3ish one), fullscreen, at the right resolution.
  • go to ui interface, check if the advanced mode is activated
  • go to video, then CRTswitch, put it in 15khz mode, 2560, custom freshrate activated.
  • now try some emulators, they should almost all work ! (some are not in my case, like 3DO - black screen, Wii/GC works but the gamepad is not, and some other small bugs). Exiting a game or retroarch can sometime break the screen resolution (CTRL alt del + task manager to get off this situation)

Thank you @Alphanu for your incredible work, it’s so amazing to have saturn, DC, megadrive, snes so beautifuly displayed, as we just plugged the real thing on the TV.

Hope this tutorial will help people like me. If it doesn’t work let me know, maybe I missed a step or the custom res file is not the good one (made so many tests…)




Hello everyone, someone has already done a little tutorial for a self-built Linux system (Ubuntu). That would be great if someone could publish it here. I am sure that Linux would be promoted in the arcade environment. Switching from Windows to Linux is not always easy for many.

Point me to where it is, I’ll have a look over it and post it.

I see you are using the new nightly! This is good information, this means that the new options still work with the original code base :heart_eyes:

It could be that the core is reporting the wrong res or hz. this would explain why you end up with a black screen. I have not tested Wii!

What cores are you having issues with?

For now, as far as I tested

  • 3do (maybe the bios is just missing/not found in the system directory)
  • GameBoy : every cores make my crt out of sync
  • master system also
  • saturn works like a charm with Beetle but not with yabause (got w7 loader and stuck)

Thats all :slight_smile:

Gameboy is currently a bit of an issue as it needs borders adding to pad out to a standard res. This was broken along the way.

Master system should work with genesis plus gx if you enable full borders.

Thanks for this information, will try with gx then !

Ho and PSP is also out of sync, just tested

Yeah, I need to include some extra detection for them now. They are originally on LCD screens and not 115khz CRT

Would it make sense to put a minimum height that it clamps to? I know GPUs generally won’t go below 200 lines anyway, but making anything less than 200 return 224/240 would make it easy to apply one of the SGB-1x border shaders to get pixel-perfection with border padding.

thank you, we just need to wait the fix then. Anyway, great work, I couldn’t imagine it would be possible one day to get pixel perfect crt emulation, even my pi3 with rgb-pi is less convenient (hdmi timing hell) and produce a less sharp image.

Hope PS2 will be included too, one day (for now pcsx2 can’t be included to retroarch)

see you soon

Hi @Alphanu

I just tried the latest nightly for Windows x64. Is the “Use custom refresh rate” Switchres option expected to work for Windows?

If I put it to “ON” and set “crt_video_refresh_rate” in the config file to some value (e.g. 60.18), it doesn’t seem to have any effect. Upon startup Switchres still reports “setting video refresh rate to 60.000Hz”. Also in the video menu refresh rate is still at 60.000Hz.

I suppose this needs to be hooked up yet (for Windows)?