diff --git a/rpcs3/Emu/CPU/CPUThread.h b/rpcs3/Emu/CPU/CPUThread.h index bde7140c8b..9568e80dbd 100644 --- a/rpcs3/Emu/CPU/CPUThread.h +++ b/rpcs3/Emu/CPU/CPUThread.h @@ -1,6 +1,6 @@ #pragma once #include "Emu/Memory/MemoryBlock.h" -#include "Emu/Cell/PPCDecoder.h" +#include "Emu/CPU/CPUDecoder.h" enum CPUThreadType { diff --git a/rpcs3/Emu/Cell/MFC.h b/rpcs3/Emu/Cell/MFC.h index 7031505600..c928078c46 100644 --- a/rpcs3/Emu/Cell/MFC.h +++ b/rpcs3/Emu/Cell/MFC.h @@ -163,16 +163,16 @@ struct DMAC if(proxy_pos) { DMAC_Proxy p = proxy[0]; - memcpy(proxy, proxy + 1, proxy_pos--); + memcpy(proxy, proxy + 1, --proxy_pos * sizeof(DMAC_Proxy)); switch(p.cmd) { case MFC_PUT_CMD: - memcpy(Memory + ls_offset + p.lsa, Memory + p.ea, p.size); + memcpy(Memory + p.ea, Memory + ls_offset + p.lsa, p.size); break; case MFC_GET_CMD: - memcpy(Memory + p.ea, Memory + ls_offset + p.lsa, p.size); + memcpy(Memory + ls_offset + p.lsa, Memory + p.ea, p.size); break; default: diff --git a/rpcs3/Emu/Cell/RawSPUThread.cpp b/rpcs3/Emu/Cell/RawSPUThread.cpp index 6cf6b212f8..86d8addf0c 100644 --- a/rpcs3/Emu/Cell/RawSPUThread.cpp +++ b/rpcs3/Emu/Cell/RawSPUThread.cpp @@ -11,7 +11,14 @@ RawSPUThread::RawSPUThread(u32 index, CPUThreadType type) RawSPUThread::~RawSPUThread() { - MemoryBlock::Delete(); + for(int i=0; iDecodeMemory(PC + m_offset)); for(uint i=0; i : public fun public: binder_func_10(func_t call) : func_caller(), m_call(call) {} - virtual void operator()() { declCPU(); m_call(ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8), ARG(9), ARG(10), ARG(11)); } + virtual void operator()() { declCPU(); m_call(ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8), ARG(9), ARG(10)); } }; template