You also need to account for blooming, phosphor delay (different for each of red/green/blue), a "black" that is grey...
If you want faithful emulation, you need all these things. If you want performance, you want none. For the most attractive display, you need SOME of these things, and it varies from game to game. Probably some can be done in a GPU. You might want to let the user know if a real (not just MesaGL) GPU is available and able to handle something, if a GPU can do a half-good job, if something will just munch CPU time, etc.