SwitchRes Ignoring ArcadeOSD porch settings

I’m wondering if something has changed with SwitchRes. I updated my 2nd build (backroom with a CRT) and now it seems to completely ignore the modeline changes I make in Arcade OSD.

It is shifting the entire thing horizontally to the right. I was fine with this for a few days, as I just shifted it to the left with the CRT’s service menu, but I powered up my real N64 on the other input and realized that this wasn’t a solution, as it created the same problem (but to the left) for anything other than RetroArch.

I’ve manually set everything properly in ArcadeOSD, and I can verify it’s calling on the same resolution, but it completely ignores the porch values I set, and seems to use it’s own.

Has anyone had issues with this? I noticed there were some newer CRT settings, like centering, but they didn’t seem to actually ‘do’ anything - which I thought was odd.

I seem to recall @Alphanu saying the porch/centering only works through the switchres.ini these days. do you have one of those set up?

I am having the same problem

I have no idea where to put the ini file


It looks for them first in the current working directory, which would usually be your RetroArch directory.

Before the move over to Calamity’s Switchres. RA would just use the screen resolutions that were installed (not dynamic and locked refresh rates). Now that Calamity’s full Switchres is implemented everything is dynamic. It makes sense that your Arcade OSD resolutions aren’t used.

The dynamic resolutions are generated based on the monitor profile (crt_range) you have chosen or custom profile you have set in the switchres.ini more info on this can be sound here

1 Like

Ok. And even according to that link you posted, it doesnt seem like anyone knows where the ini file goes for windows. Im using windows 7. Hunter said in the retroarch folder (I guess “root folder”). Is that a correct assumption? And all my Wx192 resolutions (there are only 2: 256x192 and 320x192) are slightly misaligned on the left hand side. What file would I have to edit in order to fix that, and what parameters would need to be edited? Thank you, Au

So for windows the ini needs to be in the working directory. So the same folder as the RetroArch.exe

You need to choose a monitor preset in the switchres.ini monitor presets can be found here or set the monitor to custom and enter an manual crt_range.

For a manual crt_range look further down the monitor preset page and it explains what each value does.

All my CRT I have used the default arcade_15 preset has worked really well.

1 Like

Oh dude, speaking of which. I see those monitor presets. I also have a wells gardner 9400 and its currently using an avga card cause when i try to use the wgd9400 preset, the screen either goes out of range or slowly rolls horizontally. I’ve tried everything i could thinn of with it and I can not get a stable picture. You wouldnt happen to have any experience with a D9400, would you?

The information in this thread, and the updated doc have me up and running like 90% of the way.

I’ve got the INI set to NTSC, and I’m using 1920 super resolutions as Native was just making OSD notifications impossible to read.

The final part of the puzzle is the horizontal stretching. It’s perfectly centered now, and vertical is spot on as well, but horizontally I have the left/right side cut off by several pixels, on each side.

It’s not a CRT geometry issue, as all the consoles plugged into the same input are displaying correctly on the X-axis.

I just can’t figure out how to decrease it stretching horizontal.

Hey can you send me a photo of your .ini file? I dont think I’m doing mine right.

Hi mate,

So, what you are facing here is a limitation the range of the NTSC range. If however, NTSC monitor profile works best for you. Use it as the basses of a custom range and adjust the horizontal porch range to better fit your TV.

NTSC Range :-  
crt_range0  15734.26-15734.26, 59.94-59.94, 1.500, 4.700, 4.700, 0.191, 0.191, 0.953, 0, 0, 192, 240, 448, 480

Range info :- 
crt_range 0-9   HfreqMin-HfreqMax, VfreqMin-VfreqMax, HFrontPorch, HSyncPulse, HBackPorch, VfrontPorch, VSyncPulse, VBackPorch, HSyncPol, VSyncPol, ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax

Range Value Description

  • HfreqMin - Minimum Horizontal Frequency in Hz
  • HfreqMax - Maximum Horizontal Frequency in Hz
  • VfreqMin - Minimum Vertical Frequency in Hz
  • VfreqMax - Maximum Vertical Frequency in Hz
  • HFrontPorch - Horizontal Front Porch in μs
  • HSyncPulse - Horizontal Sync Pulse in μs
  • HBackPorch - Horizontal Back Porch in μs
  • VfrontPorch - Vertical Front Porch in μs
  • VSyncPulse - Vertical Sync Pulse in μs
  • BackPorch - Vertical Back Porch in μs
  • HSyncPol - Horizontal Sync Polarity
  • VSyncPol - Vertical Sync Polarity
  • ProgressiveLinesMin - Minimum Number of Progressive Lines
  • ProgressiveLinesMax - Maximum Number of Progressive Lines
  • InterlacedLinesMin - Minimum Number of Interlaced Lines
  • InterlacedLinesMax - Maximum Number of Interlaced Lines

For example use thy the following. The larger the value the bigger the porch will be (shrinking the horizonal scratch of the image)

crt_range0 15734.26-15734.26, 59.94-59.94, 1.800, 4.700, 6.4, 0.191, 0.191, 0.953, 0, 0, 192, 240, 448, 480

Just remember to change you monitor profile to custom and change crt_range0 from auto to the above. Your ini should look similar to below.

Monitor                  custom   

crt_range0               15734.26-15734.26, 59.94-59.94, 1.800, 4.700,6.4, 0.191, 0.191, 0.953, 0, 0, 192, 240, 448, 480

I hope this helps.

what you will also notice is there is no range in the horizontal 15khz range (15734.26-15734.26) You might want to have a look a a few ranges and possible play with this a little as well. Only if you really need to. Take a look here

If you are using Windows you can use Arcade OSD to adjust the porch vales to se how it looks and copy these to the range!


This helped massively. I ended up going with 1.6 and 6.0, and I still don’t fully understand how this all works, but it got me tinkering with it in the correct way and now I’ve got it running better than it ever was before.

Thank you so much for the help man. I just really really appreciate it. I was having a crap day and this just really made my night.

Thank you.

I’m gonna go play some Mega Man X3 now.


EDIT: For future readers… Make sure you calibrate your settings on multiple systems. I did the 240p suite on Genesis, but had “Full Borders” on lol and had to re-calibrate.

I went with 3.2 and 7.8, after trying an SNES game and realizing I’m an idiot XD