RetroArch - Native CRT Support

Thanks, thats very insightful.

Sadly i cant make Parallel run with more than 35-40 fps even tho i can run Beetle-PSX in Software without any problems and full speed. No idea what im doing wrong there. Its very frustrating and i even upgraded my Motherboard to the max with a Core2Quad 3Ghz CPU, SSD and even a R7 240 with GDDR5 VRAM. There are YT videos with this setup where people even run up to date games in modest resolutions but high settings. :confused:

Maybe someone is kind enough to post their *cfg file with the correct settings for Parallel.

@Alphanu Congrats for your work here, man. It’s Amazing. I like it that much that I changed to Linux for testing the refresh rate thing. Then I came bak to Windows 7 and I started to use powerstrip, a software that can change the graphics adpater’s timing in realtime. If you use certain powerstrip commandlines you can start a game in RA with switchres, and eachtime a resolution is called, powerstrip adjust the timing on the fly to be really close with the core timing (calamity’s groovymame used this in the past). The only problem I found is the bug with the fixed “vertical refresh rate 60.000Hz” in Switchres. With a value on crt_video_refresh rate or without it, or enable/disable “custom refresh rate” on the menu, or even with an “override game/core.cfg”, I got the displayed message of 60.000hz. And I can’t take any of the RA advantages based in -display refresh rate-, like “dynamic audio rate” for correcting the small imperfections in timing that can happend.

Could it be possible for you to fix this issue meanwhile we’re wating your work with calamity? Massive thanks. :wink:

