From 44db59be2b9a4745e8144339e20e9844032a3ce0 Mon Sep 17 00:00:00 2001 From: zhupengfei Date: Tue, 24 Jul 2018 22:59:10 +0800 Subject: [PATCH] applet_manager: disable loading LLE applets Currently LLE applets cannot exit properly in Citra and causes Citra to hang. We are already providing HLE for applets, and the LLE applets are preventing users who dumped their system files from using the applets correctly. Before the further fix is done, I think we should temporaily disable loading LLE applets. --- src/core/hle/service/apt/applet_manager.cpp | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/core/hle/service/apt/applet_manager.cpp b/src/core/hle/service/apt/applet_manager.cpp index 5d30309ca..1d3281e84 100644 --- a/src/core/hle/service/apt/applet_manager.cpp +++ b/src/core/hle/service/apt/applet_manager.cpp @@ -321,10 +321,13 @@ ResultCode AppletManager::PrepareToStartLibraryApplet(AppletId applet_id) { ErrorSummary::InvalidState, ErrorLevel::Status); } - auto process = NS::LaunchTitle(FS::MediaType::NAND, GetTitleIdForApplet(applet_id)); - if (process) { - return RESULT_SUCCESS; - } + // There are some problems with LLE applets. The rasterizer cache gets out of sync + // when the applet is closed. To avoid breaking applications because of the issue, + // we are going to disable loading LLE applets before further fixes are done. + // auto process = NS::LaunchTitle(FS::MediaType::NAND, GetTitleIdForApplet(applet_id)); + // if (process) { + // return RESULT_SUCCESS; + // } // If we weren't able to load the native applet title, try to fallback to an HLE implementation. auto applet = HLE::Applets::Applet::Get(applet_id); @@ -345,10 +348,13 @@ ResultCode AppletManager::PreloadLibraryApplet(AppletId applet_id) { ErrorSummary::InvalidState, ErrorLevel::Status); } - auto process = NS::LaunchTitle(FS::MediaType::NAND, GetTitleIdForApplet(applet_id)); - if (process) { - return RESULT_SUCCESS; - } + // There are some problems with LLE applets. The rasterizer cache gets out of sync + // when the applet is closed. To avoid breaking applications because of the issue, + // we are going to disable loading LLE applets before further fixes are done. + // auto process = NS::LaunchTitle(FS::MediaType::NAND, GetTitleIdForApplet(applet_id)); + // if (process) { + // return RESULT_SUCCESS; + // } // If we weren't able to load the native applet title, try to fallback to an HLE implementation. auto applet = HLE::Applets::Applet::Get(applet_id);