From 5746fdbb1c5b46ab1f7f51f0e71df76b2f275385 Mon Sep 17 00:00:00 2001 From: harrysof <73562755+harrysof@users.noreply.github.com> Date: Thu, 10 Sep 2026 23:25:28 +0100 Subject: [PATCH] Update DimensionsListener.cpp --- rpcs3/Emu/Io/DimensionsListener.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Io/DimensionsListener.cpp b/rpcs3/Emu/Io/DimensionsListener.cpp index f664ca7..178ecf7 100644 --- a/rpcs3/Emu/Io/DimensionsListener.cpp +++ b/rpcs3/Emu/Io/DimensionsListener.cpp @@ -183,7 +183,13 @@ namespace const std::string path(reinterpret_cast(path_buf.data()), path_len); // Optional persistence: game writes go back to this .bin, same // as loading it through the Dimensions Manager dialog. - file.open(path, fs::read + fs::write + fs::lock); + // + // Deliberately no fs::lock: that flag drops FILE_SHARE_WRITE + // (see Utilities/File.cpp), so once the emulator holds the .bin + // a second open of the same file - loading the same figure onto + // another pad, or the companion app reading/writing it - fails + // with a sharing violation. read+write shares it properly. + file.open(path, fs::read + fs::write); } // The listener contract (LegoToypad expects Cemu-fork behavior) is