am: Implement CreateApplicationAndRequestToStart (#2448)

This PR implement `CreateApplicationAndRequestToStart` call, result code is checked by RE.
Now we can restart a guest program by itself. This is needed by SSBU when you changes the game language.

NOTE: This currently don't works using OpenAL backend due to another issue.

Closes #2108
This commit is contained in:
Ac_K 2021-07-10 23:37:29 +02:00 committed by GitHub
parent b1a9d17cf8
commit 0d841c8d51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -79,6 +79,26 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.Applicati
return ResultCode.Success; return ResultCode.Success;
} }
[CommandHipc(12)] // 4.0.0+
// CreateApplicationAndRequestToStart(u64 title_id)
public ResultCode CreateApplicationAndRequestToStart(ServiceCtx context)
{
ulong titleId = context.RequestData.ReadUInt64();
Logger.Stub?.PrintStub(LogClass.ServiceAm, new { titleId });
if (titleId == 0)
{
context.Device.UiHandler.ExecuteProgram(context.Device, ProgramSpecifyKind.RestartProgram, titleId);
}
else
{
throw new NotImplementedException();
}
return ResultCode.Success;
}
[CommandHipc(20)] [CommandHipc(20)]
// EnsureSaveData(nn::account::Uid) -> u64 // EnsureSaveData(nn::account::Uid) -> u64
public ResultCode EnsureSaveData(ServiceCtx context) public ResultCode EnsureSaveData(ServiceCtx context)