1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 18:53:28 +01:00

Fix PPU SELF Precompilation

This commit is contained in:
Elad Ashkenazi 2023-08-14 17:00:46 +03:00
parent 0e23b89352
commit 968762c135
4 changed files with 6 additions and 5 deletions

View File

@ -2243,7 +2243,6 @@ bool ppu_load_exec(const ppu_exec_object& elf, bool virtual_load, const std::str
else
{
g_ps3_process_info = old_process_info;
Emu.ConfigurePPUCache();
}
if (!load_libs.empty())

View File

@ -11,6 +11,7 @@
#include "Emu/Memory/vm_locking.h"
#include "Emu/RSX/Core/RSXReservationLock.hpp"
#include "Emu/VFS.h"
#include "Emu/vfs_config.h"
#include "Emu/system_progress.hpp"
#include "Emu/system_utils.hpp"
#include "PPUThread.h"
@ -3574,7 +3575,7 @@ extern void ppu_precompile(std::vector<std::string>& dir_queue, std::vector<ppu_
break;
}
if (std::memcpy(main_module.sha1, _main.sha1, sizeof(_main.sha1)) == 0)
if (std::memcmp(main_module.sha1, _main.sha1, sizeof(_main.sha1)) == 0)
{
break;
}
@ -3587,6 +3588,7 @@ extern void ppu_precompile(std::vector<std::string>& dir_queue, std::vector<ppu_
obj.clear(), src.close(); // Clear decrypted file and elf object memory
_main.name = ' '; // Make ppu_finalize work
Emu.ConfigurePPUCache(!Emu.IsPathInsideDir(_main.path, g_cfg_vfs.get_dev_flash()));
ppu_initialize(_main);
ppu_finalize(_main);
_main = {};

View File

@ -3243,13 +3243,13 @@ s32 error_code::error_report(s32 result, const logs::message* channel, const cha
return result;
}
void Emulator::ConfigurePPUCache() const
void Emulator::ConfigurePPUCache(bool with_title_id) const
{
auto& _main = g_fxo->get<main_ppu_module>();
_main.cache = rpcs3::utils::get_cache_dir();
if (!m_title_id.empty() && m_cat != "1P")
if (with_title_id && !m_title_id.empty() && m_cat != "1P")
{
_main.cache += GetTitleID();
_main.cache += '/';

View File

@ -353,7 +353,7 @@ public:
std::string GetFormattedTitle(double fps) const;
void ConfigurePPUCache() const;
void ConfigurePPUCache(bool with_title_id = true) const;
std::set<std::string> GetGameDirs() const;
void AddGamesFromDir(const std::string& path);