aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/apt/apt.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2015-12-04 16:05:23 -0500
committerSubv <subv2112@gmail.com>2016-03-12 10:59:37 -0500
commit0f8be2d2cc54feda0a52ec8f9633fd022879816a (patch)
tree18a0fa35a23a773be265cb8ff2f6c8df1e8ce9b1 /src/core/hle/service/apt/apt.cpp
parent644d1e7ca35fc8a006f7fbc2adfafd1f4a589f4b (diff)
HLE/Applets: Implemented a dummy Mii Selector applet.
This prevents some games (like Super Mario 3D Land) from freezing when trying to launch it, however, it's not complete and won't let you go past Mii selection as the parameter structure hasn't been reverse engineered yet.
Diffstat (limited to 'src/core/hle/service/apt/apt.cpp')
-rw-r--r--src/core/hle/service/apt/apt.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index ba66569b4..feb579778 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/src/core/hle/service/apt/apt.cpp
@@ -12,6 +12,7 @@
#include "core/hle/service/apt/apt_a.h"
#include "core/hle/service/apt/apt_s.h"
#include "core/hle/service/apt/apt_u.h"
+#include "core/hle/service/fs/archive.h"
#include "core/hle/hle.h"
#include "core/hle/kernel/event.h"
@@ -380,6 +381,24 @@ void StartLibraryApplet(Service::Interface* self) {
cmd_buff[1] = applet->Start(parameter).raw;
}
+void GetAppletInfo(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+ auto app_id = static_cast<AppletId>(cmd_buff[1]);
+
+ if (auto applet = HLE::Applets::Applet::Get(app_id)) {
+ // TODO(Subv): Get the title id for the current applet and write it in the response[2-3]
+ cmd_buff[1] = RESULT_SUCCESS.raw;
+ cmd_buff[4] = static_cast<u32>(Service::FS::MediaType::NAND);
+ cmd_buff[5] = 1; // Registered
+ cmd_buff[6] = 1; // Loaded
+ cmd_buff[7] = 0; // Applet Attributes
+ } else {
+ cmd_buff[1] = ResultCode(ErrorDescription::NotFound, ErrorModule::Applet,
+ ErrorSummary::NotFound, ErrorLevel::Status).raw;
+ }
+ LOG_WARNING(Service_APT, "(stubbed) called appid=%u", app_id);
+}
+
void Init() {
AddService(new APT_A_Interface);
AddService(new APT_S_Interface);