From 634f353ed4b3e2077ca89b477d81dbdfe9799ca3 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sat, 22 Apr 2017 17:58:40 +0300 Subject: [PATCH] Fix module initialization --- rpcs3/Emu/Cell/PPUModule.cpp | 4 ++++ rpcs3/Emu/Cell/PPUModule.h | 5 +++++ rpcs3/Emu/PSP2/ARMv7Module.cpp | 5 +++++ rpcs3/Emu/PSP2/ARMv7Module.h | 5 +++++ 4 files changed, 19 insertions(+) diff --git a/rpcs3/Emu/Cell/PPUModule.cpp b/rpcs3/Emu/Cell/PPUModule.cpp index fe03234a83..7ea600d30e 100644 --- a/rpcs3/Emu/Cell/PPUModule.cpp +++ b/rpcs3/Emu/Cell/PPUModule.cpp @@ -377,7 +377,11 @@ static void ppu_initialize_modules(const std::shared_ptr& link for (auto& module : registered) { LOG_TRACE(LOADER, "Registered static module: %s", module->name); + } + for (auto& pair : ppu_module_manager::get()) + { + const auto module = pair.second; auto& linkage = link->modules[module->name]; for (auto& function : module->functions) diff --git a/rpcs3/Emu/Cell/PPUModule.h b/rpcs3/Emu/Cell/PPUModule.h index 3bd1c73b30..8d93cfb51a 100644 --- a/rpcs3/Emu/Cell/PPUModule.h +++ b/rpcs3/Emu/Cell/PPUModule.h @@ -106,6 +106,11 @@ public: return info; } + static const auto& get() + { + return access(); + } + static const ppu_static_module cellAdec; static const ppu_static_module cellAtrac; static const ppu_static_module cellAtracMulti; diff --git a/rpcs3/Emu/PSP2/ARMv7Module.cpp b/rpcs3/Emu/PSP2/ARMv7Module.cpp index e4aa5997ad..1d45610725 100644 --- a/rpcs3/Emu/PSP2/ARMv7Module.cpp +++ b/rpcs3/Emu/PSP2/ARMv7Module.cpp @@ -225,6 +225,11 @@ static void arm_initialize_modules() for (auto& module : registered) { LOG_TRACE(LOADER, "Registered static module: %s", module->name); + } + + for (auto& pair : arm_module_manager::get()) + { + const auto module = pair.second; for (auto& function : module->functions) { diff --git a/rpcs3/Emu/PSP2/ARMv7Module.h b/rpcs3/Emu/PSP2/ARMv7Module.h index 52d67f8e4b..6cf5e400eb 100644 --- a/rpcs3/Emu/PSP2/ARMv7Module.h +++ b/rpcs3/Emu/PSP2/ARMv7Module.h @@ -95,6 +95,11 @@ public: return info; } + static const auto& get() + { + return access(); + } + static const arm_static_module SceAppMgr; static const arm_static_module SceAppUtil; static const arm_static_module SceAudio;