Can someone explain to me how Shader configs work?

So I am a bit confused. It seems every time I apply a shader, and “save core preset”, it just saves the same shader to ALL cores.

I see there is a retroarch.cgp file in the shader directory, which links to the previous shader I saved. But then there are also folders per each system with their own custom configs in each one. I have managed for the most part to get each system work properly with their own shaders somehow, but all by trial and error.

I would really like to KNOW how these configs are supposed to work, and just make it much easier for me to go in and edit text and such.

Secondly, I currently have the CRT aperture shader applied across all console systems, but on a couple, the scanlines just don’t look right - Nintendo 64 for example. (screenshot linked below)

I am assuming I need to change the custom resolution in some way, but how will I do that without affecting ALL other systems as those options don’t seem to be on a per core basis, but rather a global one?

The N64 issue is caused by the core’s internal resolution. It messes up CRT shaders to have it >320x240. There is a preset in the ‘cgp’ directory–n64-aa-crt.cgp–that will force the proper resolution for CRT shaders.

For your other question, the way it works is: whenever you load a shader, it generates a preset for it and writes it to retroarch.cgp. If you have a core preset set, it should load that and overwrite the current retroarch.cgp with the core preset’s values. If you switch to another core that doesn’t have its own core preset, it’s going to keep using the same retroarch.cgp values set by the previous preset.

1 Like

Ah, I think I understand now. So, basically if I ever want to change a core’s preset, I will need to go through ALL the cores that do not have their own individual preset and make one for them? I really appreciate the response.

Also, I did find some information regarding the N64 CRT shader, but I am not seeing it in my menu anywhere? I will keep looking, or just download. It appears PS1 works the same way, I am assuming it has it’s own preset aperture shader as well?

And if I may ask another quesiton If I want to do different OVERLAYS per system, how is that done, since there doesn’t seem to be a per-core option for overlays?

Thanks!

No, you can change a core’s preset just by changing the shader(s) and then re-saving the core preset. Cores that don’t have a specific core preset are the only ones that suffer from the retroarch.cgp bleeding over.

PS1 indeed works the same way if you increase the internal resolution. You can use the same shader for it, typically, I just named it ‘n64-whatever’ because that’s the core I was testing it with at the time. You can get it from the online updater by updating your Cg shaders.

Overlays can be applied per core using the core config overrides. Load a core and some content, change whatever settings you want different from your main config (including an overlay, if desired) and then go to the quick menu and ‘save core override’.

2 Likes

Sorry, yeah that’s what I meant.

Excited to play with this. Thank you!

Sorry, that’s what I meant.

Also a tip: if you want you can load a shader, make changes in it and then just “save shader preset as”. It will be saved in main shader directory and you can switch multiple presets with N and M buttons.

1 Like

Nice!

I am noticing the mouse does not go away with the Overlays… I read somewhere this has been an issue, I am assuming it has not been fixed in some nightly? Or maybe there is a workaround?

Thanks for the help guys, fun rabbit hole.

Yeah the mouse pointer being visible when overlays are on, is annoying. But I don’t think there’s a fix for that.