aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/Utilities
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/Utilities')
-rw-r--r--Ryujinx.HLE/Utilities/StringUtils.cs23
1 files changed, 23 insertions, 0 deletions
diff --git a/Ryujinx.HLE/Utilities/StringUtils.cs b/Ryujinx.HLE/Utilities/StringUtils.cs
index e6602f48..055b8339 100644
--- a/Ryujinx.HLE/Utilities/StringUtils.cs
+++ b/Ryujinx.HLE/Utilities/StringUtils.cs
@@ -72,5 +72,28 @@ namespace Ryujinx.HLE.Utilities
return Encoding.UTF8.GetString(ms.ToArray());
}
}
+
+ public static string ReadUtf8StringSend(ServiceCtx context, int index = 0)
+ {
+ long position = context.Request.SendBuff[index].Position;
+ long size = context.Request.SendBuff[index].Size;
+
+ using (MemoryStream ms = new MemoryStream())
+ {
+ while (size-- > 0)
+ {
+ byte value = context.Memory.ReadByte(position++);
+
+ if (value == 0)
+ {
+ break;
+ }
+
+ ms.WriteByte(value);
+ }
+
+ return Encoding.UTF8.GetString(ms.ToArray());
+ }
+ }
}
}