RetroArch - Native CRT Support


@Alphanu thanks for this quick fix and for your work.


@Alphanu , with the last nightly the problem continues, in addition, Windows shows an error on close Retroarch.


@murphy10k there were a few changes made when submitting the Linux version.

Can you get a screen capture of the error and maybe run Retroarch in verbose mode.



And in verbose mode I get the same.

The capture is in 2560 because I take it just after exit, but I start the program from the 640x480 resolution of the desktop.


So it seems that after I added Linux support, it kind of messed up one part of windows.

I have fixed it and submitted a PR.

I have also thoroughly tested it on Windows and Linux.


Hi everyone. This is my first post on any forum ever so please bear with me if I goof anything up.

I’m a long time user of emulators but I decided to have a go at outputting to my crt last week. My setup is Win 7, r9 270, crt emudriver, and a pretty crappy, totally un-adjustable, 27" matsui tv.

Started off with groovymame using super resolutions and was blown away by how good it all looked(even on my matsui tv). Had a fair bit of overscan going on but I mucked about with the ‘monitor_specs’ line to get everything more or less fitting on the screen nicely.

Stumbled across this forum as I was trying to figure out how to get Epsxe working with crt emudriver. Turns out that epsxe wasn’t the way to go…! Anyway, so I fired up retroarch, made a few setting changes as per this link from the retroarch website: 15 khz CRT documentation wiki And fired up the following games: Einhander Castlevania SOTN FF9, 8, and 7 Omega Boost

They all ran and displayed perfectly as far as I can tell. Even the res switching ones. I booted up FF9 on my actual PS1 to compare screens and it was identical, although the screen position and overscan was ever so slightly different.

Sorry for the long post. Just really wanted to show some love to Alphanu and the retroarch guys. Amazing work Alphanu, thank you so much. It never ceases to amaze me how selfless and generous people(including yourself) are with their time and expertise. Now I just need to register with a forum that Calamity uses to give him some love also…

Happy to help contribute in some way if you ever need.

Oh and lastly. I too am having that issue where windows stays in super res after closing retroarch. Aaaand finally, i had to change my viewport mode to ‘rgui’ otherwise the screen was unreadable in super res. Not sure if that’s the correct thing to do, but it worked for me - might be worth putting a small bit about that in the’instructions’ link that I referred to earlier.

Cheers all.



Hi @Harrytoons thanks.

It good to hear back from people liking the work. I love it myself, I’m always picking it up and playing Street fighter 3 or Super method.

RGUI if the option you want. It is currently the only menu that scales correctly for 15khz.

As for the current bug you mentioned, I have just fixed it. The PR should get merged pretty quick, so it will be in one of the next nightlys.

You can message Calamity over at arcade controls.,52.0.html


Quick update. The PR is merged so it will be fixed in the nightly.

@murphy10k @Harrytoons


Thanks for this, just compiled and tested - works really nice so far ! On linux, you can’t edit frontporch/backporch and other settings available in windows’s crtemudriver, how can I change these settings under linux using retroarch ?

Asking because without the patch and manually using switchres, the resolutions are ok, but using the patch and letting retroarch switching resolutions (using native resolutions, NOT super resolutions) my CRT does weird things and display is too much extended.

This will be shown at hfsplay’s summer arcade festival this weekend :slight_smile:

Thanks !


Hi @vikbez

I have not been able to test native on Linux my end, I’ve just been using super resolutions. I have not included any options to change porches because this can cause issue for user who aren’t sure on how they work and what they are. So I have created a modeline generator within ReatroArch. It is designed around Arcade 15khz, so there will be some scanning issues on TVs. However a lot of good quality CRT TVs allow you to edit these via hidden options or pots inside the TV.

Now as I mentioned I have not tested native. This is because I’ve not been able to it in Ubuntu, I cant display low pixel clocks.

You mentioned that you compiled from source so if you look here

From line 100 - 218 is the mode line generator. If you feel up for it you can edit the code. You’ll need to edit hfp, hbp, vfp and vbp for the porches, hsp and vsp for the sync pulse. As a guide for you, the higher the number the more porch is drawn. This then draws more of the visible image on the screen. However, only make small changes as you’ll end up with it out of sync.

I have a lot of projects on ATM which I need to finish. I will add some porch options at some point but I will have to make them user proof. This means that there may only be a couple of options for them. I’ll have to think carefully about it.


Thanks for your precise reply. I’m testing on calibrated Sony PVM monitors and also getting a color change when using patch. I will try editing settings in dispserv_x11.c !


Cool, let me know you finding. It will help me when it comes to creating porch settings.


Even though I’m using a CRT monitor, I don’t like to display SNES games at fullscreen (4:3). So, I normally use 320x240 with black bars to display SNES games (essentially using a 8:7 aspect ratio). Is it possible to do the same using this super resolution method? How?


For reference: this is what switchres gives me for neogeo:
"320x224x59.19" 6.650094 320 336 368 424 224 236 239 265 -HSync -VSync

and what gives retroarch:
"320x224_59.18" 5.44 320 328 352 352 224 229 232 261 -hsync -vsync

(reference for outsiders: string, pixel_clock, width, hfp, hsp, hbp, height, vfp, vsp, vbp)

And how my monitor does not like it:

I have to investigate more.


Hi @alphanu, first of all thanks a lot for this amazing implementation. As a fellow CRT enthusiast (I still own my beloved Sony Trinitron CRT I used to play on during my entire childhood and teenage years, still functional) I’m excited at the prospect of having RA work even more efficiently with that and outputting the best image quality for retrogames.

Now, I’ve never really dabbled in CRT Emudriver and based on what I gathered it seems to only work specifically with ATI/AMD cards. Do you have any advice with regards to getting this working with an nVidia card (I have a GTX 970) in a Windows 10 environment?


Hi @Ryunam

With Windows you are a big limited. These are metgeds of adding resolutuins but not always with success. The is an application called Custom Screen Utility that add reolutions to windows. When I used it I lost all my resolutions. So use it at your own risk.

The best way is Linux, it’s more accurate at emulation than windows as well. You can dual boot it with windows if you want. However, I just have a cheap second computer as my emulation machine running Linux. It’s only a core 2 due lol. But does the job great.

Hope this helps.


@vikbez Looking at the modeline I can instantly see one main issue. I’ll need to update that for everyone.

I’m just looking into it now as its an important bug to fix.

How are you outputting native in Linux? do you have a patched kernel? or are you using groovey arcade?


@vikbez I have edited the porches. This should fix the porching issue giving weird colors and incorrect hsp. You will probably still have over scan though.

download fresh or pull my git


I’m using a modified GroovyArcade distribution. I will try this in 4-6 hours.


@Alphanu the last nightly for Windows is perfect.

One last question, is there any difference between video drivers ?, gl, dx10, dx11?.