I want to report a bug in SDL video handling.
Currently SDL always assumes that the video memory
has the same endianes as the CPU.
This is not always valid!
For example there are systems which have a big endian CPU
and use a video card with little endian memory layout.
A 16bit color mode on such a system will not by 565 but 3553.
As the bytes are switched the video mode is:
Green 3 low bit
Blue 5 bit
Green 3 high bits
Red 5 bit
SDL does recognise this mode as 535 (blue5/green3/Red5)
and only uses the 3 high bits of green. So images loaded with SDL on
such screen don’t use 64K colors but only 8k.
I hope that this report is helpfull for you