This is an old revision of the document!


Under Construction!

Specify the lowest acceptable pixel/dot clock for the video system. Switchres will always compute a modeline having at least the specified dot clock. This is particularly useful on Linux in 3 major cases :

To overcome issues where the video card is limited to how low a dot clock it can output and going below the limit produces no display or can freeze the hardware. Common values are 8.0, 12.0, or even 25.0. AMD cards often require an 8.0 minimum dot clock. The video connector (either because of its internals or technical specifications), or video driver won't accept any modeline not exceeding a minimum dot clock. This is often the case with Intel and nVidia GPUs. In this case, it's recommended to set 25.0. The HDMI standard, for example, requires no less than a 25Mhz dot clock (which is why the use of HDMI connectors is not recommended). You do want to force the use of super resolutions regardless of the capabilities of your video system. In this case, set to 25.0.

Switchres will automatically calculate correct super resolutions based on the number you put in by integer multiplying the horizontal resolution per modeline. So say it's 640x480i and that's below the dotclock min it will do 1280x480i if it's still below it, it will do 1920(3x width)x480i and so on Same goes for any other modeline, like 256×224 it would do 512(2x)x224, 768(3x)x224 and so on until it meets the minimum dot clock set in the .ini

In Retroarch and GroovyMame All resolution are integer scaled and aspect ratio corrected to match the original resolution.

No standalone emulators or Application in Batocera has support for this. So if your card can only output 640x480i and up then that is the lowest resolution you can use.

With Super resolution width: above this width, fractional scaling on the horizontal axis is applied without penalization

So say you have a card that can't output a Progressive: 256×224 resolution (SNES) then you have to use super resolution 2560×224

Then switchres will apply the scaling mode (fractional or integer) that best fits the situation. Fractional scaling on horizontal axis, integer scaling on vertical axis.

configure switchres.ini to your monitor (WinScp)

Connect to Batocera via SSH

Have a keyboard connected

Exit Emulation Station

/etc/init.d/S31emulationstation stop

or

Exit to terminal ctrl+alt+f3

From putty type for this to test modeline 640×480@60 with configured monitor profile

DISPLAY=:0 switchres 640 480 60 -i switchres.ini -s -l grid

You can change between 2 types of grids with Tab.

Exit pressing Escape from keyboard to try a new modeline

Go back to Es with command

/etc/init.d/S31emulationstation start

or restart with

reboot

Modelines to test your switchres.ini settings with

dotclock_min 0 (Default) 0-25 with decimal support 1.1, 8.3, 10.5 and so on

Arcade Modelines

For example the Arcade game Dottori Kun (dotrikun)

DISPLAY=:0 switchres 128 192 61.035156 -i switchres.ini -s -l grid

If you get uneven frame-pacing and microstutters in Mame and/or Retroarch we need to disable the option TearFree in the driver configuration file located at /etc/X11/xorg.conf.d

  • 20-amdgpu.conf (GCN 3, GCN 4, GCN 5, RDNA & RDNA 2) or download an already fixed 20-amdgpu.conf
Section "OutputClass"
     Identifier "Fix AMD Tearing"
     Driver "amdgpu"
     MatchDriver "amdgpu"
     Option "TearFree" "false"
EndSection
  • 20-radeon.conf (TeraScale and older, GCN 1 & GCN 2) or download an already fixed 20-radeon.conf
Section "OutputClass"
     Identifier "Fix AMD Radeon Tearing"
     Driver "radeon"
     MatchDriver "radeon"
     Option "TearFree" "false"
EndSection

Don't forget to batocera-save-overlay and reboot.

Games freeze or EmulationStation freeze.

This has been reported by some users and myself included. It's not know yet what is the underlying reason. It could be a driver or kernel issue.

We need to add Option “DRI” “2” in the driver configuration file located at /etc/X11/xorg.conf.d

  • 20-amdgpu.conf (GCN 3, GCN 4, GCN 5, RDNA & RDNA 2) or download an already fixed 20-amdgpu.conf
Section "OutputClass"
     Identifier "Fix AMD Tearing"
     Driver "amdgpu"
     MatchDriver "amdgpu"
     Option "TearFree" "false"
     Option "DRI" "2"
EndSection
  • 20-radeon.conf (TeraScale and older, GCN 1 & GCN 2) or download an already fixed 20-radeon.conf
Section "OutputClass"
     Identifier "Fix AMD Radeon Tearing"
     Driver "radeon"
     MatchDriver "radeon"
     Option "TearFree" "false"
     Option "DRI" "2"
EndSection

Don't forget to batocera-save-overlay and reboot.

  • Short explanation of expression mentioned here

TearFree is a tearing prevention option which prevents tearing by using the hardware page flipping mechanism

Microstutter short irregular frame dips

Frame-pacing uneven distribution of frames

  • user/rion.1631698190.txt.gz
  • Last modified: 5 years ago
  • by rion