One method I've used is to make a copy of the sprite, and put it onto the next zdepth, so if the current sprite is at 1000 depth, set this cloned sprite to 1001, and maybe offset it's position on X and Y a little as well.
Then, the cool bit - you colour it jet black, and alpha fade it, like SETSPRITECOLOR(spr,0,0,0,128)
This makes a silhouette of your sprite, great for shadows. You could even just make a function to add a shadow sprite, like use a sprite number and clone a new sprite from it, offset the depth and position and change the colour. That might be the easiest way for platform shadows, just remember to disable physics on them.
I am the one who knocks...