Address some comments
This commit is contained in:
parent
197d8d6f70
commit
7a2f5be1f3
2 changed files with 47 additions and 19 deletions
|
@ -1,6 +1,8 @@
|
||||||
using Ryujinx.Common;
|
using Ryujinx.Common;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.HLE.Utilities;
|
using Ryujinx.HLE.Utilities;
|
||||||
|
using System;
|
||||||
|
using System.Buffers.Binary;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
@ -59,7 +61,7 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gameRoom == "")
|
if (gameRoom == string.Empty)
|
||||||
{
|
{
|
||||||
return ResultCode.InvalidState;
|
return ResultCode.InvalidState;
|
||||||
}
|
}
|
||||||
|
@ -83,7 +85,8 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
sb.AppendLine("\nPlayReport log:");
|
sb.AppendLine();
|
||||||
|
sb.AppendLine("PlayReport log:");
|
||||||
|
|
||||||
if (!userId.IsNull)
|
if (!userId.IsNull)
|
||||||
{
|
{
|
||||||
|
@ -104,11 +107,11 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
|
|
||||||
while (stream.Position != stream.Length)
|
while (stream.Position != stream.Length)
|
||||||
{
|
{
|
||||||
byte flag = reader.ReadByte();
|
byte descriptor = reader.ReadByte();
|
||||||
|
|
||||||
if (!isValue)
|
if (!isValue)
|
||||||
{
|
{
|
||||||
byte[] key = reader.ReadBytes(flag - 0xA0);
|
byte[] key = reader.ReadBytes(descriptor - 0xA0);
|
||||||
|
|
||||||
fieldStr = $" Key: {Encoding.ASCII.GetString(key)}";
|
fieldStr = $" Key: {Encoding.ASCII.GetString(key)}";
|
||||||
|
|
||||||
|
@ -116,19 +119,19 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (flag > 0xD0) // Int value.
|
if (descriptor > 0xD0) // Int value.
|
||||||
{
|
{
|
||||||
if (flag - 0xD0 == 1)
|
if (descriptor - 0xD0 == 1)
|
||||||
{
|
{
|
||||||
fieldStr += $", Value: {EndianSwap.Swap16(reader.ReadUInt16())}";
|
fieldStr += $", Value: {BinaryPrimitives.ReverseEndianness(reader.ReadUInt16())}";
|
||||||
}
|
}
|
||||||
else if (flag - 0xD0 == 2)
|
else if (descriptor - 0xD0 == 2)
|
||||||
{
|
{
|
||||||
fieldStr += $", Value: {EndianSwap.Swap32(reader.ReadInt32())}";
|
fieldStr += $", Value: {BinaryPrimitives.ReverseEndianness(reader.ReadInt32())}";
|
||||||
}
|
}
|
||||||
else if (flag - 0xD0 == 4)
|
else if (descriptor - 0xD0 == 4)
|
||||||
{
|
{
|
||||||
fieldStr += $", Value: {reader.ReadInt64()}";
|
fieldStr += $", Value: {BinaryPrimitives.ReverseEndianness(reader.ReadInt64())}";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -136,17 +139,42 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (flag > 0xA0 && flag < 0xD0) // String value, max size = 0x20 bytes ?
|
else if (descriptor > 0xA0 && descriptor < 0xD0) // String value, max size = 0x20 bytes ?
|
||||||
{
|
{
|
||||||
byte[] valueBuffer = reader.ReadBytes(flag - 0xA0);
|
int size = descriptor - 0xA0;
|
||||||
string value = Encoding.ASCII.GetString(valueBuffer);
|
string value = "";
|
||||||
|
byte[] rawValues = new byte[0];
|
||||||
|
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
byte chr = reader.ReadByte();
|
||||||
|
|
||||||
|
if (chr >= 0x20 && chr < 0x7f)
|
||||||
|
{
|
||||||
|
value += (char)chr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Array.Resize(ref rawValues, rawValues.Length + 1);
|
||||||
|
|
||||||
|
rawValues[rawValues.Length - 1] = chr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value != string.Empty)
|
||||||
|
{
|
||||||
|
fieldStr += $", Value: {value}";
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Find why there is no alpha-numeric value sometimes.
|
// TODO: Find why there is no alpha-numeric value sometimes.
|
||||||
fieldStr += $", Value: {Regex.Replace(value, "[^A-Za-z0-9 -~]", "")}";
|
if (rawValues.Length > 0)
|
||||||
|
{
|
||||||
|
fieldStr += $", RawValue: 0x{BitConverter.ToString(rawValues).Replace("-", "")}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else // Byte value.
|
else // Byte value.
|
||||||
{
|
{
|
||||||
fieldStr += $", Value: {flag}";
|
fieldStr += $", Value: {descriptor}";
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.AppendLine(fieldStr);
|
sb.AppendLine(fieldStr);
|
||||||
|
|
|
@ -7,9 +7,9 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
|
||||||
|
|
||||||
Success = 0,
|
Success = 0,
|
||||||
|
|
||||||
InvalidArgument = ( 1 << ErrorCodeShift) | ModuleId,
|
InvalidArgument = (1 << ErrorCodeShift) | ModuleId,
|
||||||
InvalidState = ( 5 << ErrorCodeShift) | ModuleId,
|
InvalidState = (5 << ErrorCodeShift) | ModuleId,
|
||||||
InvalidBufferSize = ( 9 << ErrorCodeShift) | ModuleId,
|
InvalidBufferSize = (9 << ErrorCodeShift) | ModuleId,
|
||||||
Unknown1 = (90 << ErrorCodeShift) | ModuleId
|
Unknown1 = (90 << ErrorCodeShift) | ModuleId
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue