The ALPHA_BLEND macro doesn’t work properly when the alpha component is
255.
A quick fix would be to insert the following line
if(A==SDL_ALPHA_OPAQUE) { dR=sR; dG=sG; dB=sB; } \
at line 372 in SDL_blit.h
This seems to be a know bug, there is a comment about it in the
BlitNtoNPixelAlpha function so it seems strange that this hasn’t been
fixed yet, especially since a similar check is made in the
BlitRGBtoRGBPixelAlpha function.
This is a quite annoying bug, since it essentially makes it impossible
to blit 32 bit surfaces to the screen(since everything previously
blitted shows through)