Removes the workaround and properly fixes the controller applet stuck on Mario Kart 8 Deluxe and possibly other games as well

Co-authored-by: MaranBr <maranbr@outlook.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/129
This commit is contained in:
MaranBr 2025-05-27 11:58:01 +00:00
parent 7df3692bcd
commit 71df7b1451
2 changed files with 8 additions and 2 deletions

View file

@ -36,7 +36,6 @@ void Applet::UpdateSuspensionStateLocked(bool force_message) {
process->Suspend(false);
} else {
process->Suspend(true);
lifecycle_manager.RequestResumeNotification();
}
is_activity_runnable = curr_activity_runnable;
@ -49,6 +48,7 @@ void Applet::UpdateSuspensionStateLocked(bool force_message) {
// Signal if the focus state was changed or the process state was changed.
if (lifecycle_manager.UpdateRequestedFocusState() || was_changed || force_message) {
lifecycle_manager.RequestResumeNotification();
lifecycle_manager.SignalSystemEventIfNeeded();
}
}

View file

@ -61,6 +61,12 @@ Result ILibraryAppletAccessor::IsCompleted(Out<bool> out_is_completed) {
Result ILibraryAppletAccessor::GetResult() {
LOG_DEBUG(Service_AM, "called");
std::scoped_lock lk{m_applet->lock};
if (auto caller_applet = m_applet->caller_applet.lock(); caller_applet) {
caller_applet->UpdateSuspensionStateLocked(true);
} else {
LOG_ERROR(Service_AM, "No caller applet available");
R_THROW(ResultUnknown);
}
R_RETURN(m_applet->terminate_result);
}