aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan Stromberg <loganstromberg@gmail.com>2023-02-10 07:37:20 -0800
committerGitHub <noreply@github.com>2023-02-10 12:37:20 -0300
commit1dcd44b94fcba10e9f78f8352557d46ea84b80ab (patch)
tree7c2231183062005cd054131abc36126189179ecb
parent61b1ce252f11e8f8e31080faee60d0a9d99cb67f (diff)
Treat NpadIdType < 0 as invalid. Filter invalid SupportedPlayers inside IHidServer.SetSupportedNpadIdType(). (#4377)1.1.616
Co-authored-by: Logan Stromberg <lostromb@microsoft.com>
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs4
2 files changed, 5 insertions, 3 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs b/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs
index 65a69bb7..b98f6065 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/HidServer/HidUtils.cs
@@ -38,7 +38,9 @@ namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
public static bool IsValidNpadIdType(NpadIdType npadIdType)
{
- return npadIdType <= NpadIdType.Player8 || npadIdType == NpadIdType.Handheld || npadIdType == NpadIdType.Unknown;
+ return (npadIdType >= NpadIdType.Player1 && npadIdType <= NpadIdType.Player8) ||
+ npadIdType == NpadIdType.Handheld ||
+ npadIdType == NpadIdType.Unknown;
}
}
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
index d347a3bd..266fc04f 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
@@ -722,7 +722,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
for (int i = 0; i < supportedPlayerIds.Length; ++i)
{
- if (supportedPlayerIds[i] >= 0)
+ if (HidUtils.IsValidNpadIdType(supportedPlayerIds[i]))
{
context.Device.Hid.Npads.SetSupportedPlayer(HidUtils.GetIndexFromNpadIdType(supportedPlayerIds[i]));
}
@@ -1101,7 +1101,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
if (deviceType < NpadStyleIndex.System || deviceType >= NpadStyleIndex.FullKey)
{
- if (npadIdType >= (NpadIdType.Player8 + 1) && npadIdType != NpadIdType.Handheld && npadIdType != NpadIdType.Unknown)
+ if (!HidUtils.IsValidNpadIdType(npadIdType))
{
return ResultCode.InvalidNpadIdType;
}