RetroArch - Native CRT Support

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. http://forum.arcadecontrols.com/index.php/board,52.0.html

1 Like

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

@murphy10k @Harrytoons

3 Likes

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 https://github.com/alphanu1/MME4CRT/blob/master/gfx/display_servers/dispserv_x11.c

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 !

1 Like

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: https://youtu.be/Cw5gWWI0C_w

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.

1 Like

@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 https://github.com/alphanu1/MME4CRT

1 Like

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

I tested your patches: modeline given is now .
"320x224_59.18" 6.224730 320 344 364 403 224 229 232 261 -hsync -vsync

and monitor is now black when switching resolution

I have been updating the src all day, Even now there has just been a few changes. I have it working on a B&O MX4000 and a crappy old TV too. I do have a Sony PVM in the other room which I will test on but I cant do that until tomorrow.

Try the src now if you can, the mode line should come out to be “320x224_59.18” 6.224730 320 336 358 390 224 229 232 261 -hsync -vsync

@vikbez

Works perfectly now !

just testing something - no reply/response needed.

Sorry about the ‘test’ post; I made a long post earlier today but it seems to have disappeared. Anyway, here we go again. Sorry in advance if I somehow inadvertently double post.

Hi @Alphanu. I’m sure you’re very busy but I was hoping you could help with a couple of things:

  1. I tried the latest nightly - hoping to fix that bug - but now when I run RA in fullscreen, my TV seems to be losing sync, possibly. The screen either goes blank or, very occasionally, I get two images side by side. I tried using exactly the same RA.ini settings as the 1.7.2 build(which works ok) but still the same issue. Any ideas what could be causing this? Side by side image. That 2.00Hz set reported refresh rate looks odd… WIN_20180503_09_06_37_Pro

  2. Under RA 1.7.2, all PS1 and N64 games run perfectly. However, I’m having issues with mame, snes9x, Fuse, and ScummVM where the image is being squashed on the vertical. I’m guessing this is a scaling/ratio issue and might be related to games outputting anything outside of 240(and possibly 480) on the vertical, but I can’t seem to figured out a fix. Any ideas?

Castlevania running beautifully with Beetle PSX (SW not HW): WIN_20180503_07_42_30_Pro

Bobble Bobble (Mame) squashed on the vertical: WIN_20180503_07_37_03_Pro

Strangely, Rastan (mame) running at 256x240 seems to be fine: WIN_20180503_07_35_10_Pro

Super Mario Kart (Snes9x) squashed - but I found a ‘fix’, see point ‘3’: WIN_20180503_07_42_59_Pro

Renegade (Fuse) squashed: WIN_20180503_07_39_01_Pro

Monkey Island (ScummVM) squashed: WIN_20180503_07_45_59_Pro

  1. I’ve discovered a tiny, but slightly odd, issue with Snes9x, relating to the ‘Crop Overscan’ function. Running a game with Crop Overscan enabled or auto results in a squashed image: WIN_20180503_07_42_59_Pro

If, while the game is still running, I change Crop Overscan to ‘disable’, and then ‘resume’, the image displays correctly, however it is lined up with the very top of the screen, leaving a small border at the bottom: WIN_20180503_07_44_03_Pro

If, while the game is still running, I change Crop Overscan back to ‘enable or auto’, and then ‘resume’, the image displays correctly AND this time it is centered on the vertical with equal borders on the top and bottom. This is what I want, but cant figure out a way to get it without switching Crop Overscan when game is running: WIN_20180503_07_44_41_Pro

  1. Just for the record, Groovymame seems to be running everything perfectly. An example of bubble bobble running at 256x224(2560x240p) : WIN_20180503_07_48_33_Pro WIN_20180503_07_48_38_Pro

  2. Do you know of any software I can use that will provide an onscreen overlay showing the resolution, vertical scan rate, etc.? If I can see what the emulator is outputting then I might be in a better position to figure out what’s going on and therefore solve my own problems…!

Thanks again in advance. Let me know if you need anymore info from me.

Hi

To start with this could be missing resolutions. For very low resolution games they are set in a resolution of 2560x200@50 or @60 make sure this is installed. The game is then drawn at it’s correct resolution within this.

For snes, this is a bit confusing as it works fine for may others. However snes9x is not the best option in my opinion, use bsnes accuracy.

I need to update the Wiki @hunterk It was a necessity to change Retroarch menu resolution due to system clashes on Linux. In doing this there has been some changes and someone else added an edition which unfortunately broke the menu resolution. So in short this is fixed now but you’ll have to wait for the new nightly.

Puzzle bobble runs in 256x224 so you’ll need to make sure 2560x224@50 or @60 is installed.

I’ll do some testing later when I’m home and check again your finding.

I have crop overscan on as default so this may be needed. Otherwise the core will report the wrong resolution and then won’t switch.

1 Like