diff --git a/include/services/apt.hpp b/include/services/apt.hpp index 53c6eafc..3944e850 100644 --- a/include/services/apt.hpp +++ b/include/services/apt.hpp @@ -48,12 +48,12 @@ class APTService { void isRegistered(u32 messagePointer); void notifyToWait(u32 messagePointer); void preloadLibraryApplet(u32 messagePointer); + void prepareToStartLibraryApplet(u32 messagePointer); void receiveParameter(u32 messagePointer); void replySleepQuery(u32 messagePointer); void setApplicationCpuTimeLimit(u32 messagePointer); void setScreencapPostPermission(u32 messagePointer); void sendParameter(u32 messagePointer); - void prepareToStartLibraryApplet(u32 messagePointer); void startLibraryApplet(u32 messagePointer); void theSmashBrosFunction(u32 messagePointer); diff --git a/src/core/services/apt.cpp b/src/core/services/apt.cpp index 4839c152..a775c2cc 100644 --- a/src/core/services/apt.cpp +++ b/src/core/services/apt.cpp @@ -16,6 +16,7 @@ namespace APTCommands { ReceiveParameter = 0x000D0080, GlanceParameter = 0x000E0080, PreloadLibraryApplet = 0x00160040, + PrepareToStartLibraryApplet = 0x00180040, StartLibraryApplet = 0x001E0084, ReplySleepQuery = 0x003E0080, NotifyToWait = 0x00430040, @@ -97,6 +98,7 @@ void APTService::handleSyncRequest(u32 messagePointer) { case APTCommands::GlanceParameter: glanceParameter(messagePointer); break; case APTCommands::NotifyToWait: notifyToWait(messagePointer); break; case APTCommands::PreloadLibraryApplet: preloadLibraryApplet(messagePointer); break; + case APTCommands::PrepareToStartLibraryApplet: prepareToStartLibraryApplet(messagePointer); break; case APTCommands::ReceiveParameter: [[likely]] receiveParameter(messagePointer); break; case APTCommands::ReplySleepQuery: replySleepQuery(messagePointer); break; case APTCommands::SetApplicationCpuTimeLimit: setApplicationCpuTimeLimit(messagePointer); break; @@ -150,7 +152,7 @@ void APTService::getAppletInfo(u32 messagePointer) { void APTService::isRegistered(u32 messagePointer) { const u32 appID = mem.read32(messagePointer + 4); - Helpers::warn("APT::IsRegistered (appID = %X)\n", appID); + Helpers::warn("APT::IsRegistered (appID = %X)", appID); mem.write32(messagePointer, IPC::responseHeader(0x09, 2, 0)); mem.write32(messagePointer + 4, Result::Success); @@ -165,6 +167,14 @@ void APTService::preloadLibraryApplet(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); } +void APTService::prepareToStartLibraryApplet(u32 messagePointer) { + const u32 appID = mem.read32(messagePointer + 4); + log("APT::PrepareToStartLibraryApplet (app ID = %X) (stubbed)\n", appID); + + mem.write32(messagePointer, IPC::responseHeader(0x16, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); +} + void APTService::checkNew3DS(u32 messagePointer) { log("APT::CheckNew3DS\n"); mem.write32(messagePointer, IPC::responseHeader(0x102, 2, 0)); @@ -247,7 +257,7 @@ void APTService::sendParameter(u32 messagePointer) { mem.write32(messagePointer, IPC::responseHeader(0x0C, 1, 0)); mem.write32(messagePointer + 4, Result::Success); - kernel.signalEvent(notificationEvent.value()); + kernel.signalEvent(resumeEvent.value()); } void APTService::receiveParameter(u32 messagePointer) { diff --git a/src/core/services/gsp_gpu.cpp b/src/core/services/gsp_gpu.cpp index 16962cf8..0e27c0ec 100644 --- a/src/core/services/gsp_gpu.cpp +++ b/src/core/services/gsp_gpu.cpp @@ -464,7 +464,7 @@ void GPUService::triggerTextureCopy(u32* cmd) { // Used when transitioning from the app to an OS applet, such as software keyboard, mii maker, mii selector, etc // Stubbed until we decide to support LLE applets void GPUService::saveVramSysArea(u32 messagePointer) { - Helpers::warn("GSP::GPU::SaveVramSysArea (stubbed)\n"); + Helpers::warn("GSP::GPU::SaveVramSysArea (stubbed)"); mem.write32(messagePointer, IPC::responseHeader(0x19, 1, 0)); mem.write32(messagePointer + 4, Result::Success); @@ -472,7 +472,7 @@ void GPUService::saveVramSysArea(u32 messagePointer) { // Used in similar fashion to the SaveVramSysArea function void GPUService::importDisplayCaptureInfo(u32 messagePointer) { - Helpers::warn("GSP::GPU::ImportDisplayCaptureInfo (stubbed)\n"); + Helpers::warn("GSP::GPU::ImportDisplayCaptureInfo (stubbed)"); mem.write32(messagePointer, IPC::responseHeader(0x18, 9, 0)); mem.write32(messagePointer + 4, Result::Success);