Thanks Alphanu for your incredible work it makes the gaming experience for older systems a lot better imo. I did some tests on different distros/os (w7, ubuntu 14-18, groovyarcade, archlinux, and thought to share some results.

setup

  • i5, ssd, ati hd5450/hd6450, umsa/vga-to-bnc cable, sony pvm 14m2e. note: both graphic cards and ums/cable combinations gave the same test results. systems tested
  • nestopia, bsnes accuracy, mednafen (beetle) psx with latest retroarch (standard repository, not snap) as well as git.

results

w7 both native and superres work pretty well on all systems. problems encountered: short sound stutter + screen artefacts (weird white shapes) + slight image shifting when switching from progressive to interlaced and vice versa. used the tutorial in this thread which helped a lot.

ubuntu same interlaced > progressive switching problems as in w7. for beetle pxs: when overscan is not disabled in core option, it runs progressive and splitsc screen vertically into two. when disabled interlace works, but it is somehow capped to 30fps. Have not found a way to go around this problem. Also in 1404 switching between modes was very slow, took 5 seconds with a lot of white noise on the screen to switch between modes.

groovyarcade (installed from 2018 livecd) best experience of all. booting is very fast (retroarch is start withing 15 seconds) and most important it runs interlaced at 60fps, this is for example very noticeable when the ps bios runs, and also in-game of course. the switching problem unfortunately, also occurs here though. this distro is stuck to a certain repository date, so it does not use the most recent packages for i.e. xorg. for beetle psx, it does not matter if overscan is disabled or not in the core option for interlaced to work properly.

archlinux same experience as arcadevga which itself is built upon archlinux, but with the difference that I used the newest packages (xorg 1.20, ati-driver etc). Interlaced here however is also stuck on 30fps. If that were not the case, this would be my recommended choice as it does not have all the arcade stuff from arcadevga making it a very clean and dedicated install.

issues summary overall it’s a great experience and close to perfect. to summarize, here are the encountered issues:

  • switching between interlaced and progressive results in small screen artefacts prior during the switch witch itself cause the audio to stutter or pause for a about second. also the screen wiggles a little to get into place. This tends to be a little annoying when playing games like chrono cross and final fantasy viii, where everything in-game is progressive except for the menus (interlaced) which are used quite a lot. super family tennis (snes) and the snes on whole has a lot less problems when switching between interlaced and progressive modes.
  • switching from ntsc to pal or vice versa, the old refresh rate / resolution keeps active somehow. meaning that for example, a pal game is display incorrectly. it runs at 50fps but somehow the game lags. even when I remove all custom modes from xrandr (using --delmode) ans restart retroarch and run the pal game directly it runs incorrectly. Only when pc is rebooted and a pal game is started directly it runs well. the otherway around it causes ntsc games to play at 50 fps.
  • I use a xorg.conf where a modeline of 704x480 is used ensuring the pvm has a good resolution at startup. This is the only custom xrandr mode. At groovyarcade, this is also the only mode shown in contrast to other linux distros which also show all native modes for that monitor. After retroarch closes the last used resolution by retroarch is used by the desktop. I thought I read that it should always fall back to the default one, in my case 704x480. interestingly when running retroarch in debug and looking at the log xrandr throws quite some errors.
  • jumping flash 1 and 2 (ntsc) are displayed faulty in native mode (perhaps also interlaced not tested), it has wide black vertical borders on both sides. have not seen this with other ps games. otherwise runs fine.

questions I have after testing

  • is crtswitchres considered stable at this point for linux, or are there known issues (perhaps some of those I mentioned above)?
  • does it matter which versions of xorg, ati driver, mesa or other packages are used for crtswitchres to work properly?
  • is the way screens are now created and destroyed similar in the way that consoles do it?
  • Alphanu can you give an example of a system setup (graphics card, cables, crt, os etc) you use which works the best for you?

If there’s more testing to be done I’m happy to help :slight_smile:

1 Like

Hello,

I recently purchased a barebone with “Intel HD Graphics 620” with hdmi and vga output (dsub15). I installed ubuntu with retroarch and connected my crt monitor to the vga connector. Within the CRT options of retroarch only the line “Use custom refresh rate” appears and I can not activate the options to make the change of resolutions.

If it helps, xrandr returns this (DP-1 is the VGA output DSUB15):

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192 DP-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 315mm x 230mm 1280x1024 60.02* 1152x864 75.00
1024x768 85.00 75.03 70.07 60.00
1024x768i 86.96
832x624 74.55
800x600 85.06 72.19 75.00 60.32 56.25
640x480 85.01 75.00 72.81 66.67 59.94
720x400 87.85 70.08
HDMI-1 disconnected (normal left inverted right x axis y axis)

Thanks for everything. Regards.

Did you turn on Settings > User Interface > Show Advanced Settings?

I thought crt switch res didn’t work with display port?

Thank you. Sorry for the delay I could not prove it before. I also apologize because I already knew the option but I did not remember to activate it.

Hi again,

I think it changes the refresh rate but not the resolution. In all resolution modes I see the squashed image. Could it be that dp-1 is not among the supported outputs? I get this from the execution in verbose mode:

[INFO] [GL]: VSync => on

[INFO] [GLX]: glXSwapIntervalEXT(1)

[INFO] [PulseAudio]: Unpausing.

[INFO] Setting refresh rate to: 120.000 Hz.

[INFO] Setting refresh rate to: 120.198 Hz.

xrandr: cannot find output “DVI0”

xrandr: cannot find output “DVI0”

xrandr: cannot find output “DVI1”

xrandr: cannot find output “DVI1”

xrandr: cannot find output “DVI2”

xrandr: cannot find output “DVI2”

xrandr: cannot find output “DVI-0”

xrandr: cannot find output “DVI-0”

xrandr: cannot find output “DVI-1”

xrandr: cannot find output “DVI-1”

xrandr: cannot find output “DVI-2”

xrandr: cannot find output “DVI-2”

xrandr: cannot find output “VGA0”

xrandr: cannot find output “VGA0”

xrandr: cannot find output “VGA1”

xrandr: cannot find output “VGA1”

xrandr: cannot find output “VGA2”

xrandr: cannot find output “VGA2”

xrandr: cannot find output “VGA-0”

xrandr: cannot find output “VGA-0”

xrandr: cannot find output “VGA-1”

xrandr: cannot find output “VGA-1”

xrandr: cannot find output “VGA-2”

xrandr: cannot find output “VGA-2”

Size 512x224 not found in available modes

xrandr: cannot find mode “320x240_120.00”

[INFO] [PulseAudio]: Unpausing.

[INFO] [PulseAudio]: Unpausing.

[INFO] [Config]: Saved new config to “/home/xxxx/.config/retroarch/retroarch.cfg”.

[libretro INFO] SRAM memory size: 2048.

[INFO] Saving RAM type #0 to “/home/xxxx/Mahaigaina/retroarch/saves/Super Mario World (U) [!].srm”.

[INFO] Saved successfully to “/home/xxxx/Mahaigaina/retroarch/saves/Super Mario World (U) [!].srm”.

[INFO] Unloading game…

[INFO] [PulseAudio]: Pausing.

[INFO] Unloading core…

[INFO] Unloading core symbols…

[INFO] Saved core options file to “/home/xxxx/.config/retroarch/retroarch-core-options.cfg”

[INFO] [XINERAMA]: Xinerama version: 1.1.

[INFO] [XINERAMA]: Xinerama screens: 1.

[INFO] [XINERAMA]: Saved monitor #0.

[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.

[INFO] Removing temporary content file: /tmp/Super Mario World (U) [!].smc.

[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.

Size 0x0 not found in available modes

xrandr: cannot find output “VGA0”

xrandr: cannot find output “VGA-0”

xrandr: cannot find output “DVI0”

xrandr: cannot find output “DVI-0”

xrandr: cannot find output “VGA1”

xrandr: cannot find output “VGA-1”

xrandr: cannot find output “DVI1”

xrandr: cannot find output “DVI-1”

xrandr: cannot find output “VGA2”

xrandr: cannot find output “VGA-2”

xrandr: cannot find output “DVI2”

xrandr: cannot find output “DVI-2”

I’ve gone through every thread I could find, and have spent the last 3 days trying to fix my problem. I’ve been able to get the resolution switching to work just fine initially. I got it to work with CRTEmuDriver, and even CRU. The problem with CRU is it doesn’t have enough slots (4 max) to enter all the necessary resolutions.

Every time, I get to where it seems like everything is working great HOWEVER… in-game switching is totally broken for me.

Best example of this is loading Sonic 2. It loads the 1920x224 @ 120hz perfectly - but if I go to 2-player, I get massive black bars on the left/right and the vertical resolution does not change at all. Tomb Raider 2 is also a good example, as it loads it in 1920x240, but the BIOS (which is a 480i image) will have the same squished effect, but then the EIDOS video plays and it’s perfect 240p… but the monitor didn’t change,

Outside this one problem it’s utterly perfect… not sure what I’m doing wrong.

Here’s the modeline list I’m using:

1920 x 200 @ 50.000000
1920 x 200 @ 60.000000
1920 x 224 @ 50.000000
1920 x 224 @ 60.000000
1920 x 237 @ 50.000000
1920 x 237 @ 60.000000
1920 x 240 @ 50.000000
1920 x 240 @ 60.000000
1920 x 254 @ 55.000000
1920 x 256 @ 50.000000
1920 x 448 @ 60.000000
1920 x 480 @ 60.000000
1920 x 448 @ 50.000000
1920 x 480 @ 50.000000
1920 x 512 @ 50.000000
1920 x 576 @ 50.000000

I’m on Windows 10, 31Khz PC Monitor, AMD R9 390X RA is 1.7.5 Stable.

which one should I choose,mm4crt,mm4crt_ga,normal ra?All three of them support crt switch

Mme4crt was just used for beta testing. What’s in ra now is the most current.

I’d hold off for a while though as much better, faster and more reliable switching is coming, certainly in the linux relm at least.

2 Likes

Good job!I am using linuxmint with sync issue,it bothered me for a long time。 On my old pc(cpu amd5000+,ati hd5450 )ra just works well in linux18.3 without any image tear,but the new pc(z97 ,4790k and ati 4550),I must enable sync whitch add input lag to terminate tear。Both ati 5450 and 4550 cannot suport vulkan whitch less lag than opengl setting max image changing to 2

Quick Question guys:

If i want to test out the Native Resolutions instead of Super Resolutions, do i have to install my mode list as dynamic or static?

You currently will always need to use static for windows.

Ok, thanks. Two Questions:

  1. Do i have to change those lines [email protected] to @60 ?

  2. Am i missing some resolution lines if my PS1 emulator doesnt res switch in native mode?

Sorry, me again. Not sure about this but could it be that native resolution switch doesnt work with interlaced resolutions for now?

They should do. It definitely works on Linux, as long as the resolutions are installed on windows it will work fine.

I think the problem i have is that some resolution lines would overlap?

Mine look like this:

  • 512 x 240 @ 50.006977 SNESpal
  • 512 x 224 @ 50.006977 SNESpal
  • 512 x 448 @ 50.006977 SNESpal
  • 512 x 240 @ 60.098812 SNESntsc
  • 512 x 224 @ 60.098812 SNESntsc
  • 512 x 448 @ 60.098812 SNESntsc
  • 256 x 240 @ 50.006977 SNESpal
  • 256 x 448 @ 50.006977 SNESpal
  • 256 x 240 @ 60.098812 SNESntsc
  • 256 x 448 @ 60.098812 SNESntsc
  • 320 x 240 @ 59.922745 MDntsc
  • 320 x 448 @ 59.922745 MDntp
  • 320 x 480 @ 59.922745 MDntsc
  • 256 x 192 @ 59.922745 MDntsc
  • 320 x 224 @ 59.922745 MDntsc
  • 256 x 224 @ 59.922745 MDntsc
  • 320 x 288 @ 49.701458 MDpal
  • 320 x 576 @ 49.701458 MDpal
  • 256 x 192 @ 49.701458 MDpal
  • 320 x 224 @ 49.701458 MDpal
  • 320 x 240 @ 49.701458 MDpal
  • 320 x 448 @ 49.701458 MDpal
  • 320 x 480 @ 49.701458 MDpal
  • 256 x 224 @ 49.701458 MDpal
  • 256 x 288 @ 49.701458 MSYSpal
  • 256 x 240 @ 60.098812 NESntsc
  • 256 x 240 @ 50.006977 NESpal
  • 640 x 480 @ 60.130001 N64ntsc
  • 640 x 237 @ 60.130001 N64ntsc
  • 640 x 240 @ 60.130001 N64ntsc
  • 640 x 480 @ 50.000000 N64pal
  • 640 x 576 @ 50.000000 n64pal
  • 640 x 288 @ 50.000000 n64pal
  • 256 x 252 @ 49.759998 PSXpal
  • 384 x 252 @ 49.759998 PSXpal
  • 640 x 540 @ 49.759998 PSXpal
  • 320 x 252 @ 49.759998 PSXpal
  • 640 x 252 @ 49.759998 PSXpal
  • 384 x 240 @ 59.941002 PSXntsc
  • 256 x 480 @ 59.941002 PSXntsc
  • 352 x 240 @ 59.820000 Saturn/SGFX_NTSCp
  • 704 x 240 @ 59.820000 SaturnNTSCp
  • 352 x 480 @ 59.820000 SaturnNTSCi
  • 704 x 480 @ 59.820000 SaturnNTSCi
  • 352 x 288 @ 49.701458 SaturnPALp
  • 704 x 288 @ 49.701458 SaturnPALp
  • 352 x 576 @ 49.701458 SaturnPALi
  • 704 x 576 @ 49.701458 SaturnPALi
  • 240 x 160 @ 59.730000 GBA
  • 320 x 200 @ 60.000000 Doom
  • 400 x 254 @ 54.706841 MK
  • 384 x 224 @ 59.637405 CPS1

I cant use the same resolution with different frequencies, i get an error when i try to install them. Or maybe im missing a resolution…

Yes you are correct. Vmmaker. Does not like it when you have resolutions with the different hz. This is why yould need to use just 50 or 60. This is a work around due to the fact that dynamic resolutions have not been implemented yet.

Thanks, i changed it to 50/60 but the PS1 boot up screen (PS1 logo) resolution seem to be missing in my list. It doesnt resi switch when the boot up screen is shown (i can hear the sound tho).

After the boot up screen time is over the game switches to the native resolution without problems.

Does anyone know the interlaced resolution of the PS1 boot up screen?