Relocating the RetroArch app causes strange problem with shaders

I am experiencing a strange problem with RetroArch 1.9.0 (Metal) which I compiled myself using XCode.

I placed the compiled app in a folder called Retroarch in the root directory (i.e. Macintosh HD) and proceeded to load my cores and configs etc. That all worked fine. Shaders are working fine and everything. I tested a few different cores such as Fuse, ScummVM etc. All good so far. All the appropriate config files are created in User/Library/Application Support/RetroArch.

Then, when I changed my mind about where I wanted to store the app, I tried moving it to different locations in Macintosh HD, and also tried placing it on the Desktop. Basically, if I move the app anywhere other than where I originally placed it (i.e. Macintosh HD / Retroarch) then my pre-selected shaders are not working. The core will start normally and I can load a game, but the shader will not ‘work’ - it says it is selected in the shader configuration but all I see is normal nearest neighbor graphics in full screen. If I then place the Retroach app back into the Macintosh HD/Retroarch, the shader works normally again.

I do not move any other files or change any config settings - this behavior is triggered just by moving the location of the Retroarch app.

I am commpletely stumped because I cannot figure out what app dependencies could result in the location of the app being important - does it not obtain everything it needs from within its own app package and in Library/Application Support?

@almeath On macOS, shaders are stored inside the app bundle (in / and the file path for shaders is stored inside the configuration automatically…

You will need to either edit the file location manually inside the config (and maybe each auto-shader you created) or just change the directory for shaders inside RetroArch’s settings directly…

Thanks. Yes, the problem was that the config file that was storing the shader settings for the relevant core (located in /Application Support/RetroArch/config) does not update itself when the RetroArch app is moved elsewhere on my hard drive. The shader links were all pointing to the old location of the app.

After moving RetroArch to the new location, I had to open the slangp file for the core, and edit the links manually. As I only have a couple of cores loaded it was not a big deal, but I think it would be a pain if I had lots of cores and various shader links to update. Is there perhaps a better way to get these links to update themselves automatically… anyway, I do not move the location of the app frequently, so the problem was solved.