summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2017-07-21 20:03:28 +0200
committerSubv <subv2112@gmail.com>2017-07-21 21:59:22 +0200
commite403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34 (patch)
tree8bdb1aaa9c97cec83c896ce4fb8ebd3ea50c9202
parentServices/APT: Use the right error codes in ReceiveParameter and GlanceParameter when the parameter doesn't exist. (diff)
downloadyuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.gz
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.bz2
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.lz
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.xz
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.tar.zst
yuzu-e403638d9b2cbd7f7dbacd14c3c4bf9863bf7b34.zip
-rw-r--r--src/core/hle/service/apt/apt.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index b5748693f..b6c013d43 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/src/core/hle/service/apt/apt.cpp
@@ -257,7 +257,9 @@ void ReceiveParameter(Service::Interface* self) {
Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
- LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+ // Clear the parameter
+ next_parameter = boost::none;
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
}
void GlanceParameter(Service::Interface* self) {
@@ -302,7 +304,11 @@ void GlanceParameter(Service::Interface* self) {
Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
- LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+ // Note: The NS module always clears the DSPSleep and DSPWakeup signals even in GlanceParameter.
+ if (next_parameter->signal == static_cast<u32>(SignalType::DspSleep) ||
+ next_parameter->signal == static_cast<u32>(SignalType::DspWakeup))
+ next_parameter = boost::none;
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
}
void CancelParameter(Service::Interface* self) {