there's no support for that as far as i know, the best thing i've personally got working was converting the screen format pixel by pixel (very slow)
you might be able to use something like
init sdl with 16 bit screen surface (a new surface)
let the code blit to the old surface
use SDL_DisplayFormat on the old surface (converts surface to the current display format as best as it can)
then flip the new surface
i never got that working myself though, and gave up working on it, booboo did say he would look into adding other display depths to the graphics drivers though, when he had time, and after all the filesystem corruption issues etc