For bloom we have to do some things.
First, we have to copy the whole screen and apply a tolerance (only keep the bright spots).
Second, we want to blur this copied screen.
Finally we can copy this screen over our original screen.
I couldn't found a fast algorithm for this. The only way to do the TOLERANCE and the BLUR is from shader.

Here is a test without any shader. I tuned up all the effect to see, but it's wrong and it's even worse if you start to move around the screen.

And if I switch on my Horizontal blur shader, then the shader works, but the scene falls apart. Why???

Here is the project in the attachment.
To enable the shader look here:
//IF YOU USE THIS SHADER THE RENDER FALL APART??
//X_SETSHADER 13
DRAWSPRITE map[mx][my], cx, cy
//X_SETSHADER -1
[attachment deleted by admin]