private async void StartBackupLoop() { var offset = 0L; while (true) { await Task.Delay(30000); _gameboy.SaveState(); await Task.Delay(30000); offset++; if (offset % 60 == 0) { var backupPath = Path.Combine(_gameboy.DataDirectory, "Backup " + DateTime.UtcNow.Ticks); Directory.CreateDirectory(backupPath); _gameboy.PerformBackup(backupPath); } } }