From 0324d5561b78b81a4f5898821c48df8868c8d80b Mon Sep 17 00:00:00 2001 From: ParantezTech <12572227+par274@users.noreply.github.com> Date: Wed, 29 Jul 2026 15:38:53 +0300 Subject: [PATCH] [savedata] Allow dialog reinit --- src/SharpEmu.Libs/SaveData/SaveDataDialogExports.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/SharpEmu.Libs/SaveData/SaveDataDialogExports.cs b/src/SharpEmu.Libs/SaveData/SaveDataDialogExports.cs index 795338bc..85d150c0 100644 --- a/src/SharpEmu.Libs/SaveData/SaveDataDialogExports.cs +++ b/src/SharpEmu.Libs/SaveData/SaveDataDialogExports.cs @@ -33,12 +33,17 @@ public static class SaveDataDialogExports LibraryName = "libSceSaveDataDialog")] public static int SaveDataDialogInitialize(CpuContext ctx) { - if (Interlocked.CompareExchange(ref _status, StatusInitialized, StatusNone) != StatusNone) + var previous = Interlocked.CompareExchange( + ref _status, + StatusInitialized, + StatusNone); + if (previous == StatusNone || previous == StatusFinished) { - return ctx.SetReturn(ErrorAlreadyInitialized); + Interlocked.Exchange(ref _status, StatusInitialized); + return ctx.SetReturn(ErrorOk); } - return ctx.SetReturn(ErrorOk); + return ctx.SetReturn(ErrorAlreadyInitialized); } [SysAbiExport(