aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Applets/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Applets/Controller')
-rw-r--r--Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs3
-rw-r--r--Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgHeader.cs2
-rw-r--r--Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgV7.cs18
-rw-r--r--Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgVPre7.cs18
-rw-r--r--Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportResultInfo.cs7
5 files changed, 34 insertions, 14 deletions
diff --git a/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs b/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
index 0597cf9b..1e8e26df 100644
--- a/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
+++ b/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
@@ -24,8 +24,7 @@ namespace Ryujinx.HLE.HOS.Applets
_system = system;
}
- unsafe public ResultCode Start(AppletSession normalSession,
- AppletSession interactiveSession)
+ public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
diff --git a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgHeader.cs b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgHeader.cs
index 8eaf1d44..141994a8 100644
--- a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgHeader.cs
+++ b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgHeader.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
{
#pragma warning disable CS0649
- [StructLayout(LayoutKind.Sequential, Pack=1)]
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ControllerSupportArgHeader
{
public sbyte PlayerCountMin;
diff --git a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgV7.cs b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgV7.cs
index a01e7c04..efb95ea5 100644
--- a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgV7.cs
+++ b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgV7.cs
@@ -1,16 +1,26 @@
+using Ryujinx.Common.Memory;
+using System;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
{
#pragma warning disable CS0649
// (8.0.0+ version)
- [StructLayout(LayoutKind.Sequential, Pack=1)]
- unsafe struct ControllerSupportArgV7
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct ControllerSupportArgV7
{
public ControllerSupportArgHeader Header;
- public fixed uint IdentificationColor[8];
+ public Array8<uint> IdentificationColor;
public byte EnableExplainText;
- public fixed byte ExplainText[8 * 0x81];
+ public ExplainTextStruct ExplainText;
+
+ [StructLayout(LayoutKind.Sequential, Size = 8 * 0x81)]
+ public struct ExplainTextStruct
+ {
+ private byte element;
+
+ public Span<byte> ToSpan() => MemoryMarshal.CreateSpan(ref element, 8 * 0x81);
+ }
}
#pragma warning restore CS0649
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgVPre7.cs b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgVPre7.cs
index 6d46aea5..ec977009 100644
--- a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgVPre7.cs
+++ b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportArgVPre7.cs
@@ -1,16 +1,26 @@
+using Ryujinx.Common.Memory;
+using System;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
{
#pragma warning disable CS0649
// (1.0.0+ version)
- [StructLayout(LayoutKind.Sequential, Pack=1)]
- unsafe struct ControllerSupportArgVPre7
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct ControllerSupportArgVPre7
{
public ControllerSupportArgHeader Header;
- public fixed uint IdentificationColor[4];
+ public Array4<uint> IdentificationColor;
public byte EnableExplainText;
- public fixed byte ExplainText[4 * 0x81];
+ public ExplainTextStruct ExplainText;
+
+ [StructLayout(LayoutKind.Sequential, Size = 4 * 0x81)]
+ public struct ExplainTextStruct
+ {
+ private byte element;
+
+ public Span<byte> ToSpan() => MemoryMarshal.CreateSpan(ref element, 4 * 0x81);
+ }
}
#pragma warning restore CS0649
} \ No newline at end of file
diff --git a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportResultInfo.cs b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportResultInfo.cs
index c213e592..689a54de 100644
--- a/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportResultInfo.cs
+++ b/Ryujinx.HLE/HOS/Applets/Controller/ControllerSupportResultInfo.cs
@@ -1,13 +1,14 @@
+using Ryujinx.Common.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
{
#pragma warning disable CS0649
- [StructLayout(LayoutKind.Sequential, Pack=1)]
- unsafe struct ControllerSupportResultInfo
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct ControllerSupportResultInfo
{
public sbyte PlayerCount;
- fixed byte _padding[3];
+ private Array3<byte> _padding;
public uint SelectedId;
public uint Result;
}