diff --git a/rpcs3/Emu/CPU/CPUThreadManager.cpp b/rpcs3/Emu/CPU/CPUThreadManager.cpp index 7d8c5c6072..af9368f338 100644 --- a/rpcs3/Emu/CPU/CPUThreadManager.cpp +++ b/rpcs3/Emu/CPU/CPUThreadManager.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/DbgCommand.h" +#include "Emu/IdManager.h" #include "CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "Emu/Cell/SPUThread.h" diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index c76ffbb4d9..5d59de0b27 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -13,7 +13,7 @@ #include #include -extern gcmInfo gcm_info; +//extern gcmInfo gcm_info; PPUThread& GetCurrentPPUThread() { diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index b52f9cb0ba..9e7557a600 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -4,17 +4,19 @@ #include "Emu/Memory/Memory.h" #include "Emu/System.h" +#include "Emu/IdManager.h" +#include "Emu/CPU/CPUThreadManager.h" +#include "Emu/Cell/PPUThread.h" #include "Emu/SysCalls/ErrorCodes.h" #include "Emu/SysCalls/lv2/sys_spu.h" #include "Emu/SysCalls/lv2/sys_event_flag.h" #include "Emu/SysCalls/lv2/sys_time.h" #include "Emu/Event.h" -#include "Emu/Cell/PPUThread.h" +#include "Emu/Cell/SPUDisAsm.h" #include "Emu/Cell/SPUThread.h" #include "Emu/Cell/SPUDecoder.h" #include "Emu/Cell/SPUInterpreter.h" -#include "Emu/Cell/SPUDisAsm.h" #include "Emu/Cell/SPURecompiler.h" #include diff --git a/rpcs3/Emu/FS/vfsDir.cpp b/rpcs3/Emu/FS/vfsDir.cpp index aaec50c1ff..94ed07096a 100644 --- a/rpcs3/Emu/FS/vfsDir.cpp +++ b/rpcs3/Emu/FS/vfsDir.cpp @@ -1,6 +1,7 @@ #include "stdafx.h" #include "Emu/System.h" +#include "VFS.h" #include "vfsDir.h" vfsDir::vfsDir() diff --git a/rpcs3/Emu/FS/vfsFile.cpp b/rpcs3/Emu/FS/vfsFile.cpp index a44d0f63f2..8d0bfb1ebb 100644 --- a/rpcs3/Emu/FS/vfsFile.cpp +++ b/rpcs3/Emu/FS/vfsFile.cpp @@ -1,6 +1,7 @@ #include "stdafx.h" #include "Emu/System.h" +#include "VFS.h" #include "vfsFile.h" vfsFile::vfsFile() diff --git a/rpcs3/Emu/FS/vfsFile.h b/rpcs3/Emu/FS/vfsFile.h index 4ab9ddc87d..4d4bcf7189 100644 --- a/rpcs3/Emu/FS/vfsFile.h +++ b/rpcs3/Emu/FS/vfsFile.h @@ -1,4 +1,5 @@ #pragma once +#include #include "vfsFileBase.h" class vfsFile : public vfsFileBase diff --git a/rpcs3/Emu/Io/Null/NullKeyboardHandler.h b/rpcs3/Emu/Io/Null/NullKeyboardHandler.h index d4c187f489..78d25be2b3 100644 --- a/rpcs3/Emu/Io/Null/NullKeyboardHandler.h +++ b/rpcs3/Emu/Io/Null/NullKeyboardHandler.h @@ -1,7 +1,6 @@ #pragma once #include "Emu/Io/KeyboardHandler.h" -#include //for memset class NullKeyboardHandler final : public KeyboardHandlerBase { diff --git a/rpcs3/Emu/Io/Null/NullMouseHandler.h b/rpcs3/Emu/Io/Null/NullMouseHandler.h index 4141190d82..883bca01ef 100644 --- a/rpcs3/Emu/Io/Null/NullMouseHandler.h +++ b/rpcs3/Emu/Io/Null/NullMouseHandler.h @@ -1,7 +1,6 @@ #pragma once #include "Emu/Io/MouseHandler.h" -#include //for memset class NullMouseHandler final : public MouseHandlerBase { diff --git a/rpcs3/Emu/Io/Null/NullPadHandler.h b/rpcs3/Emu/Io/Null/NullPadHandler.h index 5add5ae3c7..d770bf4a00 100644 --- a/rpcs3/Emu/Io/Null/NullPadHandler.h +++ b/rpcs3/Emu/Io/Null/NullPadHandler.h @@ -1,7 +1,6 @@ #pragma once #include "Emu/Io/PadHandler.h" -#include //for memset class NullPadHandler final : public PadHandlerBase { diff --git a/rpcs3/Emu/RSX/GSRender.cpp b/rpcs3/Emu/RSX/GSRender.cpp index b1111c19d7..acad3443c5 100644 --- a/rpcs3/Emu/RSX/GSRender.cpp +++ b/rpcs3/Emu/RSX/GSRender.cpp @@ -1,6 +1,7 @@ #include "stdafx.h" #include "Emu/System.h" +#include "GSManager.h" #include "GSRender.h" GSLock::GSLock(GSRender& renderer, GSLockType type) diff --git a/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp b/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp index 1e1b661111..41c068a329 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp @@ -12,6 +12,7 @@ extern "C" #include "libswresample/swresample.h" } +#include "Emu/CPU/CPUThreadManager.h" #include "cellPamf.h" #include "cellAdec.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp b/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp index b370717eb3..2b089fca0b 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellAudio.cpp @@ -7,7 +7,7 @@ #include "Utilities/SQueue.h" #include "Emu/Event.h" #include "Emu/SysCalls/lv2/sys_time.h" -//#include "Emu/Audio/AudioManager.h" +#include "Emu/Audio/AudioManager.h" #include "Emu/Audio/AudioDumper.h" #include "Emu/Audio/cellAudio.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp index 8b99c8098b..0569017e2a 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/CPU/CPUThreadManager.h" #include "cellPamf.h" #include "cellDmux.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellGame.cpp b/rpcs3/Emu/SysCalls/Modules/cellGame.cpp index 77bd65771f..f18acfeb64 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGame.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGame.cpp @@ -4,6 +4,7 @@ #include "Emu/SysCalls/Modules.h" #include "Utilities/rMsgBox.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFile.h" #include "Loader/PSF.h" #include "cellGame.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp index 5c994b3baf..f7ff06beed 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp @@ -4,6 +4,7 @@ #include "Emu/SysCalls/Modules.h" //#include "Emu/RSX/GCM.h" +#include "Emu/RSX/GSManager.h" //#include "Emu/SysCalls/lv2/sys_process.h" #include "cellGcmSys.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellResc.cpp b/rpcs3/Emu/SysCalls/Modules/cellResc.cpp index e27532d895..8106aa2cd8 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellResc.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellResc.cpp @@ -5,6 +5,7 @@ #include "cellSysutil.h" #include "Emu/RSX/sysutil_video.h" +#include "Emu/RSX/GSManager.h" #include "cellResc.h" Module *cellResc = nullptr; diff --git a/rpcs3/Emu/SysCalls/Modules/cellResc.h b/rpcs3/Emu/SysCalls/Modules/cellResc.h index bb83d43506..e45d54a7e0 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellResc.h +++ b/rpcs3/Emu/SysCalls/Modules/cellResc.h @@ -3,6 +3,8 @@ #define roundup(x,a) (((x)+(a)-1)&(~((a)-1))) #define SEVIRITY 80.f +#include "Emu/RSX/GCM.h" + enum { CELL_RESC_ERROR_NOT_INITIALIZED = 0x80210301, diff --git a/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp b/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp index 1c4b688c24..a423305781 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSysutil.cpp @@ -9,6 +9,9 @@ #include "Loader/PSF.h" #include "Emu/Audio/sysutil_audio.h" #include "Emu/RSX/sysutil_video.h" +#include "Emu/RSX/GSManager.h" +#include "Emu/Audio/AudioManager.h" +#include "Emu/FS/VFS.h" #include "cellMsgDialog.h" #include "cellGame.h" #include "cellSysutil.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellSysutil_SaveData.cpp b/rpcs3/Emu/SysCalls/Modules/cellSysutil_SaveData.cpp index 9a52f1b1ab..0d69f762a7 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSysutil_SaveData.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSysutil_SaveData.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFile.h" #include "Emu/FS/vfsDir.h" #include "Loader/PSF.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellUserInfo.cpp b/rpcs3/Emu/SysCalls/Modules/cellUserInfo.cpp index ddbfcfebff..490642db67 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellUserInfo.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellUserInfo.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFileBase.h" #include "cellUserInfo.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp index 73da9bb124..b8055e8afd 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp @@ -12,6 +12,7 @@ extern "C" #include "libavutil/imgutils.h" } +#include "Emu/CPU/CPUThreadManager.h" #include "cellPamf.h" #include "cellVdec.h" diff --git a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp index ce707c74c6..da49b51552 100644 --- a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp +++ b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Audio/cellAudio.h" #include "libmixer.h" diff --git a/rpcs3/Emu/SysCalls/Modules/sceNp.cpp b/rpcs3/Emu/SysCalls/Modules/sceNp.cpp index 32e4c88d91..baf395453e 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNp.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sceNp.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/FS/VFS.h" #include "Utilities/rFile.h" #include "Emu/FS/vfsDir.h" #include "Crypto/unedat.h" diff --git a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp index 8fa76a2f74..fbfe7fe03c 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp @@ -7,6 +7,7 @@ #include "Utilities/rXml.h" #include "Loader/TRP.h" #include "Loader/TROPUSR.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsDir.h" #include "Emu/FS/vfsFileBase.h" #include "Emu/SysCalls/lv2/sys_time.h" diff --git a/rpcs3/Emu/SysCalls/Modules/sys_fs.cpp b/rpcs3/Emu/SysCalls/Modules/sys_fs.cpp index 0f1ad2bafe..519d2a666e 100644 --- a/rpcs3/Emu/SysCalls/Modules/sys_fs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sys_fs.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFileBase.h" #include "Emu/SysCalls/lv2/lv2Fs.h" diff --git a/rpcs3/Emu/SysCalls/Static.cpp b/rpcs3/Emu/SysCalls/Static.cpp index 866f50fe6e..e662440431 100644 --- a/rpcs3/Emu/SysCalls/Static.cpp +++ b/rpcs3/Emu/SysCalls/Static.cpp @@ -193,6 +193,10 @@ void StaticFuncManager::StaticExecute(u32 code) void StaticFuncManager::StaticFinalize() { + for (SFunc *s : m_static_funcs_list) + { + delete s; + } m_static_funcs_list.clear(); } @@ -208,9 +212,6 @@ SFunc *StaticFuncManager::operator[](size_t i) StaticFuncManager::~StaticFuncManager() { - for (SFunc *s : m_static_funcs_list) - { - delete s; - } + StaticFinalize(); } diff --git a/rpcs3/Emu/SysCalls/lv2/lv2Fs.cpp b/rpcs3/Emu/SysCalls/lv2/lv2Fs.cpp index 15f1ee826d..a96b65f061 100644 --- a/rpcs3/Emu/SysCalls/lv2/lv2Fs.cpp +++ b/rpcs3/Emu/SysCalls/lv2/lv2Fs.cpp @@ -4,6 +4,7 @@ //#include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/Modules.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFile.h" #include "Emu/FS/vfsDir.h" #include "lv2Fs.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp b/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp index 8a99ac7f25..ab7fdbecec 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "sys_cond.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_interrupt.cpp b/rpcs3/Emu/SysCalls/lv2/sys_interrupt.cpp index 5ab4e2caac..4a4b9d67f1 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_interrupt.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_interrupt.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "Emu/Cell/RawSPUThread.h" #include "sys_interrupt.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_lwmutex.cpp b/rpcs3/Emu/SysCalls/lv2/sys_lwmutex.cpp index 61fb1141c5..6324423055 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_lwmutex.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_lwmutex.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "sys_lwmutex.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp b/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp index b9e4e57371..eca0b8f297 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "sys_mutex.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp index 7dfba3b29c..496725d203 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "sys_ppu_thread.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp index 1da8a4cf0b..d315f41039 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFile.h" #include "Crypto/unself.h" #include "sys_prx.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp index aebb57dff7..c539e7fc55 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUThread.h" #include "sys_semaphore.h" #include "sys_time.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_spinlock.cpp b/rpcs3/Emu/SysCalls/lv2/sys_spinlock.cpp index 454b23572b..c700ff475b 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_spinlock.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_spinlock.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include #include "sys_spinlock.h" SysCallBase sys_spinlock("sys_spinlock"); diff --git a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp index ddc53e80e7..e5637e226f 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/SysCalls.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/RawSPUThread.h" #include "Emu/FS/vfsFile.h" #include "Loader/ELF.h" diff --git a/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp b/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp index 7250394698..1b1667ddd3 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp @@ -4,6 +4,7 @@ #include "Emu/SysCalls/SysCalls.h" #include "Emu/Event.h" +#include #include "sys_timer.h" SysCallBase sys_timer("sys_timer"); diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 01dbe9790c..52577251da 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -14,6 +14,15 @@ #include "Emu/FS/vfsDeviceLocalFile.h" #include "Emu/DbgCommand.h" +#include "Emu/CPU/CPUThreadManager.h" +#include "Emu/IdManager.h" +#include "Emu/Io/Pad.h" +#include "Emu/Io/Keyboard.h" +#include "Emu/Io/Mouse.h" +#include "Emu/RSX/GSManager.h" +#include "Emu/Audio/AudioManager.h" +#include "Emu/FS/VFS.h" + #include "Loader/PSF.h" #include "../Crypto/unself.h" @@ -35,13 +44,37 @@ Emulator::Emulator() , m_mode(DisAsm) , m_rsx_callback(0) , m_ppu_callback_thr(0) + , m_thread_manager(new CPUThreadManager()) + , m_pad_manager(new PadManager()) + , m_keyboard_manager(new KeyboardManager()) + , m_mouse_manager(new MouseManager()) + , m_id_manager(new IdManager()) + , m_gs_manager(new GSManager()) + , m_audio_manager(new AudioManager()) + , m_callback_manager(new CallbackManager()) , m_event_manager(new EventManager()) , m_sfunc_manager(new StaticFuncManager()) , m_module_manager(new ModuleManager()) - , m_thread_manager(new CPUThreadManager()) + , m_vfs(new VFS()) { } +Emulator::~Emulator() +{ + delete m_thread_manager; + delete m_pad_manager; + delete m_keyboard_manager; + delete m_mouse_manager; + delete m_id_manager; + delete m_gs_manager; + delete m_audio_manager; + delete m_callback_manager; + delete m_event_manager; + delete m_sfunc_manager; + delete m_module_manager; + delete m_vfs; +} + void Emulator::Init() { while(m_modules_init.size()) @@ -157,13 +190,13 @@ void Emulator::Load() LOG_NOTICE(LOADER, "Loading '%s'...", m_path.c_str()); GetInfo().Reset(); - m_vfs.Init(m_path); + GetVFS().Init(m_path); LOG_NOTICE(LOADER, " "); //used to be skip_line LOG_NOTICE(LOADER, "Mount info:"); - for(uint i=0; i %s", m_vfs.m_devices[i]->GetPs3Path().c_str(), m_vfs.m_devices[i]->GetLocalPath().c_str()); + LOG_NOTICE(LOADER, "%s -> %s", GetVFS().m_devices[i]->GetPs3Path().c_str(), GetVFS().m_devices[i]->GetLocalPath().c_str()); } LOG_NOTICE(LOADER, " ");//used to be skip_line @@ -436,7 +469,7 @@ void Emulator::Stop() m_break_points.clear(); m_marked_points.clear(); - m_vfs.UnMountAll(); + GetVFS().UnMountAll(); GetGSManager().Close(); GetAudioManager().Close(); diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 3a233b4b05..e600e5ceb6 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -1,14 +1,8 @@ #pragma once #include -#include "Emu/CPU/CPUThreadManager.h" -#include "Emu/IdManager.h" -#include "Emu/Io/Pad.h" -#include "Emu/Io/Keyboard.h" -#include "Emu/Io/Mouse.h" -#include "Emu/RSX/GSManager.h" -#include "Emu/Audio/AudioManager.h" -#include "Emu/FS/VFS.h" +#include +#include #include "Loader/Loader.h" enum Status @@ -19,9 +13,19 @@ enum Status Ready, }; +class CPUThreadManager; +class PadManager; +class KeyboardManager; +class MouseManager; +class IdManager; +class GSManager; +class AudioManager; +struct CallbackManager; +class CPUThread; class EventManager; class ModuleManager; class StaticFuncManager; +struct VFS; struct EmuInfo { @@ -86,20 +90,19 @@ class Emulator std::vector m_break_points; std::vector m_marked_points; - CPUThreadManager *m_thread_manager; - PadManager m_pad_manager; - KeyboardManager m_keyboard_manager; - MouseManager m_mouse_manager; - IdManager m_id_manager; - GSManager m_gs_manager; - AudioManager m_audio_manager; - CallbackManager m_callback_manager; + CPUThreadManager* m_thread_manager; + PadManager* m_pad_manager; + KeyboardManager* m_keyboard_manager; + MouseManager* m_mouse_manager; + IdManager* m_id_manager; + GSManager* m_gs_manager; + AudioManager* m_audio_manager; + CallbackManager* m_callback_manager; CPUThread* m_ppu_callback_thr; - std::unique_ptr m_event_manager; - std::unique_ptr m_sfunc_manager; - std::unique_ptr m_module_manager; - - VFS m_vfs; + EventManager* m_event_manager; + StaticFuncManager* m_sfunc_manager; + ModuleManager* m_module_manager; + VFS* m_vfs; EmuInfo m_info; @@ -111,20 +114,21 @@ public: s32 m_sdk_version; Emulator(); + ~Emulator(); void Init(); void SetPath(const std::string& path, const std::string& elf_path = ""); void SetTitleID(const std::string& id); CPUThreadManager& GetCPU() { return *m_thread_manager; } - PadManager& GetPadManager() { return m_pad_manager; } - KeyboardManager& GetKeyboardManager() { return m_keyboard_manager; } - MouseManager& GetMouseManager() { return m_mouse_manager; } - IdManager& GetIdManager() { return m_id_manager; } - GSManager& GetGSManager() { return m_gs_manager; } - AudioManager& GetAudioManager() { return m_audio_manager; } - CallbackManager& GetCallbackManager() { return m_callback_manager; } - VFS& GetVFS() { return m_vfs; } + PadManager& GetPadManager() { return *m_pad_manager; } + KeyboardManager& GetKeyboardManager() { return *m_keyboard_manager; } + MouseManager& GetMouseManager() { return *m_mouse_manager; } + IdManager& GetIdManager() { return *m_id_manager; } + GSManager& GetGSManager() { return *m_gs_manager; } + AudioManager& GetAudioManager() { return *m_audio_manager; } + CallbackManager& GetCallbackManager() { return *m_callback_manager; } + VFS& GetVFS() { return *m_vfs; } std::vector& GetBreakPoints() { return m_break_points; } std::vector& GetMarkedPoints() { return m_marked_points; } CPUThread& GetCallbackThread() { return *m_ppu_callback_thr; } diff --git a/rpcs3/Gui/Debugger.cpp b/rpcs3/Gui/Debugger.cpp index ce4955c2cc..f3203eac9f 100644 --- a/rpcs3/Gui/Debugger.cpp +++ b/rpcs3/Gui/Debugger.cpp @@ -6,6 +6,7 @@ #include "rpcs3.h" #include "Debugger.h" #include "InterpreterDisAsm.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPCThread.h" diff --git a/rpcs3/Gui/DisAsmFrame.cpp b/rpcs3/Gui/DisAsmFrame.cpp index 1d87901943..74bfddc0de 100644 --- a/rpcs3/Gui/DisAsmFrame.cpp +++ b/rpcs3/Gui/DisAsmFrame.cpp @@ -4,6 +4,7 @@ #include "Emu/System.h" #include "DisAsmFrame.h" #include "Emu/FS/vfsLocalFile.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPCThread.h" #include "Gui/DisAsmFrame.h" #include "Emu/Cell/PPUDecoder.h" diff --git a/rpcs3/Gui/GameViewer.cpp b/rpcs3/Gui/GameViewer.cpp index 73e040c0af..d9119cbbcd 100644 --- a/rpcs3/Gui/GameViewer.cpp +++ b/rpcs3/Gui/GameViewer.cpp @@ -4,6 +4,7 @@ #include "Utilities/rFile.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsDir.h" #include "Emu/FS/vfsFile.h" #include "GameViewer.h" diff --git a/rpcs3/Gui/InterpreterDisAsm.cpp b/rpcs3/Gui/InterpreterDisAsm.cpp index b0eff5c67f..674dd6bd64 100644 --- a/rpcs3/Gui/InterpreterDisAsm.cpp +++ b/rpcs3/Gui/InterpreterDisAsm.cpp @@ -4,6 +4,7 @@ #include "Emu/System.h" #include "rpcs3.h" #include "InterpreterDisAsm.h" +#include "Emu/CPU/CPUThreadManager.h" #include "Emu/Cell/PPUDecoder.h" #include "Emu/Cell/PPUDisAsm.h" #include "Emu/Cell/SPUDecoder.h" diff --git a/rpcs3/Gui/KernelExplorer.cpp b/rpcs3/Gui/KernelExplorer.cpp index d54a33fcc5..42dd1e2241 100644 --- a/rpcs3/Gui/KernelExplorer.cpp +++ b/rpcs3/Gui/KernelExplorer.cpp @@ -3,6 +3,7 @@ #include "Emu/Memory/Memory.h" #include "Emu/System.h" +#include "Emu/IdManager.h" #include "KernelExplorer.h" KernelExplorer::KernelExplorer(wxWindow* parent) diff --git a/rpcs3/Gui/RSXDebugger.cpp b/rpcs3/Gui/RSXDebugger.cpp index 46f23308b1..441bb14389 100644 --- a/rpcs3/Gui/RSXDebugger.cpp +++ b/rpcs3/Gui/RSXDebugger.cpp @@ -7,7 +7,8 @@ #include "RSXDebugger.h" #include "Emu/RSX/sysutil_video.h" -#include "Emu/RSX/GCM.h" +#include "Emu/RSX/GSManager.h" +//#include "Emu/RSX/GCM.h" #include "MemoryViewer.h" diff --git a/rpcs3/Gui/VFSManager.h b/rpcs3/Gui/VFSManager.h index 63260b3e6c..186f136d34 100644 --- a/rpcs3/Gui/VFSManager.h +++ b/rpcs3/Gui/VFSManager.h @@ -1,4 +1,5 @@ #pragma once +#include "Emu/FS/VFS.h" class VFSEntrySettingsDialog : public wxDialog { diff --git a/rpcs3/Loader/TROPUSR.cpp b/rpcs3/Loader/TROPUSR.cpp index 62646c83fb..1464d9189c 100644 --- a/rpcs3/Loader/TROPUSR.cpp +++ b/rpcs3/Loader/TROPUSR.cpp @@ -1,6 +1,7 @@ #include "stdafx.h" #include "Utilities/Log.h" #include "Utilities/rXml.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFileBase.h" #include "Emu/System.h" #include "TROPUSR.h" diff --git a/rpcs3/Loader/TRP.cpp b/rpcs3/Loader/TRP.cpp index 2127e4acf6..8f3e55c4ab 100644 --- a/rpcs3/Loader/TRP.cpp +++ b/rpcs3/Loader/TRP.cpp @@ -1,6 +1,7 @@ #include "stdafx.h" #include "Utilities/Log.h" #include "Emu/System.h" +#include "Emu/FS/VFS.h" #include "Emu/FS/vfsFile.h" #include "TRP.h" diff --git a/rpcs3/rpcs3.cpp b/rpcs3/rpcs3.cpp index 3b32d28c5c..222b8c8bb9 100644 --- a/rpcs3/rpcs3.cpp +++ b/rpcs3/rpcs3.cpp @@ -5,12 +5,15 @@ #include "Gui/ConLogFrame.h" #include "Emu/GameInfo.h" +#include "Emu/Io/Keyboard.h" #include "Emu/Io/Null/NullKeyboardHandler.h" #include "Emu/Io/Windows/WindowsKeyboardHandler.h" +#include "Emu/Io/Mouse.h" #include "Emu/Io/Null/NullMouseHandler.h" #include "Emu/Io/Windows/WindowsMouseHandler.h" +#include "Emu/Io/Pad.h" #include "Emu/Io/Null/NullPadHandler.h" #include "Emu/Io/Windows/WindowsPadHandler.h" #if defined(_WIN32)