CRT Switchres not quite feeling right on CRT arcade monitor

Hi all, I’ve been bashing my head against the wall for a while on this now and need some help.

I have a Sega New Astro City that has a Nanao MS9 monitor in it and I’m trying to get CRT Switchres to work correctly but it’s just off somehow. I am using a Radeon 7850 with CRT Emu driver and added all the mode lines from the user_modes_super.ini to add the super resolutions.

When playing games it will switch resolution correctly but games aren’t looking quite right. Some are closer than others making me wonder if it’s in my head, but I did some tests against my arcade boards and there’s a very noticeable difference. The pixels are just not scaling correctly in many games and others the games are feeling flickery.

I should also point out that I’m able to get it work with GroovyMAME which makes me think it’s definitely something with my RetroArch settings.

Here’s the config I’m using but I’ve tried many different variations of the options: https://pastebin.com/R0RyTqcC

Any help is greatly appreciated!

OK I think I’ve tracked down the problem but I don’t know why the problem is existing. If I set my desktop to 2560x240 before loading RetroArch everything works fine. I have to turn off integer scale to get it to render correctly unlike a lot of the information I’m seeing on here suggesting otherwise though.

What I’m noticing is that if I don’t pre-set the desktop background, RetroArch will set the correct resolution when booting up, but upon loading content it will revert back to the desktop resolution (in this case 640x480).

Unfortunately my “solution” isn’t a lot of good as I intend to use a frontend for all my games as I don’t like loading games through Rgui.

So is this a bug in RetroArch or is there a setting I’m missing somewhere?

I think the integer scale thing is normal. From the documentation post on this forum:

Tip: Gameboy advance and other similar, smaller resolutions require integer scale to be turned on, a core override should be saved for these systems.

This may actually be outdated, as well, now that anything below 200 px gets stretched to 240 anyway.

Yeah I’ve actually seen it posted elsewhere integer should be off so I probably got my wires crossed on that one. Even so though, I’m stumped why this isn’t working unless I change the desktop resolution first.

While not a solution, a workaround could be to use some external function to change the desktop res prior to launching RA as part of your frontend launch command:

Hmm yes I think that would be possible. I would be concerned about resetting it once RA has closed though. Is there a way to call a script on close?

Maybe RocketLauncher would be the key here (I’ve actually never used it and have zero idea if this is even within it’s capabilities haha).

I’m pretty sure launchbox has support for this sort of thing. Never used it myself, though.

Actually I could probably do it all from an autohotkey script if necessary.

Ideally I’d like to find a proper fix if I can though.

So I’ve done another setup clean from scratch on a different arcade monitor (not entirely sure but I think it’s a Wells Gardner tri-sync) and I’m getting the same problems. Will only work if I set the desktop to 2560x240 before running retroarch.

@Alphanu do you have any ideas on what my issue is? Since I’ve recreated it on two separate machines but I don’t see a ton of other people having this issue it must be something I’m doing but I can’t figure out what.

Yeah, I believe It is the windows interlaced bug. Calamity has created a fix for it, you can get this from his forum. It currently does not work with the latest windows 10 though.

Why are you not using true native resolutions? this will make things look a lot better as well!

To be fair I have not worked on the windows version for a while. Its probably due some updates.

If you are using this in an arcade machine. I amuse you have a dedicated emulation PC? If so why don’t you try out the Linux version? It runs at exact refresh rates as well.

1 Like

Ah thanks I’ll look into that.

My reason for not using Linux is simply I have zero experience with it. It is indeed a dedicated machine though. I don’t suppose there are some good tutorials out there for getting going is there?

Also I tried true native resolutions but the resolution doesn’t switch (I’m still not suoer clear on when you want to use super res vs native res)

Native will always be my choice with an ATI card but I have a HD5450. And have no issues with it.

Linus could not be easier. RetroArch does every thing for you. So install Ubuntu 14, 16, or 18. I would recommend 16. Install Retroarch following this guide.

https://retroarch.com/index.php?page=linux-instructions

After this run Retroarch. Change to the resolution you want, then turn CRT Switres on. Exit retroarch and restart you computer. Once rebooted use the auto start up option built into ubuntu and make RetroArch auto load on start up. Then reboot and connect you CRT.

Job done.

You can use other Linux distros but ubuntu does seem to be the simplest to setup. @hunterk correct me if I’m wrong with this statement. Is there other means of setting up auto load on boot?

2 Likes

Yeah, it’s linux, so there’s 10,000 ways to do anything, but that sounds like the most straightforward to me. :slight_smile:

2 Likes

Thanks guys. While learning a new OS doesn’t sound super appealing, I’ve been banging my head against the wall on this for so long I’ll take it over continuing down this road (the calamity patch won’t work for me unless I do a fresh install of win10 anyway now).

I had this problem - It does that when there is no matching modeline to support the content. The vertical resolution in your modeline has to be exactly correct for it to switch over properly.

Hmm but I’m installing all the modelines from the included ini. Do I need to install more?

I installed Ubuntu 18 and am having some issues. I had to install the 640x480 modeline manually to get the picture to display at all but after that when setting Switchres to on I get black across the board (ie both monitors). I’m assuming it is trying to switch to a resolution and failing. I’m guessing it’s due to not having these modelines installed for my card on linux but how do I go about doing that (other than looking up each individual one and manually entering them like I did the 640x480 one?) Surely there has to be a better way.

Did I make a mistake installing Ubuntu 18 instead of 18? haha;;;

The included ini with CRT Emudriver does not have all the resolutions needed. You need to add them all in. Look at this read me. Near the bottom is the modelines you need to install. Make sure you install them in static mode.

No modelines are needed for Linux, they are installed on the fly. I have not tried ubuntu 18 but it should be fine. I have it working on Intel and Nvidia cards aswell. Did you try native and super resolutions(1920 2560 3840)? Are you using VGA or DVI?

In linux, the modelines are generated on-the-fly. No prior installation needed.

Just make sure your CRT is the primary monitor.

2 Likes

OK right it going black was because it wasn’t set to the primary monitor. Now though whenever I try to use any of the switchres options (native, 1920, 2560 etc) it changes to a resolution it clearly cant support and I have to manually set it back via the terminal.

Oh and I’m using a VGA to HDMI adapter (connected to a jpac)

https://github.com/alphanu1/MME4CRT/blob/master/README.md forgot to add the link