There is a workaround but it gets kind of messy.
If you create an override config that sets the root shaders folder and pass it on the command line with everything else.
For example.
retroarch_4K.exe -L "E:\RetroArch\cores\mesen_libretro.dll" "E:\Emulation\NES\Adventures of Lolo (USA).nes" --set-shader "E:\RetroArch\config\Mesen\Famicom.slangp" --appendconfig="E:\RetroArch\config\Mesen\custom.cfg"
The custom config only contains…
video_shader_dir = ":\config\Mesen"
To make it easier you could eliminate the --set-shader command line and just pass the append if you set a core preset. So the command line would be…
retroarch_4K.exe -L "E:\RetroArch\cores\mesen_libretro.dll" "E:\Emulation\NES\Adventures of Lolo (USA).nes" --appendconfig="E:\RetroArch\config\Mesen\custom.cfg"
and the presets could be named…
Mesen.slangp and Mesen_Night.slangp and be located in the /config/Mesen folder.
Then the “Next Shader” hotkey could be bound a button to switch using the gamepad.
Note that in this scenario, none of your presets or reference presets could be using the
:/shaders/
syntax (They would all have to be relative or absolute paths.) because :/shaders/
would point to the /config/Mesen
folder instead of the root shaders folder.