Save settings per emulation core
Is your feature request related to a problem? Please describe. Settings like video, controls and shaders are shared between all cores and need to be changed manually every time.
Describe the solution you'd like Being able to save settings per core.
Additional context I like to play console games with a CRT shader for example and handheld games with an LCD grid. The frame blending option is really only good for handheld systems as well and it is annoying to turn it on and off. Controls also do not transfer nicely between cores; if I play an N64 game and then switch to a Gameboy Color game, both A and B are automatically set to the same button for some reason.
While controls may someday get split up (at the expense of setup time) and shaders may someday get simplified from the giant flyout mess that they are, I doubt we see settings split up per core. It would mean that some menu items would persist and some wouldn't, with nothing to convey which is which. The menu is also faster than using a bunch of stand-alone emulators, and if you are actually using the emulator to play games, switching between games happens infrequently.
But I'll also say is this. If the librashader list went away and we simply had a few great shaders, one of them being "Fast CRT Shader", and it only applied to CRT systems automatically, I would support that. Because that makes sense. Having to setup a shader every time you try a new system makes no sense.
I think it would be convenient if you could just set it and forget it, then never have to touch it again. Some people play a wide variety of games, and as an example the Game Boy shaders really don't fit other systems. Another thought is you could have the shaders be selected from a file dialog.