diff --git a/rpcs3/Emu/IdManager.h b/rpcs3/Emu/IdManager.h index 1a410ff2ab..d7b093133c 100644 --- a/rpcs3/Emu/IdManager.h +++ b/rpcs3/Emu/IdManager.h @@ -866,3 +866,13 @@ public: return {ptr, static_cast(ptr.get())}; } }; + +#include "Utilities/typemap.h" + +extern utils::typemap g_typemap; + +constexpr utils::typemap* g_idm = &g_typemap; + +using utils::id_new; +using utils::id_any; +using utils::id_always; diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 46a06a429a..0cf0fc8703 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -44,6 +44,8 @@ #include "Emu/RSX/VK/VulkanAPI.h" #endif +utils::typemap g_typemap{nullptr}; + cfg_root g_cfg; bool g_use_rtm; @@ -52,8 +54,6 @@ std::string g_cfg_defaults; extern atomic_t g_thread_count; -extern u64 get_system_time(); - extern void ppu_load_exec(const ppu_exec_object&); extern void spu_load_exec(const spu_exec_object&); extern void ppu_initialize(const ppu_module&); @@ -266,6 +266,7 @@ void Emulator::Init() idm::init(); fxm::init(); + g_idm->init(); // Reset defaults, cache them g_cfg.from_default(); @@ -1381,6 +1382,7 @@ void Emulator::Stop(bool restart) lv2_obj::cleanup(); idm::clear(); fxm::clear(); + g_idm->init(); LOG_NOTICE(GENERAL, "Objects cleared..."); diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 76d9bba34f..6a8b7e4cb2 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -7,6 +7,8 @@ #include #include +u64 get_system_time(); + enum class system_state { running,