Fast palette change method.

I am using TNT driver with TNT2 Pro 32Mb board, driver is very fast, but
other drivers are slower than TNT one. So I have a problem with other
drivers in my application.

The problem:

I am using not paletted video modes for Photon (with bpp 15,16,24,32). In
application I created with PhImageCreate image, allocated palette memory and
fill the palette. When I try to rotate palette → it was not showed, so I
need call PgDrawPhImage to redraw the image.

I’m using 640x480 image size. On my TNT2 Pro board this method can do
~35fps, but when I try it in Savage4 board it produce ~8 fps.

The question:

Are exists more optimized methods for my case ?

Thanks !