If you are just blitting surfaces onto other surfaces (remember the screen is still a surface), it is likely SDL is doing all the converting for you behind the scenes. If you try to blit 8bpp surfaces with different palettes, SDL will automatically do "nearest color" matching between the palettes. If you try to blit 8bpp with 24bpp, it will automatically convert between bit-depths as appropriate. If the screen is 24bpp, you would get an apparently "flawless" result. This all has performance costs, though they might not be noticable on modern systems.