forked from suyu/suyu
service: am: Implement ExecuteProgram and required stubs.
- This is used by Super Mario 3D All-Stars.
This commit is contained in:
parent
5f75d97125
commit
4fb5ca80c0
2 changed files with 34 additions and 3 deletions
|
@ -1188,9 +1188,9 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_)
|
||||||
{102, &IApplicationFunctions::SetApplicationCopyrightVisibility, "SetApplicationCopyrightVisibility"},
|
{102, &IApplicationFunctions::SetApplicationCopyrightVisibility, "SetApplicationCopyrightVisibility"},
|
||||||
{110, &IApplicationFunctions::QueryApplicationPlayStatistics, "QueryApplicationPlayStatistics"},
|
{110, &IApplicationFunctions::QueryApplicationPlayStatistics, "QueryApplicationPlayStatistics"},
|
||||||
{111, &IApplicationFunctions::QueryApplicationPlayStatisticsByUid, "QueryApplicationPlayStatisticsByUid"},
|
{111, &IApplicationFunctions::QueryApplicationPlayStatisticsByUid, "QueryApplicationPlayStatisticsByUid"},
|
||||||
{120, nullptr, "ExecuteProgram"},
|
{120, &IApplicationFunctions::ExecuteProgram, "ExecuteProgram"},
|
||||||
{121, nullptr, "ClearUserChannel"},
|
{121, &IApplicationFunctions::ClearUserChannel, "ClearUserChannel"},
|
||||||
{122, nullptr, "UnpopToUserChannel"},
|
{122, &IApplicationFunctions::UnpopToUserChannel, "UnpopToUserChannel"},
|
||||||
{123, &IApplicationFunctions::GetPreviousProgramIndex, "GetPreviousProgramIndex"},
|
{123, &IApplicationFunctions::GetPreviousProgramIndex, "GetPreviousProgramIndex"},
|
||||||
{124, nullptr, "EnableApplicationAllThreadDumpOnCrash"},
|
{124, nullptr, "EnableApplicationAllThreadDumpOnCrash"},
|
||||||
{130, &IApplicationFunctions::GetGpuErrorDetectedSystemEvent, "GetGpuErrorDetectedSystemEvent"},
|
{130, &IApplicationFunctions::GetGpuErrorDetectedSystemEvent, "GetGpuErrorDetectedSystemEvent"},
|
||||||
|
@ -1561,6 +1561,34 @@ void IApplicationFunctions::QueryApplicationPlayStatisticsByUid(Kernel::HLEReque
|
||||||
rb.Push<u32>(0);
|
rb.Push<u32>(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IApplicationFunctions::ExecuteProgram(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
[[maybe_unused]] const auto unk_1 = rp.Pop<u32>();
|
||||||
|
[[maybe_unused]] const auto unk_2 = rp.Pop<u32>();
|
||||||
|
const auto program_index = rp.Pop<u64>();
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
|
system.ExecuteProgram(program_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IApplicationFunctions::ClearUserChannel(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IApplicationFunctions::UnpopToUserChannel(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
void IApplicationFunctions::GetPreviousProgramIndex(Kernel::HLERequestContext& ctx) {
|
void IApplicationFunctions::GetPreviousProgramIndex(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
|
|
@ -287,6 +287,9 @@ private:
|
||||||
void SetApplicationCopyrightVisibility(Kernel::HLERequestContext& ctx);
|
void SetApplicationCopyrightVisibility(Kernel::HLERequestContext& ctx);
|
||||||
void QueryApplicationPlayStatistics(Kernel::HLERequestContext& ctx);
|
void QueryApplicationPlayStatistics(Kernel::HLERequestContext& ctx);
|
||||||
void QueryApplicationPlayStatisticsByUid(Kernel::HLERequestContext& ctx);
|
void QueryApplicationPlayStatisticsByUid(Kernel::HLERequestContext& ctx);
|
||||||
|
void ExecuteProgram(Kernel::HLERequestContext& ctx);
|
||||||
|
void ClearUserChannel(Kernel::HLERequestContext& ctx);
|
||||||
|
void UnpopToUserChannel(Kernel::HLERequestContext& ctx);
|
||||||
void GetPreviousProgramIndex(Kernel::HLERequestContext& ctx);
|
void GetPreviousProgramIndex(Kernel::HLERequestContext& ctx);
|
||||||
void GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx);
|
void GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx);
|
||||||
void GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx);
|
void GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx);
|
||||||
|
|
Loading…
Reference in a new issue