There was a method that someone posted once, it is in the code archives under LoadTGA image.
The LoadTGA image function generates an image which is used to blit with which contains all pixels which have an alpha of 255 and an alpha of 0. This is blitted to the screen using the regular image commands. Then the individual pixels which have an alpha between 0 and 255 are plotted using writepixelfast/readpixelfast. For a speed boost again, if you are blitting against a static background then load the background image into a bank and read the pixel colors from the bank (or an array) instead of from the drawing buffer.
The LoadTGA image function generates an image which is used to blit with which contains all pixels which have an alpha of 255 and an alpha of 0. This is blitted to the screen using the regular image commands. Then the individual pixels which have an alpha between 0 and 255 are plotted using writepixelfast/readpixelfast. For a speed boost again, if you are blitting against a static background then load the background image into a bank and read the pixel colors from the bank (or an array) instead of from the drawing buffer.