-
Notifications
You must be signed in to change notification settings - Fork 15
RetroArch ‐ How to Disable Mode Switching for AMD APUs & dGPUs using a DAC
This guide explains how to use a custom switchres.ini override to prevent unnecessary Switchres mode switching in RetroArch.
This can be useful on some AMD APUs and dGPUs when using a digital-to-analog converter (DAC), where changing modelines may cause screen flicker, sync loss, a temporary black screen, or other display issues.
For the full override system and priority order, see:
➡️ Switchres.ini Overrides for RetroArch
Normally, Switchres can generate or select a video mode based on the game being launched.
For most CRT setups, this is useful.
However, some AMD + DAC setups may behave better if a game or group of games is forced to use a fixed output mode instead of letting Switchres dynamically change to another mode.
The idea is simple:
- Create a RetroArch override.
- Create a matching
.switchres.inioverride file. - Add only the Switchres options needed to force the desired output mode.
The .switchres.ini file must be placed in the RetroArch config override folder, not inside the ROM folder.
Example RetroArch config folder:
/userdata/system/configs/retroarch/config/<core_name>/
Example Switchres override file:
/userdata/system/configs/retroarch/config/<core_name>/<override_name>.switchres.ini
Use the method that matches what you want to control:
One specific game -> Save Game Overrides
Several games in a folder -> Save Content Directory Overrides
Whole RetroArch core -> Core-wide Switchres override
All RetroArch cores -> Global RetroArch Switchres override
For this guide, the two most useful methods are:
- Per-game override for one specific problem game.
- Folder-based override for several games that should share the same fixed mode.
You can copy /etc/switchres.ini as a starting point, but this is not required.
A .switchres.ini override can be very small and only include the settings you want to change.
Example minimal override:
user_mode 2560x240
interlace 0Switchres will still read the normal settings from:
/etc/switchres.ini
Then it applies only the options found in the more specific .switchres.ini override file.
This makes small game or folder overrides cleaner and easier to maintain.
Use this method if only one game needs a fixed Switchres output mode.
In this example, we use:
- System: PlayStation
-
Core:
PCSX-ReARMed -
Game:
Castlevania - Symphony of the Night (USA) -
Wanted output mode:
2560x240
In EmulationStation, make sure the game is using the correct RetroArch core.
For this example:
PCSX-ReARMed
Launch the game from EmulationStation.
Example:
Castlevania - Symphony of the Night (USA)
While the game is running, open the RetroArch Quick Menu.
Usually this is done with:
[HOTKEY] + South Button
or with a keyboard:
Shift + F1
Navigate to:
Overrides -> Save Game Overrides
This creates a game-specific RetroArch override file.
For this example, RetroArch creates:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/Castlevania - Symphony of the Night (USA).cfg
Exit the game and return to EmulationStation or terminal/SSH.
Create a matching .switchres.ini file with the same base name as the .cfg file.
Example:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/Castlevania - Symphony of the Night (USA).switchres.ini
You can create it manually, or from SSH/terminal:
nano "/userdata/system/configs/retroarch/config/PCSX-ReARMed/Castlevania - Symphony of the Night (USA).switchres.ini"Add the fixed Switchres mode you want.
Example for a 240p super resolution:
user_mode 2560x240
interlace 0If you only created the game override so Switchres could use the matching filename, you can remove the RetroArch .cfg file afterwards.
Example command:
rm "/userdata/system/configs/retroarch/config/PCSX-ReARMed/Castlevania - Symphony of the Night (USA).cfg"This keeps the game-specific switchres.ini override, but removes the unnecessary RetroArch settings override.
If you also want RetroArch settings to apply to this game, keep the
.cfgfile and edit it instead of deleting it.
The game now has its own fixed Switchres output mode:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/Castlevania - Symphony of the Night (USA).switchres.ini
Only this game is affected.
Use this method if several games should use the same fixed output mode.
This is useful if you want to group games by output height, for example:
224_no_mode_switch
240_no_mode_switch
448_no_mode_switch
478_no_mode_switch
480_no_mode_switch
Example ROM folders:
/userdata/roms/psx/240_no_mode_switch/YourGame.bin
/userdata/roms/psx/224_no_mode_switch/AnotherGame.bin
Create a folder under your ROM system folder.
Example:
/userdata/roms/psx/240_no_mode_switch
Place the games that should use the same fixed output mode inside that folder.
Example:
/userdata/roms/psx/240_no_mode_switch/Game1.bin
/userdata/roms/psx/240_no_mode_switch/Game2.bin
After moving games into new folders, refresh or re-scan your game list in EmulationStation if needed.
Launch one game from:
/userdata/roms/psx/240_no_mode_switch
Open the RetroArch Quick Menu and navigate to:
Overrides -> Save Content Directory Overrides
RetroArch will create a folder-based override file.
Example:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.cfg
The important part is the base filename:
240_no_mode_switch
The matching Switchres override must use the same base filename:
240_no_mode_switch.switchres.ini
Exit the game and return to EmulationStation or terminal/SSH.
Create this file:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.switchres.ini
Example command:
nano "/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.switchres.ini"Example content for forcing a 240p super resolution:
user_mode 2560x240
interlace 0If you only created the content-directory override so Switchres could use the matching filename, you can remove the RetroArch .cfg file afterwards.
Example command:
rm "/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.cfg"This keeps the folder-based Switchres override, but removes the unnecessary RetroArch settings override.
If you also want RetroArch settings to apply to this folder, keep the
.cfgfile and edit it instead of deleting it.
All games launched from:
/userdata/roms/psx/240_no_mode_switch
will use:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.switchres.ini
Games outside that folder will continue using the normal Switchres behavior, unless another more specific override exists.
Before creating a fixed override, it is useful to check what resolution Switchres normally selects for the game.
- Launch the game normally.
- Exit the game.
- Check the logs:
/userdata/system/logs/es_launch_stdout.log
/userdata/system/logs/es_launch_stderr.log
Look for Switchres messages similar to:
Switchres: modeline generated for 320x240@60.000
Use the detected height when deciding which fixed mode to force.
Example:
320x240 -> user_mode 2560x240
320x224 -> user_mode 2560x224
These are example starting points for common 15 kHz output heights.
user_mode 2560x224
interlace 0user_mode 2560x240
interlace 0user_mode 2560x448
interlace 1user_mode 2560x478
interlace 1user_mode 2560x480
interlace 1For progressive modes such as 224p and 240p,
interlace 0is normally correct.For interlaced modes such as 448i, 478i, or 480i, do not use
interlace 0, because that would prevent Switchres from using interlaced output.
The .switchres.ini override file must be placed in the RetroArch config override folder:
/userdata/system/configs/retroarch/config/<core_name>/
Do not place it inside the ROM folder.
Correct:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.switchres.ini
Incorrect:
/userdata/roms/psx/240_no_mode_switch/240_no_mode_switch.switchres.ini
If RetroArch creates:
240_no_mode_switch.cfg
Then the Switchres override must be:
240_no_mode_switch.switchres.ini
If RetroArch creates:
Castlevania - Symphony of the Night (USA).cfg
Then the Switchres override must be:
Castlevania - Symphony of the Night (USA).switchres.ini
The base filename must match exactly.
The file must be placed inside the correct RetroArch core folder.
Example:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/
Other cores will use different folder names.
For this specific use case, a minimal override is often easier than copying the full /etc/switchres.ini.
Example:
user_mode 2560x240
interlace 0This keeps the override easy to read and reduces the chance of accidentally changing unrelated Switchres options.
Do not create separate per-game overrides for many games if they all need the same fixed mode.
Instead, place them in a folder such as:
/userdata/roms/psx/240_no_mode_switch
Then use one matching folder override:
/userdata/system/configs/retroarch/config/PCSX-ReARMed/240_no_mode_switch.switchres.ini
You can now disable or reduce unwanted Switchres mode switching at the level you need:
One problem game -> game-specific .switchres.ini
Several similar games -> folder-specific .switchres.ini
Whole core -> core-wide .switchres.ini
All RetroArch cores -> global RetroArch switchres.ini
This gives fine control over AMD APU and dGPU setups using a DAC, without forcing the same fixed mode globally for every RetroArch game.