Rtm Binarised File Format
Structure
RTMB
{
  RTMBHeader       Header;
  byte             Always1;              // ??
  XYZTriplet       Displacement;
  ulong            nFrames;              // 55 eg
  ulong            Generally0;           // ??
  ulong            nBones;               // same value as NoOfBones
  ulong            NoOfBones;            // 128 eg
  Asciiz           BoneNames[NoOfBones]; // "weapon\0\rightarm\leftarm\etc..."
  CompressedFloats FrameTimes;
  CompressedFrames Frames[nFrames];
}
BoneNames are the traditional Bis catenated string. Unlike some however, there is no terminating null because the count is known
RTMBHeader
RTMBHeader
{
 char[4]       Type;          //"BMTR" 
 ulong         Version;       // =3
}
CompressedFloats
CompressedFloats
{
 ulong nFrameTimes;
 float Array[nFrameTimes];
}
This is the traditional Bis potentially compressed structure, where, if, the total bytes stored >=1024, the array is compressed (in lzo format)
CompressedFrames
CompressedFrames
{
 ulong   ThisFrameNoOfBones;               // Should, in Theory always be same as nFrames
 short   Transforms[7][ThisFrameNoOfBones];
}
The short values are compressed floats (7 in total) for each 'frame'
conversion to float is
float ShortToFloat(short value) {return ((float)1.0 / (65534)) * (value + 32767);}
this is suspiciously similar to ofp compressed floats
float = short * 0.045
4 floats probably are used to describe a quaternion that describes the rotation. the other 3 floats are then for the translation
