Well I think it is 32 bit. I do set_color_depth(32), then I do set_gfx_mode(). After that each create_bitmap() should create a 32 bit bitmap, right? The saved png has four channels but the alpha is black. I managed to separate the channels, revealing the image in the rgb channels. I guess my problem is drawing the image in the first place. I've been RTFM, but I haven't figured out when the drawing functions actually change the alpha value for a pixel in the bitmap.
I draw the image pixel by pixel. For the background I imagine I could do:
and for the object I have methods for calculating r, g, b and a. a is 255 except for the edge, where I interpolate to get rid of crispiness, kind of anti-aliasing.
But the result looks like if a would calculate to 0 for the whole image.