I've attached a simplified block diagram of an emulator's screen chain. First the game gets rendered natively, then it gets processed with output specs like GLSL and output to the screen afterwards. All of this is tightly integrated to prevent slowdown or lag at the user's side.
If you theoretically wanted to put one shader over the entire screen, you'd have to record the output at step 3 and run it through the entire chain again. This would needs lots of processing power and lead to unacceptable lag.
Your best bet is to use Retroarch. It uses converted emulator cores with its own video output chain, so all the games in there can be used with a single shader. It's not a full system thing but it will save you time.