anchor.diff:  //Saves game by provided name
   procedure TKMGame.Save(const aSaveName: UnicodeString; aTimestamp: TDateTime; aSaveWorkerThread: TKMWorkerThread);
   var
  -  fullPath, rngPath, mpLocalDataPath, newSaveName: UnicodeString;
  +  fullPath, rngPath, mpLocalDataPath, newSaveName, loadFrom: UnicodeString;
   begin
     {$IFDEF PERFLOG}
     gPerfLogs.SectionEnter(psGameSaveWait);
  
positive.code:       gGameSettings.MenuSPSaveFileName := aSaveName;
  
      //Remember which savegame to try to restart (if game was not saved before)
      fSaveFile := ExtractRelativePath(ExeDir, fullPath);
  
      newSaveName := SaveName(aSaveName, EXT_SAVE_BASE, fParams.IsMultiplayer);
      //Copy basesave so we have a starting point for replay
      if fParams.IsReplay then
      begin
        //Game was saved from replay (.bas file)
        if FileExists(fLoadFromFile) then
          KMCopyFileAsync(fLoadFromFile, newSaveName, True, aSaveWorkerThread);
      end else
        //Normally saved game
        {$IFDEF PARALLEL_RUNNER}
  
negative.code: end;
  
  
  // Used to restart game / replay while debugging
  procedure TKMGame.RestartReplay;
  begin
    gGameApp.NewReplay(ChangeFileExt(ExeDir + fLastSaveFileRel, EXT_SAVE_BASE_DOT));
  end;
  
  
  