diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 63835db35f..a86eb6670b 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -4275,9 +4275,17 @@ extern void ppu_precompile(std::vector& dir_queue, std::vector 0 && src.open(path)) + { + src = decrypt_self(std::move(src), reinterpret_cast(&Emu.klic[0]), nullptr, true); + } + if (!src) { ppu_log.notice("Failed to decrypt '%s'", path); + + g_progr_ftotal_bits -= file_size; + continue; } @@ -4459,9 +4467,17 @@ extern void ppu_precompile(std::vector& dir_queue, std::vector 0 && src.open(path)) + { + src = decrypt_self(std::move(src), reinterpret_cast(&Emu.klic[0]), nullptr, true); + } + if (!src) { ppu_log.notice("Failed to decrypt '%s'", path); + + g_progr_ftotal_bits -= file_size; + continue; } @@ -4631,7 +4647,7 @@ extern void ppu_initialize() } // Avoid compilation if main's cache exists or it is a standalone SELF with no PARAM.SFO - if (compile_main && g_cfg.core.llvm_precompilation && !Emu.GetTitleID().empty() && !Emu.IsChildProcess()) + if (compile_main && g_cfg.core.llvm_precompilation && !Emu.GetTitleID().empty()) { // Try to add all related directories const std::set dirs = Emu.GetGameDirs();