From 3c11360335e9acbc31f63fb8ced8170b2e932362 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Wed, 9 Oct 2024 00:24:08 +0100 Subject: [PATCH] IOS: log cIOS device checks as warnings, not errors Some games do this to detect piracy. --- Source/Core/Core/IOS/IOS.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/IOS/IOS.cpp b/Source/Core/Core/IOS/IOS.cpp index d6a586786a..fbea8dd9d7 100644 --- a/Source/Core/Core/IOS/IOS.cpp +++ b/Source/Core/Core/IOS/IOS.cpp @@ -689,7 +689,13 @@ std::optional EmulationKernel::OpenDevice(OpenRequest& request) if (!device) { - ERROR_LOG_FMT(IOS, "Unknown device: {}", request.path); + constexpr std::string_view cios_devices[] = {"/dev/flash", "/dev/mload", "/dev/sdio/sdhc", + "/dev/usb123", "/dev/usb2"}; + static_assert(std::ranges::is_sorted(cios_devices)); + if (std::ranges::binary_search(cios_devices, request.path)) + WARN_LOG_FMT(IOS, "Possible anti-piracy check for cIOS device {}", request.path); + else + ERROR_LOG_FMT(IOS, "Unknown device: {}", request.path); return IPCReply{IPC_ENOENT, 3700_tbticks}; }