Created a frame processor interface where we now have implemented:
Frame averaging (phosphor blend)
Frame maxing
Identity (no processing)
This PR also removes unneeded copying of the frame buffer & RAM buffer on each emulation step. This results in a slight performance improvement.
Frame Maxing details
As for frame maxing, we perform frame maxing per channel if getScreenRGB is called. This is standard and what DeepMind's preprocessing does. If getScreenGrayscale is called then we just take the max over luminosity.
Overview
Frame Maxing details
As for frame maxing, we perform frame maxing per channel if
getScreenRGB
is called. This is standard and what DeepMind's preprocessing does. IfgetScreenGrayscale
is called then we just take the max over luminosity.Fixes #467.