Merge branch 'implement-StartEx' into 'master'

HLE: Implement StartEx (ILibraryAppletAccessor:90)

See merge request [ryubing/ryujinx!227](https://git.ryujinx.app/ryubing/ryujinx/-/merge_requests/227)
This commit is contained in:
sh0inx 2026-01-04 01:55:58 -06:00
commit 569867bace

View file

@ -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<u8, 20> 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<nn::am::service::IStorage>)