diff --git a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp index df1419a6c01..3500e22d410 100644 --- a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp +++ b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp @@ -309,7 +309,12 @@ s32 SDIOSlot0Device::ExecuteCommand(const Request& request, u32 buffer_in, u32 b INFO_LOG_FMT(IOS_SD, "{}Write {} Block(s) from {:#010x} bsize {} to offset {:#010x}!", req.isDMA ? "DMA " : "", req.blocks, req.addr, req.bsize, req.arg); - if (m_card && Config::Get(Config::MAIN_ALLOW_SD_WRITES)) + if (!Config::Get(Config::MAIN_ALLOW_SD_WRITES)) + { + ERROR_LOG_FMT(IOS_SD, "Write attempted while locked."); + ret = RET_LOCKED; + } + else if (m_card) { const u32 size = req.bsize * req.blocks; const u64 address = GetAddressFromRequest(req.arg); diff --git a/Source/Core/Core/IOS/SDIO/SDIOSlot0.h b/Source/Core/Core/IOS/SDIO/SDIOSlot0.h index 242b8d57cc2..8f5ab32a8e7 100644 --- a/Source/Core/Core/IOS/SDIO/SDIOSlot0.h +++ b/Source/Core/Core/IOS/SDIO/SDIOSlot0.h @@ -63,6 +63,7 @@ private: { RET_OK, RET_FAIL, + RET_LOCKED = -10, RET_EVENT_REGISTER, // internal state only - not actually returned };