diff --git a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs index cd71103ca..5d23bec9d 100644 --- a/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs @@ -120,22 +120,26 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Lib } [CommandCmif(90)] - // Unknown90(ulong[4]) - public ResultCode Unknown90(ServiceCtx context) + // StartEx(ulong[4]) + public ResultCode StartEx(ServiceCtx context) { // NOTE: This call is performed on SDK 20+ when applet is called. // Since we don't support most applets for now, it's fine to stub it. + // + // This method takes an array of 4 unsigned longs and performs a calculation. + // If that calculation fails, then this method runs Start(). // Throw if values are not 0 to learn more about what this function does. + // alt:(buffer unknown) - if (context.RequestData.ReadUInt64() != 0 || context.RequestData.ReadUInt64() != 0 || - context.RequestData.ReadUInt64() != 0 || context.RequestData.ReadUInt64() != 0) + if (context.RequestData.ReadUInt64() != 0 + || context.RequestData.ReadUInt64() != 0 + || context.RequestData.ReadUInt64() != 0 + || context.RequestData.ReadUInt64() != 0) { - throw new ServiceNotImplementedException(this, context, $"{GetType().FullName}: 90"); + throw new ServiceNotImplementedException(this, context, $"{GetType().FullName}: StartEx"); } - Logger.Stub?.PrintStub(LogClass.ServiceAm); - return ResultCode.Success; - } + return (ResultCode)_applet.Start(_normalSession.GetConsumer(), _interactiveSession.GetConsumer()); [CommandCmif(100)] // PushInData(object)