New CRTSwitchRes update

Change log.

  • Removed all system calls. Switching now only uses RandR Library. this will improve compatibility and speed.

  • Resolution checks added to prevent conflicts and crashes. before a resolution is installed. CRTSwitchRes will check if it exists first. this should improve speed and prevent crashes.

  • Closing X11 server now runs a clean up to removes all resolutions installed. This will remove all resolutions when you exit RA. Cleaning up xrandr output and prventing any onload crashes.

  • Auto monitor switching changed. monitor index 20 is now used to switch all connected displays. this leaves 0 - 19 for manual selection. Hopefully, fixing multi monitor issues.

4 Likes

Hi @Alphanu

This is still Linux only?

@rafan Yes, the above changes are for Linux. I am currently working on DRMKMS Switching. Once this is done I will go back and work on the bugs for windows.

Thanks, some love for the Windows implementation would be great :+1:

I think the most pressing issue is the multimonitor issue, it would be so helpful if that could be resolved (switching the primary screen everytime really is a bit of a a pain, even with scripts as it messes with window placement for frontend etc.).

If only this multimonitor issue could be fixed for Vulkan for example.

1 Like

I can’t get it to work… :sob:

maybe the changes have not yet been integrated on RA?

I want to try out the new update, but need to install a fresh linux distro. @Alphanu, which one do you recommend?

anything with a lightweight desktop environment. Ideally a minimal install with openbox (no menu bar). This would be for a more advanced user to get setup. There are many guides out there to do this though.

Xubuntu or Lubuntu would be your best choices for a pre-built system.

1 Like

thanks. you also mentioned somewhere that an older kernel plays best with CrtSwitchRes. Does this new update play nice with 5.x kernels or should I install an older one?

I have been testing the CRTSwitchRes with a monitor on Linux Ubuntu, changing the resolution with the xrandr command. Delete the configuration folders to make a new configuration and I realize that it does everything automatic. Create the resolution and switch between them instantly. This is something new?

However, I have had some problems, when activating the CRTSwitch with the basic options, it does nothing, it does not take the resolution 2560x480 120.

With advanced options. When activating 15Khz, the monitor turns off and I get a warning “Sync. Out of limit”

When I activate the 31Khz it works excellent, it takes the 2560 and changes from 240 to 480i, perfect but when I close the core or restart RetroArch it gives me the problem again. “Sync out of limit”.

Something that worries me is the constant frequency change, in a Monitor it is stronger. In a CRT TV it is normal it is made for that, but a monitor is designed to handle a fixed resolution.

PostData: I just found out about your knee, I hope you get better soon because we need the perfect working CRT. :sweat_smile: It’s a joke. Health first, always.

Monitor mode changing shouldn’t be a problem. They’re designed for different devices, refresh rates and desktop sizes, after all.

It is to be expected that your monitor doesn’t accept 15 khz modelines.

I’m not sure why it would be reporting out of sync when you close RetroArch, though. It typically just stays on the last modeline used, I thought…

When I mess with CRT stuff, I typically use a small launch script that sets a standard modeline (1024x768 or whatever) on launch and after close.

In the tests that I was doing, it did not detect the resolutions, nor did the 15Khz give me an error, this has happened to me since I deleted the configuration folder and started everything again. Could it be that I had a version that was not updated?

Now it detects all resolutions and dynamically switches between them, only activating the 31Khz. It’s too easy, even for me. :laughing:

When I close the game it gives the synchronization error, the monitor turns off, but, as I am still in the recent menu, I press Enter, the game restarts and the signal is corrected. When I switch between games / cores without closing the game, it doesn’t give an error. When I close retroarch, sometimes it reverts to the native monitor, other times it stays at 2564x240

It seems to me that the problem is the menu, it may be taking the resolution of the monitor but maintaining 120.00Hz.

When I mess with CRT stuff, I typically use a small launch script that sets a standard modeline (1024x768 or whatever) on launch and after close.

To return to the native resolution after closing press “Alt + F2, r, enter”, it restores the x11. To activate the resolutions I had this.

xrandr --newmode "2560x240_120.00" 99.75 2560 2632 2880 3200 240 243 253 261 -hsync +vsync; xrandr --addmode VGA-1 "2560x240_120.00"; xrandr --output VGA-1 --mode 2560x240_120.00

What script do you use?

Something like:

xrandr --output VGA-1 --mode 240p && retroarch --menu --verbose && xrandr --output VGA-1 --mode 1024x768_60

note: those modeline names are just made up on the spot.

1 Like

On Ubuntu, you can probably also just setup keyboards shortcuts for desired resolution switches, it works for me in Linux Mint Mate edition.

Yes, you can, it is a good option.

Why put the 240p mode if the resolutions are activated automatically when loading a game?

I haven’t actually used switchres much, just static modelines. If you’re using switchres, you indeed don’t need to do it.

Just try, know the feature well. What I understand from the CRTSwitch is that the menu uses the resolution of the monitor and when the game loads the low resolutions are activated.

1 Like

I know that I will be unpopular … due to the “importance” of the project and the number of users, i think that retroarch deserves to have a switchres module that works always and in any case; at least in 90 percent of cases/environment.

I have been trying to get it to work unsuccessfully for over 4 years.

RGB-PI OS work fine without any problem, Groovy Arcade same think.

now I write less and less on this forum because I understand it is not your priority, too bad because retroarch is a great software but i love to play retrogames on a CRT.

In Linux it works perfectly, you just have to activate 31Khz or 15Khz. Create and change resolutions automatically.

I do not know how it is in Windows, it seems to me that you have to create the resolutions manually.

Hello. Thanks for the great work. Really impressed. I have a little problem setting the resolution properly though.

I managed to get it right launching into retroarch and getting it to display in the desired 240p resololution with nice scanlines

but when I launch a game the image gets somehow compressed and my crt doesn’t allow stretching the image any further. I tried 480p too with the same issue. Is the crt at fault here?

Any idea? What res are you using?