diff --git a/Cores/DeltaCore b/Cores/DeltaCore index 1e23a6c..d9b61b6 160000 --- a/Cores/DeltaCore +++ b/Cores/DeltaCore @@ -1 +1 @@ -Subproject commit 1e23a6c74680122a59b6a63c83b722d7d8e82a3c +Subproject commit d9b61b60c23286a4758bab06ed4a89de641f2628 diff --git a/Delta/Emulation/GameViewController.swift b/Delta/Emulation/GameViewController.swift index 7fe1d40..9472087 100644 --- a/Delta/Emulation/GameViewController.swift +++ b/Delta/Emulation/GameViewController.swift @@ -429,23 +429,7 @@ extension GameViewController: SaveStatesViewControllerDelegate self.pauseEmulation() } - self.emulatorCore?.save { (temporarySaveState) in - do - { - if FileManager.default.fileExists(atPath: saveState.fileURL.path) - { - try FileManager.default.replaceItem(at: saveState.fileURL, withItemAt: temporarySaveState.fileURL, backupItemName: nil, resultingItemURL: nil) - } - else - { - try FileManager.default.moveItem(at: temporarySaveState.fileURL, to: saveState.fileURL) - } - } - catch - { - print(error) - } - } + self.emulatorCore?.saveSaveState(to: saveState.fileURL) if let outputImage = self.gameView.outputImage, diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index daede1d..8df3348 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -561,20 +561,9 @@ extension SaveStatesViewController: UIViewControllerPreviewingDelegate if let emulatorCore = self.emulatorCore { // Store reference to current game state before we stop emulation so we can resume it if user decides to not load a save state - emulatorCore.save() { saveState in - - let fileURL = FileManager.uniqueTemporaryURL() - - do - { - try FileManager.default.moveItem(at: saveState.fileURL, to: fileURL) - self.emulatorCoreSaveState = DeltaCore.SaveState(fileURL: fileURL, gameType: emulatorCore.game.type) - } - catch let error as NSError - { - print(error) - } - } + + let fileURL = FileManager.uniqueTemporaryURL() + self.emulatorCoreSaveState = emulatorCore.saveSaveState(to: fileURL) guard self.emulatorCoreSaveState != nil else { return } @@ -627,8 +616,20 @@ extension SaveStatesViewController: UIViewControllerPreviewingDelegate let gameViewController = viewControllerToCommit as! GameViewController gameViewController.emulatorCore?.pause() - gameViewController.emulatorCore?.save() { saveState in + + let fileURL = FileManager.uniqueTemporaryURL() + if let saveState = gameViewController.emulatorCore?.saveSaveState(to: fileURL) + { self.loadSaveState(saveState) + + do + { + try FileManager.default.removeItem(at: fileURL) + } + catch + { + print(error) + } } } }