aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx.Common/BitUtils.cs90
-rw-r--r--Ryujinx.Common/HexUtils.cs90
-rw-r--r--Ryujinx.Common/Logging/LogEventArgs.cs24
-rw-r--r--Ryujinx.Common/Logging/Logger.cs81
-rw-r--r--Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs163
-rw-r--r--Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs6
-rw-r--r--Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Acc/IProfile.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/IAudioController.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/ISelfController.cs28
-rw-r--r--Ryujinx.HLE/HOS/Services/Am/IWindowController.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Apm/ISession.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs6
-rw-r--r--Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs14
-rw-r--r--Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Bsd/IClient.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs26
-rw-r--r--Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs334
-rw-r--r--Ryujinx.HLE/HOS/Services/IpcService.cs3
-rw-r--r--Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Mm/IRequest.cs19
-rw-r--r--Ryujinx.HLE/HOS/Services/Nfp/IUser.cs14
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs6
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs14
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs2
-rw-r--r--Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs10
-rw-r--r--Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs11
-rw-r--r--Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs4
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs8
-rw-r--r--Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs4
-rw-r--r--Ryujinx/Ui/ConsoleLog.cs47
42 files changed, 661 insertions, 443 deletions
diff --git a/Ryujinx.Common/BitUtils.cs b/Ryujinx.Common/BitUtils.cs
index 5c858029..135b397d 100644
--- a/Ryujinx.Common/BitUtils.cs
+++ b/Ryujinx.Common/BitUtils.cs
@@ -2,103 +2,103 @@ namespace Ryujinx.Common
{
public static class BitUtils
{
- public static int AlignUp(int Value, int Size)
+ private static readonly byte[] ClzNibbleTbl = { 4, 3, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+ public static int AlignUp(int value, int size)
{
- return (Value + (Size - 1)) & -Size;
+ return (value + (size - 1)) & -size;
}
- public static ulong AlignUp(ulong Value, int Size)
+ public static ulong AlignUp(ulong value, int size)
{
- return (ulong)AlignUp((long)Value, Size);
+ return (ulong)AlignUp((long)value, size);
}
- public static long AlignUp(long Value, int Size)
+ public static long AlignUp(long value, int size)
{
- return (Value + (Size - 1)) & -(long)Size;
+ return (value + (size - 1)) & -(long)size;
}
- public static int AlignDown(int Value, int Size)
+ public static int AlignDown(int value, int size)
{
- return Value & -Size;
+ return value & -size;
}
- public static ulong AlignDown(ulong Value, int Size)
+ public static ulong AlignDown(ulong value, int size)
{
- return (ulong)AlignDown((long)Value, Size);
+ return (ulong)AlignDown((long)value, size);
}
- public static long AlignDown(long Value, int Size)
+ public static long AlignDown(long value, int size)
{
- return Value & -(long)Size;
+ return value & -(long)size;
}
- public static ulong DivRoundUp(ulong Value, uint Dividend)
+ public static ulong DivRoundUp(ulong value, uint dividend)
{
- return (Value + Dividend - 1) / Dividend;
+ return (value + dividend - 1) / dividend;
}
- public static long DivRoundUp(long Value, int Dividend)
+ public static long DivRoundUp(long value, int dividend)
{
- return (Value + Dividend - 1) / Dividend;
+ return (value + dividend - 1) / dividend;
}
- public static bool IsPowerOfTwo32(int Value)
+ public static bool IsPowerOfTwo32(int value)
{
- return Value != 0 && (Value & (Value - 1)) == 0;
+ return value != 0 && (value & (value - 1)) == 0;
}
- public static bool IsPowerOfTwo64(long Value)
+ public static bool IsPowerOfTwo64(long value)
{
- return Value != 0 && (Value & (Value - 1)) == 0;
+ return value != 0 && (value & (value - 1)) == 0;
}
- public static int CountLeadingZeros32(int Value)
+ public static int CountLeadingZeros32(int value)
{
- return (int)CountLeadingZeros((ulong)Value, 32);
+ return (int)CountLeadingZeros((ulong)value, 32);
}
- public static int CountLeadingZeros64(long Value)
+ public static int CountLeadingZeros64(long value)
{
- return (int)CountLeadingZeros((ulong)Value, 64);
+ return (int)CountLeadingZeros((ulong)value, 64);
}
- private static readonly byte[] ClzNibbleTbl = { 4, 3, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 };
-
- private static ulong CountLeadingZeros(ulong Value, int Size) // Size is 8, 16, 32 or 64 (SIMD&FP or Base Inst.).
+ private static ulong CountLeadingZeros(ulong value, int size)
{
- if (Value == 0ul)
+ if (value == 0ul)
{
- return (ulong)Size;
+ return (ulong)size;
}
- int NibbleIdx = Size;
- int PreCount, Count = 0;
+ int nibbleIdx = size;
+ int preCount, count = 0;
do
{
- NibbleIdx -= 4;
- PreCount = ClzNibbleTbl[(Value >> NibbleIdx) & 0b1111];
- Count += PreCount;
+ nibbleIdx -= 4;
+ preCount = ClzNibbleTbl[(value >> nibbleIdx) & 0b1111];
+ count += preCount;
}
- while (PreCount == 4);
+ while (preCount == 4);
- return (ulong)Count;
+ return (ulong)count;
}
- public static long ReverseBits64(long Value)
+ public static long ReverseBits64(long value)
{
- return (long)ReverseBits64((ulong)Value);
+ return (long)ReverseBits64((ulong)value);
}
- private static ulong ReverseBits64(ulong Value)
+ private static ulong ReverseBits64(ulong value)
{
- Value = ((Value & 0xaaaaaaaaaaaaaaaa) >> 1 ) | ((Value & 0x5555555555555555) << 1 );
- Value = ((Value & 0xcccccccccccccccc) >> 2 ) | ((Value & 0x3333333333333333) << 2 );
- Value = ((Value & 0xf0f0f0f0f0f0f0f0) >> 4 ) | ((Value & 0x0f0f0f0f0f0f0f0f) << 4 );
- Value = ((Value & 0xff00ff00ff00ff00) >> 8 ) | ((Value & 0x00ff00ff00ff00ff) << 8 );
- Value = ((Value & 0xffff0000ffff0000) >> 16) | ((Value & 0x0000ffff0000ffff) << 16);
+ value = ((value & 0xaaaaaaaaaaaaaaaa) >> 1 ) | ((value & 0x5555555555555555) << 1 );
+ value = ((value & 0xcccccccccccccccc) >> 2 ) | ((value & 0x3333333333333333) << 2 );
+ value = ((value & 0xf0f0f0f0f0f0f0f0) >> 4 ) | ((value & 0x0f0f0f0f0f0f0f0f) << 4 );
+ value = ((value & 0xff00ff00ff00ff00) >> 8 ) | ((value & 0x00ff00ff00ff00ff) << 8 );
+ value = ((value & 0xffff0000ffff0000) >> 16) | ((value & 0x0000ffff0000ffff) << 16);
- return (Value >> 32) | (Value << 32);
+ return (value >> 32) | (value << 32);
}
}
} \ No newline at end of file
diff --git a/Ryujinx.Common/HexUtils.cs b/Ryujinx.Common/HexUtils.cs
new file mode 100644
index 00000000..63587cea
--- /dev/null
+++ b/Ryujinx.Common/HexUtils.cs
@@ -0,0 +1,90 @@
+using System;
+using System.Text;
+
+namespace Ryujinx.Common
+{
+ public static class HexUtils
+ {
+ private static readonly char[] HexChars = "0123456789ABCDEF".ToCharArray();
+
+ private const int HexTableColumnWidth = 8;
+ private const int HexTableColumnSpace = 3;
+
+ // Modified for Ryujinx
+ // Original by Pascal Ganaye - CPOL License
+ // https://www.codeproject.com/Articles/36747/Quick-and-Dirty-HexDump-of-a-Byte-Array
+ public static string HexTable(byte[] bytes, int bytesPerLine = 16)
+ {
+ if (bytes == null)
+ {
+ return "<null>";
+ }
+
+ int bytesLength = bytes.Length;
+
+ int firstHexColumn =
+ HexTableColumnWidth
+ + HexTableColumnSpace;
+
+ int firstCharColumn = firstHexColumn
+ + bytesPerLine * HexTableColumnSpace
+ + (bytesPerLine - 1) / HexTableColumnWidth
+ + 2;
+
+ int lineLength = firstCharColumn
+ + bytesPerLine
+ + Environment.NewLine.Length;
+
+ char[] line = (new String(' ', lineLength - Environment.NewLine.Length) + Environment.NewLine).ToCharArray();
+
+ int expectedLines = (bytesLength + bytesPerLine - 1) / bytesPerLine;
+
+ StringBuilder result = new StringBuilder(expectedLines * lineLength);
+
+ for (int i = 0; i < bytesLength; i += bytesPerLine)
+ {
+ line[0] = HexChars[(i >> 28) & 0xF];
+ line[1] = HexChars[(i >> 24) & 0xF];
+ line[2] = HexChars[(i >> 20) & 0xF];
+ line[3] = HexChars[(i >> 16) & 0xF];
+ line[4] = HexChars[(i >> 12) & 0xF];
+ line[5] = HexChars[(i >> 8) & 0xF];
+ line[6] = HexChars[(i >> 4) & 0xF];
+ line[7] = HexChars[(i >> 0) & 0xF];
+
+ int hexColumn = firstHexColumn;
+ int charColumn = firstCharColumn;
+
+ for (int j = 0; j < bytesPerLine; j++)
+ {
+ if (j > 0 && (j & 7) == 0)
+ {
+ hexColumn++;
+ }
+
+ if (i + j >= bytesLength)
+ {
+ line[hexColumn] = ' ';
+ line[hexColumn + 1] = ' ';
+ line[charColumn] = ' ';
+ }
+ else
+ {
+ byte b = bytes[i + j];
+
+ line[hexColumn] = HexChars[(b >> 4) & 0xF];
+ line[hexColumn + 1] = HexChars[b & 0xF];
+ line[charColumn] = (b < 32 ? '·' : (char)b);
+ }
+
+ hexColumn += 3;
+ charColumn++;
+ }
+
+ result.Append(line);
+ }
+
+ return result.ToString();
+ }
+ }
+}
diff --git a/Ryujinx.Common/Logging/LogEventArgs.cs b/Ryujinx.Common/Logging/LogEventArgs.cs
index 7a479b71..363a45b9 100644
--- a/Ryujinx.Common/Logging/LogEventArgs.cs
+++ b/Ryujinx.Common/Logging/LogEventArgs.cs
@@ -4,16 +4,28 @@ namespace Ryujinx.Common.Logging
{
public class LogEventArgs : EventArgs
{
- public LogLevel Level { get; private set; }
- public TimeSpan Time { get; private set; }
+ public LogLevel Level { get; private set; }
+ public TimeSpan Time { get; private set; }
+ public int ThreadId { get; private set; }
public string Message { get; private set; }
+ public object Data { get; private set; }
- public LogEventArgs(LogLevel Level, TimeSpan Time, string Message)
+ public LogEventArgs(LogLevel level, TimeSpan time, int threadId, string message)
{
- this.Level = Level;
- this.Time = Time;
- this.Message = Message;
+ this.Level = level;
+ this.Time = time;
+ this.ThreadId = threadId;
+ this.Message = message;
+ }
+
+ public LogEventArgs(LogLevel level, TimeSpan time, int threadId, string message, object data)
+ {
+ this.Level = level;
+ this.Time = time;
+ this.ThreadId = threadId;
+ this.Message = message;
+ this.Data = data;
}
}
} \ No newline at end of file
diff --git a/Ryujinx.Common/Logging/Logger.cs b/Ryujinx.Common/Logging/Logger.cs
index 6422f113..5e58f806 100644
--- a/Ryujinx.Common/Logging/Logger.cs
+++ b/Ryujinx.Common/Logging/Logger.cs
@@ -1,78 +1,97 @@
using System;
using System.Diagnostics;
+using System.Reflection;
using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading;
namespace Ryujinx.Common.Logging
{
public static class Logger
{
- private static bool[] EnabledLevels;
- private static bool[] EnabledClasses;
+ private static Stopwatch m_Time;
- public static event EventHandler<LogEventArgs> Updated;
+ private static readonly bool[] m_EnabledLevels;
+ private static readonly bool[] m_EnabledClasses;
- private static Stopwatch Time;
+ public static event EventHandler<LogEventArgs> Updated;
static Logger()
{
- EnabledLevels = new bool[Enum.GetNames(typeof(LogLevel)).Length];
- EnabledClasses = new bool[Enum.GetNames(typeof(LogClass)).Length];
+ m_EnabledLevels = new bool[Enum.GetNames(typeof(LogLevel)).Length];
+ m_EnabledClasses = new bool[Enum.GetNames(typeof(LogClass)).Length];
- EnabledLevels[(int)LogLevel.Stub] = true;
- EnabledLevels[(int)LogLevel.Info] = true;
- EnabledLevels[(int)LogLevel.Warning] = true;
- EnabledLevels[(int)LogLevel.Error] = true;
+ m_EnabledLevels[(int)LogLevel.Stub] = true;
+ m_EnabledLevels[(int)LogLevel.Info] = true;
+ m_EnabledLevels[(int)LogLevel.Warning] = true;
+ m_EnabledLevels[(int)LogLevel.Error] = true;
- for (int Index = 0; Index < EnabledClasses.Length; Index++)
+ for (int index = 0; index < m_EnabledClasses.Length; index++)
{
- EnabledClasses[Index] = true;
+ m_EnabledClasses[index] = true;
}
- Time = new Stopwatch();
+ m_Time = Stopwatch.StartNew();
+ }
+
+ public static void SetEnable(LogLevel logLevel, bool enabled)
+ {
+ m_EnabledLevels[(int)logLevel] = enabled;
+ }
+
+ public static void SetEnable(LogClass logClass, bool enabled)
+ {
+ m_EnabledClasses[(int)logClass] = enabled;
+ }
- Time.Start();
+ public static void PrintDebug(LogClass logClass, string message, [CallerMemberName] string caller = "")
+ {
+ Print(LogLevel.Debug, logClass, GetFormattedMessage(logClass, message, caller));
}
- public static void SetEnable(LogLevel Level, bool Enabled)
+ public static void PrintInfo(LogClass logClass, string message, [CallerMemberName] string Caller = "")
{
- EnabledLevels[(int)Level] = Enabled;
+ Print(LogLevel.Info, logClass, GetFormattedMessage(logClass, message, Caller));
}
- public static void SetEnable(LogClass Class, bool Enabled)
+ public static void PrintWarning(LogClass logClass, string message, [CallerMemberName] string Caller = "")
{
- EnabledClasses[(int)Class] = Enabled;
+ Print(LogLevel.Warning, logClass, GetFormattedMessage(logClass, message, Caller));
}
- public static void PrintDebug(LogClass Class, string Message, [CallerMemberName] string Caller = "")
+ public static void PrintError(LogClass logClass, string message, [CallerMemberName] string Caller = "")
{
- Print(LogLevel.Debug, Class, GetFormattedMessage(Class, Message, Caller));
+ Print(LogLevel.Error, logClass, GetFormattedMessage(logClass, message, Caller));
}
- public static void PrintStub(LogClass Class, string Message, [CallerMemberName] string Caller = "")
+ public static void PrintStub(LogClass logClass, string message = "", [CallerMemberName] string caller = "")
{
- Print(LogLevel.Stub, Class, GetFormattedMessage(Class, Message, Caller));
+ Print(LogLevel.Stub, logClass, GetFormattedMessage(logClass, "Stubbed. " + message, caller));
}
- public static void PrintInfo(LogClass Class, string Message, [CallerMemberName] string Caller = "")
+ public static void PrintStub<T>(LogClass logClass, T obj, [CallerMemberName] string caller = "")
{
- Print(LogLevel.Info, Class, GetFormattedMessage(Class, Message, Caller));
+ Print(LogLevel.Stub, logClass, GetFormattedMessage(logClass, "Stubbed.", caller), obj);
}
- public static void PrintWarning(LogClass Class, string Message, [CallerMemberName] string Caller = "")
+ public static void PrintStub<T>(LogClass logClass, string message, T obj, [CallerMemberName] string caller = "")
{
- Print(LogLevel.Warning, Class, GetFormattedMessage(Class, Message, Caller));
+ Print(LogLevel.Stub, logClass, GetFormattedMessage(logClass, "Stubbed. " + message, caller), obj);
}
- public static void PrintError(LogClass Class, string Message, [CallerMemberName] string Caller = "")
+ private static void Print(LogLevel logLevel, LogClass logClass, string message)
{
- Print(LogLevel.Error, Class, GetFormattedMessage(Class, Message, Caller));
+ if (m_EnabledLevels[(int)logLevel] && m_EnabledClasses[(int)logClass])
+ {
+ Updated?.Invoke(null, new LogEventArgs(logLevel, m_Time.Elapsed, Thread.CurrentThread.ManagedThreadId, message));
+ }
}
- private static void Print(LogLevel Level, LogClass Class, string Message)
+ private static void Print(LogLevel logLevel, LogClass logClass, string message, object data)
{
- if (EnabledLevels[(int)Level] && EnabledClasses[(int)Class])
+ if (m_EnabledLevels[(int)logLevel] && m_EnabledClasses[(int)logClass])
{
- Updated?.Invoke(null, new LogEventArgs(Level, Time.Elapsed, Message));
+ Updated?.Invoke(null, new LogEventArgs(logLevel, m_Time.Elapsed, Thread.CurrentThread.ManagedThreadId, message, data));
}
}
diff --git a/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs b/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs
new file mode 100644
index 00000000..18f41910
--- /dev/null
+++ b/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs
@@ -0,0 +1,163 @@
+using Ryujinx.Common;
+using Ryujinx.HLE.HOS;
+using Ryujinx.HLE.HOS.Ipc;
+using Ryujinx.HLE.HOS.Kernel.Ipc;
+using Ryujinx.HLE.HOS.Services;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.Serialization;
+using System.Text;
+
+namespace Ryujinx.HLE.Exceptions
+{
+ [Serializable]
+ internal class ServiceNotImplementedException : Exception
+ {
+ public KSession Session { get; }
+ public IpcMessage Request { get; }
+ public ServiceCtx Context { get; }
+
+ public ServiceNotImplementedException(ServiceCtx context)
+ : this(context, "The service call is not implemented.")
+ { }
+
+ public ServiceNotImplementedException(ServiceCtx context, string message)
+ : base(message)
+ {
+ Context = context;
+ Session = context.Session;
+ Request = context.Request;
+ }
+
+ public ServiceNotImplementedException(ServiceCtx context, string message, Exception inner)
+ : base(message, inner)
+ {
+ Context = context;
+ Session = context.Session;
+ Request = context.Request;
+ }
+
+ protected ServiceNotImplementedException(SerializationInfo info, StreamingContext context)
+ : base(info, context)
+ { }
+
+ public override string Message
+ {
+ get
+ {
+ return base.Message +
+ Environment.NewLine +
+ Environment.NewLine +
+ BuildMessage();
+ }
+ }
+
+ private string BuildMessage()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ // Print the IPC command details (service name, command ID, and handler)
+ (Type callingType, MethodBase callingMethod) = WalkStackTrace(new StackTrace(this));
+
+ if (callingType != null && callingMethod != null)
+ {
+ var ipcService = Context.Session.Service;
+ var ipcCommands = ipcService.Commands;
+
+ // Find the handler for the method called
+ var ipcHandler = ipcCommands.FirstOrDefault(x => x.Value.Method == callingMethod);
+ var ipcCommandId = ipcHandler.Key;
+ var ipcMethod = ipcHandler.Value;
+
+ if (ipcMethod != null)
+ {
+ sb.AppendLine($"Service Command: {Session.ServiceName} {ipcService.GetType().Name}: {ipcCommandId} ({ipcMethod.Method.Name})");
+ sb.AppendLine();
+ }
+ }
+
+ // Print buffer information
+ sb.AppendLine("Buffer Information");
+
+ if (Request.PtrBuff.Count > 0)
+ {
+ sb.AppendLine("\tPtrBuff:");
+
+ foreach (var buff in Request.PtrBuff)
+ {
+ sb.AppendLine($"\t[{buff.Index}] Position: 0x{buff.Position:x16} Size: 0x{buff.Size:x16}");
+ }
+ }
+
+ if (Request.SendBuff.Count > 0)
+ {
+ sb.AppendLine("\tSendBuff:");
+
+ foreach (var buff in Request.SendBuff)
+ {
+ sb.AppendLine($"\tPosition: 0x{buff.Position:x16} Size: 0x{buff.Size:x16} Flags: {buff.Flags}");
+ }
+ }
+
+ if (Request.ReceiveBuff.Count > 0)
+ {
+ sb.AppendLine("\tReceiveBuff:");
+
+ foreach (var buff in Request.ReceiveBuff)
+ {
+ sb.AppendLine($"\tPosition: 0x{buff.Position:x16} Size: 0x{buff.Size:x16} Flags: {buff.Flags}");
+ }
+ }
+
+ if (Request.ExchangeBuff.Count > 0)
+ {
+ sb.AppendLine("\tExchangeBuff:");
+
+ foreach (var buff in Request.ExchangeBuff)
+ {
+ sb.AppendLine($"\tPosition: 0x{buff.Position:x16} Size: 0x{buff.Size:x16} Flags: {buff.Flags}");
+ }
+ }
+
+ if (Request.RecvListBuff.Count > 0)
+ {
+ sb.AppendLine("\tRecvListBuff:");
+
+ foreach (var buff in Request.RecvListBuff)
+ {
+ sb.AppendLine($"\tPosition: 0x{buff.Position:x16} Size: 0x{buff.Size:x16}");
+ }
+ }
+
+ sb.AppendLine();
+
+ sb.AppendLine("Raw Request Data:");
+ sb.Append(HexUtils.HexTable(Request.RawData));
+
+ return sb.ToString();
+ }
+
+ private (Type, MethodBase) WalkStackTrace(StackTrace trace)
+ {
+ int i = 0;
+
+ StackFrame frame;
+ // Find the IIpcService method that threw this exception
+ while ((frame = trace.GetFrame(i++)) != null)
+ {
+ var method = frame.GetMethod();
+ var declType = method.DeclaringType;
+
+ if (typeof(IIpcService).IsAssignableFrom(declType))
+ {
+ return (declType, method);
+ }
+ }
+
+ return (null, null);
+ }
+ }
+}
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs b/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs
index 7ff25c4b..f6c3cef9 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs
+++ b/Ryujinx.HLE/HOS/Services/Acc/IAccountService.cs
@@ -118,7 +118,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
{
long unknown = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceAcc, $"Stubbed. Unknown: {unknown}");
+ Logger.PrintStub(LogClass.ServiceAcc, new { unknown });
context.ResponseData.Write(false);
@@ -130,7 +130,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
{
bool unknown = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServiceAcc, $"Stubbed. Unknown: {unknown}");
+ Logger.PrintStub(LogClass.ServiceAcc, new { unknown });
UserProfile profile = context.Device.System.State.LastOpenUser;
@@ -144,7 +144,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
{
long unknown = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceAcc, $"Stubbed. Unknown: {unknown}");
+ Logger.PrintStub(LogClass.ServiceAcc, new { unknown });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs b/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs
index 93b4b4a1..ba31bf4a 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs
+++ b/Ryujinx.HLE/HOS/Services/Acc/IManagerForApplication.cs
@@ -27,7 +27,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
// CheckAvailability()
public long CheckAvailability(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAcc, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAcc);
return 0;
}
@@ -37,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
{
long networkServiceAccountId = 0xcafe;
- Logger.PrintStub(LogClass.ServiceAcc, $"Stubbed. NetworkServiceAccountId: {networkServiceAccountId}");
+ Logger.PrintStub(LogClass.ServiceAcc, new { networkServiceAccountId });
context.ResponseData.Write(networkServiceAccountId);
diff --git a/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs b/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs
index c50e9540..18ac53bd 100644
--- a/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs
+++ b/Ryujinx.HLE/HOS/Services/Acc/IProfile.cs
@@ -37,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.Acc
public long Get(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAcc, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAcc);
long position = context.Request.ReceiveBuff[0].Position;
diff --git a/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs
index fbc5dee5..41bfb1c8 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/IApplicationFunctions.cs
@@ -39,7 +39,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
long uIdLow = context.RequestData.ReadInt64();
long uIdHigh = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
context.ResponseData.Write(0L);
@@ -90,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long GetPseudoDeviceId(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
context.ResponseData.Write(0L);
context.ResponseData.Write(0L);
@@ -100,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long InitializeGamePlayRecording(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -109,7 +109,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
int state = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs b/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs
index a03a3266..5bb21225 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/IAudioController.cs
@@ -27,7 +27,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
float appletVolume = context.RequestData.ReadSingle();
float libraryAppletVolume = context.RequestData.ReadSingle();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -36,7 +36,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
context.ResponseData.Write(1f);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -45,7 +45,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
context.ResponseData.Write(1f);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -55,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
float unknown0 = context.RequestData.ReadSingle();
long unknown1 = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
float unknown0 = context.RequestData.ReadSingle();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs b/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs
index f143db2c..7cd34018 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/ICommonStateGetter.cs
@@ -86,7 +86,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
context.ResponseData.Write((byte)0); //Unknown value.
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -115,7 +115,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs b/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs
index fdcd923d..e61fccb2 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/IHomeMenuFunctions.cs
@@ -29,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long RequestToGetForeground(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -43,7 +43,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs b/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs
index faf522e4..7aead9f6 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/ILibraryAppletAccessor.cs
@@ -40,28 +40,28 @@ namespace Ryujinx.HLE.HOS.Services.Am
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
public long Start(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
public long GetResult(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
public long PushInData(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
index e30e8d0d..7d900d2e 100644
--- a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs
@@ -42,21 +42,21 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long Exit(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
public long LockExit(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
public long UnlockExit(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -72,7 +72,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -81,7 +81,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -90,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -99,7 +99,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -110,7 +110,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
bool flag2 = context.RequestData.ReadByte() != 0;
bool flag3 = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -119,7 +119,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -128,7 +128,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -137,7 +137,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
int orientation = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -146,7 +146,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
bool enable = context.RequestData.ReadByte() != 0;
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
@@ -156,7 +156,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
_idleTimeDetectionExtension = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceAm, $"Stubbed. IdleTimeDetectionExtension: {_idleTimeDetectionExtension}");
+ Logger.PrintStub(LogClass.ServiceAm, new { _idleTimeDetectionExtension });
return 0;
}
@@ -166,7 +166,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
{
context.ResponseData.Write(_idleTimeDetectionExtension);
- Logger.PrintStub(LogClass.ServiceAm, $"Stubbed. IdleTimeDetectionExtension: {_idleTimeDetectionExtension}");
+ Logger.PrintStub(LogClass.ServiceAm, new { _idleTimeDetectionExtension });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs b/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs
index aca7a666..94a53480 100644
--- a/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs
+++ b/Ryujinx.HLE/HOS/Services/Am/IWindowController.cs
@@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long GetAppletResourceUserId(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
context.ResponseData.Write(0L);
@@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Am
public long AcquireForegroundRights(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Apm/ISession.cs b/Ryujinx.HLE/HOS/Services/Apm/ISession.cs
index cef34383..faf557a0 100644
--- a/Ryujinx.HLE/HOS/Services/Apm/ISession.cs
+++ b/Ryujinx.HLE/HOS/Services/Apm/ISession.cs
@@ -33,7 +33,7 @@ namespace Ryujinx.HLE.HOS.Services.Apm
context.ResponseData.Write((uint)PerformanceConfiguration.PerformanceConfiguration1);
- Logger.PrintStub(LogClass.ServiceApm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceApm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
index bc069436..72839c2b 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
+++ b/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
@@ -110,7 +110,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
{
context.ResponseData.Write((int)_playState);
- Logger.PrintStub(LogClass.ServiceAudio, $"Stubbed. Renderer State: {Enum.GetName(typeof(PlayState), _playState)}");
+ Logger.PrintStub(LogClass.ServiceAudio, new { State = Enum.GetName(typeof(PlayState), _playState) });
return 0;
}
@@ -249,7 +249,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
public long StartAudioRenderer(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
_playState = PlayState.Playing;
@@ -258,7 +258,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
public long StopAudioRenderer(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
_playState = PlayState.Stopped;
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs b/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs
index 0d68fe13..4be183fa 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs
+++ b/Ryujinx.HLE/HOS/Services/Aud/IAudioDevice.cs
@@ -81,7 +81,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
string deviceName = Encoding.ASCII.GetString(deviceNameBuffer);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -116,7 +116,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -125,7 +125,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
{
context.ResponseData.Write(2);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -169,7 +169,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
string deviceName = Encoding.UTF8.GetString(deviceNameBuffer);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -178,7 +178,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
{
context.ResponseData.Write(1f);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -212,7 +212,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
@@ -226,7 +226,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceAudio);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs b/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs
index a319537a..fb1409f4 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Aud/IAudioRendererManager.cs
@@ -178,8 +178,7 @@ namespace Ryujinx.HLE.HOS.Services.Aud
long appletResourceUserId = context.RequestData.ReadInt64();
int revisionInfo = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceAudio, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"RevisionInfo: {revisionInfo}");
+ Logger.PrintStub(LogClass.ServiceAudio, new { appletResourceUserId, revisionInfo });
return GetAudioDeviceService(context);
}
diff --git a/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs b/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs
index aac85021..86d914d4 100644
--- a/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs
+++ b/Ryujinx.HLE/HOS/Services/Bsd/IClient.cs
@@ -277,7 +277,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
// bsd_error
context.ResponseData.Write(0);
- Logger.PrintStub(LogClass.ServiceBsd, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceBsd);
return 0;
}
@@ -287,7 +287,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
{
ulong unknown0 = context.RequestData.ReadUInt64();
- Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceBsd, new { unknown0 });
return 0;
}
@@ -316,8 +316,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
- Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed. Path: {path} - " +
- $"Flags: {flags}");
+ Logger.PrintStub(LogClass.ServiceBsd, new { path, flags });
return 0;
}
@@ -327,7 +326,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
{
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
- Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
+ Logger.PrintStub(LogClass.ServiceBsd);
return 0;
}
@@ -462,7 +461,7 @@ namespace Ryujinx.HLE.HOS.Services.Bsd
{
WriteBsdResult(context, -1, LinuxError.EOPNOTSUPP);
- Logger.PrintStub(LogClass.ServiceBsd, $"Stubbed.");
+ Logger.PrintStub(LogClass.ServiceBsd);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs
index 98348125..54d85ea5 100644
--- a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs
+++ b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs
@@ -46,15 +46,17 @@ namespace Ryujinx.HLE.HOS.Services.Friend
// There are no friends online, so we return 0 because the nn::account::NetworkServiceAccountId array is empty.
context.ResponseData.Write(0);
- Logger.PrintStub(LogClass.ServiceFriend, $"Stubbed. UserId: {uuid.ToString()} - " +
- $"Unknown0: {unknown0} - " +
- $"PresenceStatus: {filter.PresenceStatus} - " +
- $"IsFavoriteOnly: {filter.IsFavoriteOnly} - " +
- $"IsSameAppPresenceOnly: {filter.IsSameAppPresenceOnly} - " +
- $"IsSameAppPlayedOnly: {filter.IsSameAppPlayedOnly} - " +
- $"IsArbitraryAppPlayedOnly: {filter.IsArbitraryAppPlayedOnly} - " +
- $"PresenceGroupId: {filter.PresenceGroupId} - " +
- $"Unknown1: {unknown1}");
+ Logger.PrintStub(LogClass.ServiceFriend, new {
+ UserId = uuid.ToString(),
+ unknown0,
+ filter.PresenceStatus,
+ filter.IsFavoriteOnly,
+ filter.IsSameAppPresenceOnly,
+ filter.IsSameAppPlayedOnly,
+ filter.IsArbitraryAppPlayedOnly,
+ filter.PresenceGroupId,
+ unknown1
+ });
return 0;
}
@@ -71,8 +73,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend
profile.OnlinePlayState = OpenCloseState.Closed;
}
- Logger.PrintStub(LogClass.ServiceFriend, $"Stubbed. Uuid: {uuid.ToString()} - " +
- $"OnlinePlayState: {profile.OnlinePlayState}");
+ Logger.PrintStub(LogClass.ServiceFriend, new { UserId = uuid.ToString(), profile.OnlinePlayState });
return 0;
}
@@ -91,8 +92,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend
//Todo: Write the buffer content.
- Logger.PrintStub(LogClass.ServiceFriend, $"Stubbed. Uuid: {uuid.ToString()} - " +
- $"Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceFriend, new { UserId = uuid.ToString(), unknown0 });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
index cc75e99b..e5b56a60 100644
--- a/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Hid/IHidServer.cs
@@ -182,7 +182,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -192,7 +192,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -202,7 +202,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -212,7 +212,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -229,7 +229,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_xpadIdEventHandle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. XpadId: {xpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { xpadId });
return 0;
}
@@ -241,7 +241,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Process.HandleTable.CloseHandle(_xpadIdEventHandle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. XpadId: {xpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { xpadId });
return 0;
}
@@ -252,8 +252,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int basicXpadId = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"BasicXpadId: {basicXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, basicXpadId });
return 0;
}
@@ -264,7 +263,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
// There is any Xpad, so we return 0 and write nothing inside the type-0xa buffer.
context.ResponseData.Write(0L);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed.");
+ Logger.PrintStub(LogClass.ServiceHid);
return 0;
}
@@ -274,7 +273,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int joyXpadId = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. JoyXpadId: {joyXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { joyXpadId });
return 0;
}
@@ -288,7 +287,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. JoyXpadId: {joyXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { joyXpadId });
return 0;
}
@@ -299,7 +298,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
// There is any JoyXpad, so we return 0 and write nothing inside the type-0xa buffer.
context.ResponseData.Write(0L);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed.");
+ Logger.PrintStub(LogClass.ServiceHid);
return 0;
}
@@ -309,7 +308,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int basicXpadId = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. BasicXpadId: {basicXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { basicXpadId });
return 0;
}
@@ -319,7 +318,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int basicXpadId = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. BasicXpadId: {basicXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { basicXpadId });
return 0;
}
@@ -333,7 +332,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. BasicXpadId: {basicXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { basicXpadId });
return 0;
}
@@ -343,7 +342,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int joyXpadId = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. JoyXpadId: {joyXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { joyXpadId });
return 0;
}
@@ -353,7 +352,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int joyXpadId = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. JoyXpadId: {joyXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { joyXpadId });
return 0;
}
@@ -367,7 +366,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. JoyXpadId: {joyXpadId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { joyXpadId });
return 0;
}
@@ -378,8 +377,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int sixAxisSensorHandle = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle });
return 0;
}
@@ -390,8 +388,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int sixAxisSensorHandle = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle });
return 0;
}
@@ -404,9 +401,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_sixAxisSensorFusionEnabled);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"SixAxisSensorFusionEnabled: {_sixAxisSensorFusionEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _sixAxisSensorFusionEnabled });
return 0;
}
@@ -418,9 +413,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int sixAxisSensorHandle = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"SixAxisSensorFusionEnabled: {_sixAxisSensorFusionEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _sixAxisSensorFusionEnabled });
return 0;
}
@@ -438,10 +431,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"RevisePower: {_sensorFusionParams.RevisePower} - " +
- $"ReviseRange: {_sensorFusionParams.ReviseRange}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _sensorFusionParams.RevisePower, _sensorFusionParams.ReviseRange });
return 0;
}
@@ -455,10 +445,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_sensorFusionParams.RevisePower);
context.ResponseData.Write(_sensorFusionParams.ReviseRange);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"RevisePower: {_sensorFusionParams.RevisePower} - " +
- $"ReviseRange: {_sensorFusionParams.ReviseRange}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _sensorFusionParams.RevisePower, _sensorFusionParams.ReviseRange });
return 0;
}
@@ -472,10 +459,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_sensorFusionParams.RevisePower = 0;
_sensorFusionParams.ReviseRange = 0;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"RevisePower: {_sensorFusionParams.RevisePower} - " +
- $"ReviseRange: {_sensorFusionParams.ReviseRange}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _sensorFusionParams.RevisePower, _sensorFusionParams.ReviseRange });
return 0;
}
@@ -493,10 +477,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"X: {_accelerometerParams.X} - " +
- $"Y: {_accelerometerParams.Y}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerParams.X, _accelerometerParams.Y });
return 0;
}
@@ -510,10 +491,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_accelerometerParams.X);
context.ResponseData.Write(_accelerometerParams.Y);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"X: {_accelerometerParams.X} - " +
- $"Y: {_accelerometerParams.Y}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerParams.X, _accelerometerParams.Y });
return 0;
}
@@ -527,10 +505,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_accelerometerParams.X = 0;
_accelerometerParams.Y = 0;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"X: {_accelerometerParams.X} - " +
- $"Y: {_accelerometerParams.Y}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerParams.X, _accelerometerParams.Y });
return 0;
}
@@ -542,9 +517,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_accelerometerPlayMode = context.RequestData.ReadUInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"PlayMode: {_accelerometerPlayMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerPlayMode });
return 0;
}
@@ -557,9 +530,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_accelerometerPlayMode);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"PlayMode: {_accelerometerPlayMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerPlayMode });
return 0;
}
@@ -572,9 +543,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_accelerometerPlayMode = 0;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"PlayMode: {_accelerometerPlayMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _accelerometerPlayMode });
return 0;
}
@@ -586,9 +555,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_gyroscopeZeroDriftMode = (HidGyroscopeZeroDriftMode)context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"GyroscopeZeroDriftMode: {_gyroscopeZeroDriftMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _gyroscopeZeroDriftMode });
return 0;
}
@@ -601,9 +568,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((int)_gyroscopeZeroDriftMode);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"GyroscopeZeroDriftMode: {_gyroscopeZeroDriftMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _gyroscopeZeroDriftMode });
return 0;
}
@@ -616,9 +581,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_gyroscopeZeroDriftMode = HidGyroscopeZeroDriftMode.Standard;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"GyroscopeZeroDriftMode: {_gyroscopeZeroDriftMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, _gyroscopeZeroDriftMode });
return 0;
}
@@ -633,9 +596,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(isAtRest);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SixAxisSensorHandle: {sixAxisSensorHandle} - " +
- $"IsAtRest: {isAtRest}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, sixAxisSensorHandle, isAtRest });
return 0;
}
@@ -646,8 +607,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
int unknown0 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, unknown0 });
return 0;
}
@@ -660,8 +620,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadStyleSet: {_npadStyleSet}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadStyleSet });
_npadStyleSetUpdateEvent.ReadableEvent.Signal();
@@ -675,8 +634,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((int)_npadStyleSet);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadStyleSet: {_npadStyleSet}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadStyleSet });
return 0;
}
@@ -687,8 +645,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
HidControllerId npadIdType = (HidControllerId)context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadIdType: {npadIdType}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, npadIdType });
return 0;
}
@@ -698,7 +655,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -708,7 +665,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -727,9 +684,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadId: {npadId} - " +
- $"NpadStyleSet: {npadStyleSet}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, npadId, npadStyleSet });
return 0;
}
@@ -740,8 +695,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
int npadIdType = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadIdType: {npadIdType}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, npadIdType });
return 0;
}
@@ -755,7 +709,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(ledPattern);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. NpadId: {npadId} - Pattern: {ledPattern}");
+ Logger.PrintStub(LogClass.ServiceHid, new { npadId, ledPattern });
return 0;
}
@@ -766,7 +720,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
int unknown = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - Unknown: {unknown}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, unknown });
return 0;
}
@@ -777,8 +731,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
_npadJoyHoldType = (HidNpadJoyHoldType)context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadJoyHoldType: {_npadJoyHoldType}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadJoyHoldType });
return 0;
}
@@ -790,8 +743,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((long)_npadJoyHoldType);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadJoyHoldTypeValue: {_npadJoyHoldType}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadJoyHoldType });
return 0;
}
@@ -804,9 +756,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_npadJoyAssignmentMode = HidNpadJoyAssignmentMode.Single;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"HidControllerId: {hidControllerId} - " +
- $"NpadJoyAssignmentModeValue: {_npadJoyAssignmentMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, hidControllerId, _npadJoyAssignmentMode });
return 0;
}
@@ -820,10 +770,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_npadJoyAssignmentMode = HidNpadJoyAssignmentMode.Single;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"HidControllerId: {hidControllerId} - " +
- $"HidNpadJoyDeviceType: {hidNpadJoyDeviceType} - " +
- $"NpadJoyAssignmentModeValue: {_npadJoyAssignmentMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, hidControllerId, hidNpadJoyDeviceType, _npadJoyAssignmentMode });
return 0;
}
@@ -836,9 +783,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_npadJoyAssignmentMode = HidNpadJoyAssignmentMode.Dual;
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"HidControllerId: {hidControllerId} - " +
- $"NpadJoyAssignmentModeValue: {_npadJoyAssignmentMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, hidControllerId, _npadJoyAssignmentMode });
return 0;
}
@@ -850,9 +795,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long singleJoyId1 = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SingleJoyId0: {singleJoyId0} - " +
- $"SingleJoyId1: {singleJoyId1}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, singleJoyId0, singleJoyId1 });
return 0;
}
@@ -862,7 +805,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -872,7 +815,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -883,8 +826,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
_npadHandheldActivationMode = (HidNpadHandheldActivationMode)context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadHandheldActivationMode: {_npadHandheldActivationMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadHandheldActivationMode });
return 0;
}
@@ -896,8 +838,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((long)_npadHandheldActivationMode);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadHandheldActivationMode: {_npadHandheldActivationMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadHandheldActivationMode });
return 0;
}
@@ -909,9 +850,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int newNpadAssignment = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"OldNpadAssignment: {oldNpadAssignment} - " +
- $"NewNpadAssignment: {newNpadAssignment}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, oldNpadAssignment, newNpadAssignment });
return 0;
}
@@ -924,9 +863,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_unintendedHomeButtonInputProtectionEnabled);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"Unknown0: {unknown0} - " +
- $"UnintendedHomeButtonInputProtectionEnabled: {_unintendedHomeButtonInputProtectionEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, unknown0, _unintendedHomeButtonInputProtectionEnabled });
return 0;
}
@@ -938,9 +875,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
uint unknown0 = context.RequestData.ReadUInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"Unknown0: {unknown0} - " +
- $"UnintendedHomeButtonInputProtectionEnable: {_unintendedHomeButtonInputProtectionEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, unknown0, _unintendedHomeButtonInputProtectionEnabled });
return 0;
}
@@ -957,12 +892,14 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(0); //Unknown0
context.ResponseData.Write(0); //Unknown1
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"HidControllerId: {hidControllerId} - " +
- $"HidNpadJoyDeviceType: {hidNpadJoyDeviceType} - " +
- $"NpadJoyAssignmentModeValue: {_npadJoyAssignmentMode} - " +
- $"Unknown0: 0 - " +
- $"Unknown1: 0");
+ Logger.PrintStub(LogClass.ServiceHid, new {
+ appletResourceUserId,
+ hidControllerId,
+ hidNpadJoyDeviceType,
+ _npadJoyAssignmentMode,
+ Unknown0 = 0,
+ Unknown1 = 0
+ });
return 0;
}
@@ -981,9 +918,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((int)deviceInfo.DeviceType);
context.ResponseData.Write((int)deviceInfo.Position);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. VibrationDeviceHandle: {vibrationDeviceHandle} - " +
- $"DeviceType: {deviceInfo.DeviceType} - " +
- $"Position: {deviceInfo.Position}");
+ Logger.PrintStub(LogClass.ServiceHid, new { vibrationDeviceHandle, deviceInfo.DeviceType, deviceInfo.Position });
return 0;
}
@@ -1003,12 +938,14 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"VibrationDeviceHandle: {vibrationDeviceHandle} - " +
- $"AmplitudeLow: {_vibrationValue.AmplitudeLow} - " +
- $"FrequencyLow: {_vibrationValue.FrequencyLow} - " +
- $"AmplitudeHigh: {_vibrationValue.AmplitudeHigh} - " +
- $"FrequencyHigh: {_vibrationValue.FrequencyHigh}");
+ Logger.PrintStub(LogClass.ServiceHid, new {
+ appletResourceUserId,
+ vibrationDeviceHandle,
+ _vibrationValue.AmplitudeLow,
+ _vibrationValue.FrequencyLow,
+ _vibrationValue.AmplitudeHigh,
+ _vibrationValue.FrequencyHigh
+ });
return 0;
}
@@ -1024,12 +961,14 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_vibrationValue.AmplitudeHigh);
context.ResponseData.Write(_vibrationValue.FrequencyHigh);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"VibrationDeviceHandle: {vibrationDeviceHandle} - " +
- $"AmplitudeLow: {_vibrationValue.AmplitudeLow} - " +
- $"FrequencyLow: {_vibrationValue.FrequencyLow} - " +
- $"AmplitudeHigh: {_vibrationValue.AmplitudeHigh} - " +
- $"FrequencyHigh: {_vibrationValue.FrequencyHigh}");
+ Logger.PrintStub(LogClass.ServiceHid, new {
+ appletResourceUserId,
+ vibrationDeviceHandle,
+ _vibrationValue.AmplitudeLow,
+ _vibrationValue.FrequencyLow,
+ _vibrationValue.AmplitudeHigh,
+ _vibrationValue.FrequencyHigh
+ });
return 0;
}
@@ -1047,7 +986,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
_vibrationPermitted = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. VibrationPermitted: {_vibrationPermitted}");
+ Logger.PrintStub(LogClass.ServiceHid, new { _vibrationPermitted });
return 0;
}
@@ -1057,7 +996,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
context.ResponseData.Write(_vibrationPermitted);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. VibrationPermitted: {_vibrationPermitted}");
+ Logger.PrintStub(LogClass.ServiceHid, new { _vibrationPermitted });
return 0;
}
@@ -1077,9 +1016,11 @@ namespace Ryujinx.HLE.HOS.Services.Hid
//Todo: Read all handles and values from buffer.
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"VibrationDeviceHandleBufferLength: {vibrationDeviceHandleBuffer.Length} - " +
- $"VibrationValueBufferLength: {vibrationValueBuffer.Length}");
+ Logger.PrintStub(LogClass.ServiceHid, new {
+ appletResourceUserId,
+ VibrationDeviceHandleBufferLength = vibrationDeviceHandleBuffer.Length,
+ VibrationValueBufferLength = vibrationValueBuffer.Length
+ });
return 0;
}
@@ -1091,9 +1032,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long vibrationGcErmCommand = context.RequestData.ReadInt64();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"VibrationDeviceHandle: {vibrationDeviceHandle} - " +
- $"VibrationGcErmCommand: {vibrationGcErmCommand}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, vibrationDeviceHandle, vibrationGcErmCommand });
return 0;
}
@@ -1106,9 +1045,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_vibrationGcErmCommand);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"VibrationDeviceHandle: {vibrationDeviceHandle} - " +
- $"VibrationGcErmCommand: {_vibrationGcErmCommand}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, vibrationDeviceHandle, _vibrationGcErmCommand });
return 0;
}
@@ -1118,7 +1055,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1126,7 +1063,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
// EndPermitVibrationSession()
public long EndPermitVibrationSession(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed.");
+ Logger.PrintStub(LogClass.ServiceHid);
return 0;
}
@@ -1136,7 +1073,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1147,8 +1084,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int consoleSixAxisSensorHandle = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"ConsoleSixAxisSensorHandle: {consoleSixAxisSensorHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, consoleSixAxisSensorHandle });
return 0;
}
@@ -1159,8 +1095,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int consoleSixAxisSensorHandle = context.RequestData.ReadInt32();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"ConsoleSixAxisSensorHandle: {consoleSixAxisSensorHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, consoleSixAxisSensorHandle });
return 0;
}
@@ -1170,7 +1105,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1180,7 +1115,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1190,7 +1125,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1204,9 +1139,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
// Todo: Determine if array<nn::sf::NativeHandle> is a buffer or not...
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"Counter0: {counter0} - " +
- $"Counter1: {counter1}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, counter0, counter1 });
return 0;
}
@@ -1216,7 +1149,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId });
return 0;
}
@@ -1227,8 +1160,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_sevenSixAxisSensorFusionStrength = context.RequestData.ReadSingle();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SevenSixAxisSensorFusionStrength: {_sevenSixAxisSensorFusionStrength}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _sevenSixAxisSensorFusionStrength });
return 0;
}
@@ -1240,8 +1172,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(_sevenSixAxisSensorFusionStrength);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"SevenSixAxisSensorFusionStrength: {_sevenSixAxisSensorFusionStrength}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _sevenSixAxisSensorFusionStrength });
return 0;
}
@@ -1251,7 +1182,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
context.ResponseData.Write(_usbFullKeyControllerEnabled);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. UsbFullKeyControllerEnabled: {_usbFullKeyControllerEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { _usbFullKeyControllerEnabled });
return 0;
}
@@ -1261,7 +1192,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
_usbFullKeyControllerEnabled = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. UsbFullKeyControllerEnabled: {_usbFullKeyControllerEnabled}");
+ Logger.PrintStub(LogClass.ServiceHid, new { _usbFullKeyControllerEnabled });
return 0;
}
@@ -1273,7 +1204,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(true); //FullKeyController is always connected ?
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. Unknown0: {unknown0} - Connected: true");
+ Logger.PrintStub(LogClass.ServiceHid, new { unknown0, Connected = true });
return 0;
}
@@ -1285,7 +1216,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(true); //Npad always got a battery ?
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. NpadId: {npadId} - HasBattery: true");
+ Logger.PrintStub(LogClass.ServiceHid, new { npadId, HasBattery = true });
return 0;
}
@@ -1298,7 +1229,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(true); //Npad always got a left battery ?
context.ResponseData.Write(true); //Npad always got a right battery ?
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. NpadId: {npadId} - HasLeftBattery: true - HasRightBattery: true");
+ Logger.PrintStub(LogClass.ServiceHid, new { npadId, HasLeftBattery = true, HasRightBattery = true });
return 0;
}
@@ -1310,7 +1241,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((byte)0);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. NpadId: {npadId} - NpadInterfaceType: 0");
+ Logger.PrintStub(LogClass.ServiceHid, new { npadId, NpadInterfaceType = 0 });
return 0;
}
@@ -1323,9 +1254,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write((byte)0);
context.ResponseData.Write((byte)0);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. NpadId: {npadId} - " +
- $"LeftInterfaceType: 0 - " +
- $"RightInterfaceType: 0");
+ Logger.PrintStub(LogClass.ServiceHid, new { npadId, LeftInterfaceType = 0, RightInterfaceType = 0 });
return 0;
}
@@ -1340,9 +1269,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(palmaConnectionHandle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"Unknown0: {unknown0} - " +
- $"PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId , unknown0, palmaConnectionHandle });
return 0;
}
@@ -1352,7 +1279,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1371,7 +1298,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
return 0;
}
@@ -1385,8 +1312,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
context.ResponseData.Write(unknown0);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, unknown0 });
return 0;
}
@@ -1397,8 +1323,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int palmaConnectionHandle = context.RequestData.ReadInt32();
long unknown0 = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, unknown0 });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1411,8 +1336,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int palmaConnectionHandle = context.RequestData.ReadInt32();
long frModeType = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"FrModeType: {frModeType}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, frModeType });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1424,7 +1348,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
return 0;
}
@@ -1435,8 +1359,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
int palmaConnectionHandle = context.RequestData.ReadInt32();
bool enabledPalmaStep = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"EnabledPalmaStep: {enabledPalmaStep}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, enabledPalmaStep });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1448,7 +1371,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1460,7 +1383,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1474,9 +1397,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long unknown0 = context.RequestData.ReadInt64();
long unknown1 = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, unknown0, unknown1 });
return 0;
}
@@ -1489,9 +1410,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
long unknown1 = context.RequestData.ReadInt64();
// nn::hid::PalmaApplicationSectionAccessBuffer cast is unknown
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle} - " +
- $"Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle, unknown0, unknown1 });
_palmaOperationCompleteEvent.ReadableEvent.Signal();
@@ -1503,7 +1422,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
return 0;
}
@@ -1513,7 +1432,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
int palmaConnectionHandle = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. PalmaConnectionHandle: {palmaConnectionHandle}");
+ Logger.PrintStub(LogClass.ServiceHid, new { palmaConnectionHandle });
return 0;
}
@@ -1524,8 +1443,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
_npadCommunicationMode = context.RequestData.ReadInt64();
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. AppletResourceUserId: {appletResourceUserId} - " +
- $"NpadCommunicationMode: {_npadCommunicationMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { appletResourceUserId, _npadCommunicationMode });
return 0;
}
@@ -1535,7 +1453,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
{
context.ResponseData.Write(_npadCommunicationMode);
- Logger.PrintStub(LogClass.ServiceHid, $"Stubbed. CommunicationMode: {_npadCommunicationMode}");
+ Logger.PrintStub(LogClass.ServiceHid, new { _npadCommunicationMode });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/IpcService.cs b/Ryujinx.HLE/HOS/Services/IpcService.cs
index 8d2036ea..5c7fa18d 100644
--- a/Ryujinx.HLE/HOS/Services/IpcService.cs
+++ b/Ryujinx.HLE/HOS/Services/IpcService.cs
@@ -1,4 +1,5 @@
using Ryujinx.Common.Logging;
+using Ryujinx.HLE.Exceptions;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Common;
using Ryujinx.HLE.HOS.Kernel.Ipc;
@@ -117,7 +118,7 @@ namespace Ryujinx.HLE.HOS.Services
{
string dbgMessage = $"{context.Session.ServiceName} {service.GetType().Name}: {commandId}";
- throw new NotImplementedException(dbgMessage);
+ throw new ServiceNotImplementedException(context, dbgMessage);
}
}
diff --git a/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs b/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs
index d6683877..e6521c04 100644
--- a/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs
@@ -26,7 +26,7 @@ namespace Ryujinx.HLE.HOS.Services.Irs
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceIrs, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId });
return 0;
}
@@ -36,7 +36,7 @@ namespace Ryujinx.HLE.HOS.Services.Irs
{
long appletResourceUserId = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceIrs, $"Stubbed. AppletResourceUserId: {appletResourceUserId}");
+ Logger.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Mm/IRequest.cs b/Ryujinx.HLE/HOS/Services/Mm/IRequest.cs
index 9b051de0..932e5b0d 100644
--- a/Ryujinx.HLE/HOS/Services/Mm/IRequest.cs
+++ b/Ryujinx.HLE/HOS/Services/Mm/IRequest.cs
@@ -32,8 +32,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
int unknown1 = context.RequestData.ReadInt32();
int unknown2 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceMm, $"Stubbed. Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1} - Unknown2: {unknown2}");
+ Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
return 0;
}
@@ -43,7 +42,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
{
context.Device.Gpu.UninitializeVideoDecoder();
- Logger.PrintStub(LogClass.ServiceMm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceMm);
return 0;
}
@@ -55,8 +54,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
int unknown1 = context.RequestData.ReadInt32();
int unknown2 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceMm, $"Stubbed. Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1} - Unknown2: {unknown2}");
+ Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
return 0;
}
@@ -65,7 +63,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
{
int unknown0 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceMm, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceMm, new { unknown0 });
context.ResponseData.Write(0);
@@ -75,7 +73,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
// Initialize()
public long Initialize(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceMm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceMm);
return 0;
}
@@ -85,7 +83,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
{
context.Device.Gpu.UninitializeVideoDecoder();
- Logger.PrintStub(LogClass.ServiceMm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceMm);
return 0;
}
@@ -97,8 +95,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
int unknown1 = context.RequestData.ReadInt32();
int unknown2 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceMm, $"Stubbed. Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1} - Unknown2: {unknown2}");
+ Logger.PrintStub(LogClass.ServiceMm, new { unknown0, unknown1, unknown2 });
return 0;
}
@@ -108,7 +105,7 @@ namespace Ryujinx.HLE.HOS.Services.Mm
{
int unknown0 = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceMm, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceMm, new { unknown0 });
context.ResponseData.Write(0);
diff --git a/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs b/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs
index 42ef4829..66bff1a7 100644
--- a/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs
+++ b/Ryujinx.HLE/HOS/Services/Nfp/IUser.cs
@@ -46,7 +46,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
public long Initialize(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
_state = State.Initialized;
@@ -55,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
public long AttachActivateEvent(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
if (context.Process.HandleTable.GenerateHandle(_activateEvent.ReadableEvent, out int handle) != KernelResult.Success)
{
@@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
public long AttachDeactivateEvent(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
if (context.Process.HandleTable.GenerateHandle(_deactivateEvent.ReadableEvent, out int handle) != KernelResult.Success)
{
@@ -85,7 +85,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
{
context.ResponseData.Write((int)_state);
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
return 0;
}
@@ -94,7 +94,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
{
context.ResponseData.Write((int)_deviceState);
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
return 0;
}
@@ -103,14 +103,14 @@ namespace Ryujinx.HLE.HOS.Services.Nfp
{
context.ResponseData.Write((int)NpadId);
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
return 0;
}
public long AttachAvailabilityChangeEvent(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNfp, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNfp);
if (context.Process.HandleTable.GenerateHandle(_availabilityChangeEvent.ReadableEvent, out int handle) != KernelResult.Success)
{
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs b/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
index 4b87c2c7..636e9384 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/IGeneralService.cs
@@ -32,7 +32,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
MakeObject(context, new IRequest(context.Device.System));
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs b/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
index d2c646be..b5691a43 100644
--- a/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
+++ b/Ryujinx.HLE/HOS/Services/Nifm/IRequest.cs
@@ -36,14 +36,14 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
{
context.ResponseData.Write(1);
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
public long GetResult(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
@@ -67,21 +67,21 @@ namespace Ryujinx.HLE.HOS.Services.Nifm
public long Cancel(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
public long Submit(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
public long SetConnectionConfirmationOption(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNifm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNifm);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs b/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs
index 8bbd0dea..94c0e810 100644
--- a/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Ns/IAddOnContentManager.cs
@@ -23,14 +23,14 @@ namespace Ryujinx.HLE.HOS.Services.Ns
{
context.ResponseData.Write(0);
- Logger.PrintStub(LogClass.ServiceNs, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNs);
return 0;
}
public static long ListAddOnContent(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNs, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNs);
//TODO: This is supposed to write a u32 array aswell.
//It's unknown what it contains.
diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
index 3a00f514..d93372e2 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs
@@ -150,7 +150,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
public long FinishInitialize(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
index 2a5f1b18..57728382 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
@@ -43,7 +43,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -266,7 +266,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -276,7 +276,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuAS
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs
index 5680fb8e..4f276d5d 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvGpuGpu/NvGpuGpuIoctl.cs
@@ -46,7 +46,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
MemoryHelper.Write(context.Memory, outputPosition, args);
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -70,7 +70,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
MemoryHelper.Write(context.Memory, outputPosition, args);
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -80,7 +80,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -163,7 +163,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvGpuGpu
MemoryHelper.Write(context.Memory, outputPosition, args);
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs
index a6681441..a13f0fcb 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvHostChannel/NvHostChannelIoctl.cs
@@ -179,7 +179,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -189,7 +189,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -232,7 +232,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -242,7 +242,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -252,7 +252,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -262,7 +262,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
@@ -272,7 +272,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostChannel
long inputPosition = context.Request.GetBufferType0x21().Position;
long outputPosition = context.Request.GetBufferType0x22().Position;
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs b/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs
index ddef456c..e05ea77c 100644
--- a/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs
+++ b/Ryujinx.HLE/HOS/Services/Nv/NvHostCtrl/NvHostCtrlIoctl.cs
@@ -145,7 +145,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvHostCtrl
int eventId = context.Memory.ReadInt32(inputPosition);
- Logger.PrintStub(LogClass.ServiceNv, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceNv);
return NvResult.Success;
}
diff --git a/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs b/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
index f8198fa9..a3cb5cc9 100644
--- a/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
+++ b/Ryujinx.HLE/HOS/Services/Prepo/IPrepoService.cs
@@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Services.Prepo
public static long SaveReportWithUser(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServicePrepo, "Stubbed.");
+ Logger.PrintStub(LogClass.ServicePrepo);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs b/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs
index c7f6083c..02bc5524 100644
--- a/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Psm/IPsmServer.cs
@@ -34,7 +34,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
context.ResponseData.Write(chargePercentage);
- Logger.PrintStub(LogClass.ServicePsm, $"Stubbed. ChargePercentage: {chargePercentage}");
+ Logger.PrintStub(LogClass.ServicePsm, new { chargePercentage });
return 0;
}
@@ -42,9 +42,11 @@ namespace Ryujinx.HLE.HOS.Services.Psm
// GetChargerType() -> u32
public static long GetChargerType(ServiceCtx context)
{
- context.ResponseData.Write((int)ChargerType.ChargerOrDock);
+ ChargerType chargerType = ChargerType.ChargerOrDock;
- Logger.PrintStub(LogClass.ServicePsm, $"Stubbed. ChargerType: {ChargerType.ChargerOrDock}");
+ context.ResponseData.Write((int)chargerType);
+
+ Logger.PrintStub(LogClass.ServicePsm, new { chargerType });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs b/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs
index 0c304b41..aeeeb052 100644
--- a/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs
+++ b/Ryujinx.HLE/HOS/Services/Psm/IPsmSession.cs
@@ -45,7 +45,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_stateChangeEventHandle);
- Logger.PrintStub(LogClass.ServicePsm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServicePsm);
return 0;
}
@@ -59,7 +59,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
_stateChangeEventHandle = -1;
}
- Logger.PrintStub(LogClass.ServicePsm, "Stubbed.");
+ Logger.PrintStub(LogClass.ServicePsm);
return 0;
}
@@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
{
bool chargerTypeChangeEventEnabled = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServicePsm, $"Stubbed. ChargerTypeChangeEventEnabled: {chargerTypeChangeEventEnabled}");
+ Logger.PrintStub(LogClass.ServicePsm, new { chargerTypeChangeEventEnabled });
return 0;
}
@@ -79,7 +79,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
{
bool powerSupplyChangeEventEnabled = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServicePsm, $"Stubbed. PowerSupplyChangeEventEnabled: {powerSupplyChangeEventEnabled}");
+ Logger.PrintStub(LogClass.ServicePsm, new { powerSupplyChangeEventEnabled });
return 0;
}
@@ -89,7 +89,7 @@ namespace Ryujinx.HLE.HOS.Services.Psm
{
bool batteryVoltageStateChangeEventEnabled = context.RequestData.ReadBoolean();
- Logger.PrintStub(LogClass.ServicePsm, $"Stubbed. BatteryVoltageStateChangeEventEnabled: {batteryVoltageStateChangeEventEnabled}");
+ Logger.PrintStub(LogClass.ServicePsm, new { batteryVoltageStateChangeEventEnabled });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs b/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs
index 5de03551..5a7b9f45 100644
--- a/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs
+++ b/Ryujinx.HLE/HOS/Services/Sfdnsres/IResolver.cs
@@ -166,7 +166,7 @@ namespace Ryujinx.HLE.HOS.Services.Sfdnsres
long bufferSize = context.Request.SendBuff[0].Size;
// TODO: This is stubbed in 2.0.0+, reverse 1.0.0 version for the sake completeness.
- Logger.PrintStub(LogClass.ServiceSfdnsres, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceSfdnsres, new { unknown0 });
return MakeError(ErrorModule.Os, 1023);
}
@@ -177,7 +177,7 @@ namespace Ryujinx.HLE.HOS.Services.Sfdnsres
uint unknown0 = context.RequestData.ReadUInt32();
// TODO: This is stubbed in 2.0.0+, reverse 1.0.0 version for the sake completeness.
- Logger.PrintStub(LogClass.ServiceSfdnsres, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceSfdnsres, new { unknown0 });
return MakeError(ErrorModule.Os, 1023);
}
@@ -369,7 +369,7 @@ namespace Ryujinx.HLE.HOS.Services.Sfdnsres
context.ResponseData.Write(0);
- Logger.PrintStub(LogClass.ServiceSfdnsres, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceSfdnsres, new { unknown0 });
return 0;
}
@@ -380,8 +380,7 @@ namespace Ryujinx.HLE.HOS.Services.Sfdnsres
uint unknown0 = context.RequestData.ReadUInt32();
ulong unknown1 = context.RequestData.ReadUInt64();
- Logger.PrintStub(LogClass.ServiceSfdnsres, $"Stubbed. Unknown0: {unknown0} - " +
- $"Unknown1: {unknown1}");
+ Logger.PrintStub(LogClass.ServiceSfdnsres, new { unknown0, unknown1 });
return 0;
}
@@ -391,7 +390,7 @@ namespace Ryujinx.HLE.HOS.Services.Sfdnsres
{
uint unknown0 = context.RequestData.ReadUInt32();
- Logger.PrintStub(LogClass.ServiceSfdnsres, $"Stubbed. Unknown0: {unknown0}");
+ Logger.PrintStub(LogClass.ServiceSfdnsres, new { unknown0 });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs b/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
index b40e9473..5afc8c72 100644
--- a/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
+++ b/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs
@@ -25,7 +25,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl
int sslVersion = context.RequestData.ReadInt32();
long unknown = context.RequestData.ReadInt64();
- Logger.PrintStub(LogClass.ServiceSsl, $"Stubbed. SslVersion: {sslVersion} - Unknown: {unknown}");
+ Logger.PrintStub(LogClass.ServiceSsl, new { sslVersion, unknown });
MakeObject(context, new ISslContext());
@@ -37,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl
{
int version = context.RequestData.ReadInt32();
- Logger.PrintStub(LogClass.ServiceSsl, $"Stubbed. Version: {version}");
+ Logger.PrintStub(LogClass.ServiceSsl, new { version });
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs
index 369c376f..c655e26c 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/IManagerDisplayService.cs
@@ -23,7 +23,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi
public static long CreateManagedLayer(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
context.ResponseData.Write(0L); //LayerId
@@ -32,21 +32,21 @@ namespace Ryujinx.HLE.HOS.Services.Vi
public long DestroyManagedLayer(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
return 0;
}
public static long AddToLayerStack(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
return 0;
}
public static long SetLayerVisibility(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
return 0;
}
diff --git a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
index 070277ff..6d001588 100644
--- a/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
+++ b/Ryujinx.HLE/HOS/Services/Vi/ISystemDisplayService.cs
@@ -23,14 +23,14 @@ namespace Ryujinx.HLE.HOS.Services.Vi
public static long SetLayerZ(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
return 0;
}
public static long SetLayerVisibility(ServiceCtx context)
{
- Logger.PrintStub(LogClass.ServiceVi, "Stubbed.");
+ Logger.PrintStub(LogClass.ServiceVi);
return 0;
}
diff --git a/Ryujinx/Ui/ConsoleLog.cs b/Ryujinx/Ui/ConsoleLog.cs
index 67eaa0e3..ac3d41c9 100644
--- a/Ryujinx/Ui/ConsoleLog.cs
+++ b/Ryujinx/Ui/ConsoleLog.cs
@@ -2,6 +2,8 @@ using Ryujinx.Common.Logging;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
using System.Threading;
namespace Ryujinx
@@ -14,8 +16,6 @@ namespace Ryujinx
private static Dictionary<LogLevel, ConsoleColor> _logColors;
- private static object _consoleLock;
-
static ConsoleLog()
{
_logColors = new Dictionary<LogLevel, ConsoleColor>()
@@ -28,8 +28,6 @@ namespace Ryujinx
_messageQueue = new BlockingCollection<LogEventArgs>(10);
- _consoleLock = new object();
-
_messageThread = new Thread(() =>
{
while (!_messageQueue.IsCompleted)
@@ -55,25 +53,46 @@ namespace Ryujinx
private static void PrintLog(LogEventArgs e)
{
- string formattedTime = e.Time.ToString(@"hh\:mm\:ss\.fff");
+ StringBuilder sb = new StringBuilder();
- string currentThread = Thread.CurrentThread.ManagedThreadId.ToString("d4");
+ sb.AppendFormat(@"{0:hh\:mm\:ss\.fff}", e.Time);
+ sb.Append(" | ");
+ sb.AppendFormat("{0:d4}", e.ThreadId);
+ sb.Append(' ');
+ sb.Append(e.Message);
- string message = formattedTime + " | " + currentThread + " " + e.Message;
-
- if (_logColors.TryGetValue(e.Level, out ConsoleColor color))
+ if (e.Data != null)
{
- lock (_consoleLock)
+ PropertyInfo[] props = e.Data.GetType().GetProperties();
+
+ sb.Append(' ');
+
+ foreach (var prop in props)
{
- Console.ForegroundColor = color;
+ sb.Append(prop.Name);
+ sb.Append(": ");
+ sb.Append(prop.GetValue(e.Data));
+ sb.Append(" - ");
+ }
- Console.WriteLine(message);
- Console.ResetColor();
+ // We remove the final '-' from the string
+ if (props.Length > 0)
+ {
+ sb.Remove(sb.Length - 3, 3);
}
}
+
+ if (_logColors.TryGetValue(e.Level, out ConsoleColor color))
+ {
+ Console.ForegroundColor = color;
+
+ Console.WriteLine(sb.ToString());
+
+ Console.ResetColor();
+ }
else
{
- Console.WriteLine(message);
+ Console.WriteLine(sb.ToString());
}
}