anchor.diff:  
   
   procedure TForm1.DoInterpTree(aTree: Integer; var aPicOffset: Integer; aDryRun: Boolean);
  +
  +  function Is4xAnim(A: TKMAnimLoop): Boolean;
  +  begin
  +    Result := A.Count >= 8;
  +    if Result then
  +      Result := (A.Step[1] = A.Step[2]) and (A.Step[1] = A.Step[3]) and (A.Step[1] = A.Step[4])
  +            and (A.Step[5] = A.Step[6]) and (A.Step[5] = A.Step[7]) and (A.Step[5] = A.Step[8]);
  +  end;
  +
   var
     A: TKMAnimLoop;
  +  Step, SubStep, InterpOffset,StepSprite, StepNextSprite: Integer;
  +  suffixPath, outDirLocal, outPrefix: string;
   begin
     A := gMapElements[aTree].Anim;
   
  
positive.code:   //Keep 1px padding on all sides
    MaxSoFar := MaxSoFar + 2;
    Result := ((MaxSoFar div 32) + 1)*32;
  end;
  
  
  
negative.code:     fDainFolder: string;
  
      function GetCanvasSize(aID: Integer; RT: TRXType; aMoveX: Integer = 0; aMoveY: Integer = 0): Integer;
      function GetDainParams(aDir: string; aAlpha: Boolean; aInterpLevel: Integer = 8): string;
  
      procedure WriteEmptyAnim;
      procedure MakeInterpImagesPair(RT: TRXType; aID_1, aID_2, aID_1_Base, aID_2_Base: Integer; aBaseMoveX, aBaseMoveY: Integer; aUseBase: Boolean; aBaseDir: string; aExportType: TInterpExportType);
      procedure Make4xInterpImages(RT: TRXType; aID_1, aID_2: Integer; aBaseDir: string; aExportType: TInterpExportType);
      procedure DoInterp(RT: TRXType; A, ABase: TKMAnimLoop; aUseBase, aUseBaseForTeamMask, aSimpleAlpha: Boolean; aBkgRGB: Cardinal; var aPicOffset: Integer; aDryRun: Boolean);
      procedure ProcessInterpImage(outIndex: Integer; inSuffixPath, outPrefixPath: string; aBkgRGB: Cardinal; OverallMaxX, OverallMinX, OverallMaxY, OverallMinY: Integer);
      procedure DoInterpUnit(aUT: TKMUnitType; aAction: TKMUnitActionType; aDir: TKMDirection; var aPicOffset: Integer; aDryRun: Boolean);
      procedure DoInterpSerfCarry(aWare: TKMWareType; aDir: TKMDirection; var aPicOffset: Integer; aDryRun: Boolean);
      procedure DoInterpUnitThought(aThought: TKMUnitThought; var aPicOffset: Integer; aDryRun: Boolean);
  