Thanks Paulius, I appreciate the code but I can't get it to work.
The first bitmap is fine (I just used a LoadFromFile for that one), the second and third bitmaps (the first 2 that I pass through the procedure) end up just blank white, though the dimensions are correct.
The final bitmap has proper length/width also but only has black 'noise' covering the left 2 thirds of the picture.

This is how I've been calling it
Code:
...
BmpFireChasm: Array[0..3] of TBitmap; //one for each direction
...
// rotate Fire Chasm.bmp
  BmpFireChasm[0].LoadFromFile('Dungeon\Objective Room - Fire Chasm.bmp');
  for i := 1 to 3 do
    Rotate90Deg(BmpFireChasm[i - 1], BmpFireChasm[i]);
I've recently gotten http://delphi.about.com/cs/adptips20...ltip1201_4.htm to work somewhat. It rotates the image fine, but this also happens to anything not square (getting worse over the next 2 passes):


I'm wondering if I should just put up with the extra 8mb or use DelphiX, though I'd still like to do it this way.
:roll: