The ProSonic engine now supports filter files. These files are 256 bytes in size, and they manipulate how the graphics are drawn. You can set a different filter for each plane, both above and under water. I have created three filter files -- a null file (to draw graphics without any manipulation), a duplicate of the Labyrinth Zone under water background filter, and a duplicate of the Angel Island under water filter. I had a filter for the engine before, but it was hard-coded into the engine. This is no longer the case.
I decided to have a little fun and use the two duplicates for under water filtering. The Labyrinth filter has been applied to the front planes, while the Angel Island filter has been applied to the background plane. Of course the Labyrinth filter is a bit much for using with front planes, it demonstrates the use of multiple filters for a level. There will be an program for creating filter files as well. You can displace a line between -128 to 127 (though this might become -7 to 8), and each filter file records 256 lines. That should should plenty to allow for creativity.
Oh, and if you didn't notice in the picture, the sides have a shearing effect. This is a bug that results from my engine insisting on handling 320 pixels for each line. To become fully compatible with the original games, I am willing to allow it to record 16 pixels outside the screen on each end. Technically it already does to an extent, but the current programming tells the engine to ignore it (in order to speed things up a bit).