diff --git a/rpcs3/Emu/ARMv7/ARMv7Context.h b/rpcs3/Emu/ARMv7/ARMv7Context.h index c0aebaff78..873f039555 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Context.h +++ b/rpcs3/Emu/ARMv7/ARMv7Context.h @@ -79,20 +79,26 @@ struct ARMv7Context { struct { - u8 state : 5; - u8 cond : 3; + u8 shift_state : 5; + u8 cond_base : 3; + }; + + struct + { + u8 check_state : 4; + u8 condition : 4; }; u8 IT; u32 advance() { - const u32 res = (state & 0xf) ? (cond << 1 | state >> 4) : 0xe /* true */; + const u32 res = check_state ? condition : 0xe /* always true */; - state <<= 1; - if ((state & 0xf) == 0) // if no d + shift_state <<= 1; + if (!check_state) { - IT = 0; // clear ITSTATE + IT = 0; // clear } return res; @@ -100,7 +106,7 @@ struct ARMv7Context operator bool() const { - return (state & 0xf) != 0; + return check_state; } } ITSTATE; diff --git a/rpcs3/Emu/ARMv7/ARMv7Decoder.cpp b/rpcs3/Emu/ARMv7/ARMv7Decoder.cpp index f913bcbb8a..8a361014f4 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Decoder.cpp +++ b/rpcs3/Emu/ARMv7/ARMv7Decoder.cpp @@ -140,7 +140,7 @@ const ARMv7_opcode_t ARMv7_opcode_table[] = ARMv7_OP4(0x0fe0, 0x0010, 0x0020, 0x0000, A1, EOR_REG), ARMv7_OP4(0x0fe0, 0x0090, 0x0020, 0x0010, A1, EOR_RSR), - ARMv7_OP2(0xff00, 0xbf00, T1, IT), + ARMv7_OP2(0xff00, 0xbf00, T1, IT, SKIP_IF( BF(0, 3) == 0 )), ARMv7_OP2(0xf800, 0xc800, T1, LDM), ARMv7_OP4(0xffd0, 0x2000, 0xe890, 0x0000, T2, LDM), @@ -1208,10 +1208,14 @@ void armv7_decoder_initialize(u32 addr, u32 end_addr, bool dump) { LOG_ERROR(ARMv7, "Unknown instruction found at address 0x%08x: %04x %04x", addr, code.code1, code.code0); addr += 4; + continue; } - else + + // Proceed with found: + + if (dump) { - if (dump) if (found->length == 2) + if (found->length == 2) { LOG_NOTICE(ARMv7, "0x%08x: %04x %s", addr, code.code0, found->name); } @@ -1219,34 +1223,39 @@ void armv7_decoder_initialize(u32 addr, u32 end_addr, bool dump) { LOG_NOTICE(ARMv7, "0x%08x: %04x %04x %s", addr, code.code1, code.code0, found->name); } + } - if (found->func == ARMv7_instrs::BLX && found->type == T2) + if (found->func == ARMv7_instrs::BLX && found->type == T2) + { + const u32 s = (code.data >> 26) & 0x1; + const u32 i1 = (code.data >> 13) & 0x1 ^ s ^ 1; + const u32 i2 = (code.data >> 11) & 0x1 ^ s ^ 1; + const u32 target = (addr + 4 & ~3) + sign<25, u32>(s << 24 | i2 << 23 | i1 << 22 | (code.data & 0x3ff0000) >> 4 | (code.data & 0x7ff) << 1); + + // possibly a call to imported function: + if (target >= end_addr && ((target - end_addr) % 16) == 0 && vm::psv::read16(target) == 0xf870) { - const u32 s = (code.data >> 26) & 0x1; - const u32 i1 = (code.data >> 13) & 0x1 ^ s ^ 1; - const u32 i2 = (code.data >> 11) & 0x1 ^ s ^ 1; - const u32 target = (addr + 4 & ~3) + sign<25, u32>(s << 24 | i2 << 23 | i1 << 22 | (code.data & 0x3ff0000) >> 4 | (code.data & 0x7ff) << 1); + const u32 instr = vm::psv::read32(target); - // possibly a call to imported function: - if (target >= end_addr && ((target - end_addr) % 16) == 0 && vm::psv::read16(target) == 0xf870) + // check if not "unimplemented" + if (instr >> 16) { - const u32 instr = vm::psv::read32(target); - - // check if not "unimplemented" - if (instr >> 16) - { - // replace BLX with "hack" instruction directly, it can help to see where it was called from - vm::psv::write32(addr, instr); - } - } - else - { - LOG_ERROR(ARMv7, "Unrecognized BLX call found at adddress 0x%08x (target=0x%08x)", addr, target); + // replace BLX with "hack" instruction directly, it can help to see where it was called from + vm::psv::write32(addr, instr); } } - - addr += found->length; + else + { + LOG_ERROR(ARMv7, "Unrecognized BLX call found at adddress 0x%08x (target=0x%08x)", addr, target); + } } + + //if (found->func == ARMv7_instrs::IT) + //{ + // LOG_ERROR(ARMv7, "IT instruction found at address 0x%08x", addr); + //} + + addr += found->length; } while (vm::psv::read16(addr) == 0xf870) diff --git a/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp b/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp index e6cd7dc651..71d91acad9 100644 --- a/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp +++ b/rpcs3/Emu/ARMv7/ARMv7Interpreter.cpp @@ -965,7 +965,7 @@ void ARMv7_instrs::BLX(ARMv7Context& context, const ARMv7Code code, const ARMv7_ } case A2: { - cond = 15; + cond = 0xe; // always true newLR = (context.thread.PC + 4) - 4; target = (context.thread.PC + 4 | 1) + sign<25, u32>((code.data & 0xffffff) << 2 | (code.data & 0x1000000) >> 23); break; @@ -1871,7 +1871,7 @@ void ARMv7_instrs::MOV_REG(ARMv7Context& context, const ARMv7Code code, const AR } case T2: { - cond = 15; + cond = 0xe; // always true d = (code.data & 0x7); m = (code.data & 0x38) >> 3; set_flags = true; diff --git a/rpcs3/Emu/ARMv7/Modules/psv_event_flag.cpp b/rpcs3/Emu/ARMv7/Modules/psv_event_flag.cpp new file mode 100644 index 0000000000..14c9af11bc --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/psv_event_flag.cpp @@ -0,0 +1,13 @@ +#include "stdafx.h" +#include "Emu/Memory/Memory.h" +#include "Emu/ARMv7/PSVFuncList.h" +#include "Emu/ARMv7/PSVObjectList.h" +#include "sceLibKernel.h" +#include "psv_event_flag.h" + +psv_event_flag_t::psv_event_flag_t(const char* name, u32 attr, u32 pattern) + : attr(attr) + , pattern(pattern) +{ + strcpy_trunc(this->name, name); +} diff --git a/rpcs3/Emu/ARMv7/Modules/psv_event_flag.h b/rpcs3/Emu/ARMv7/Modules/psv_event_flag.h new file mode 100644 index 0000000000..bc1cb2d4e9 --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/psv_event_flag.h @@ -0,0 +1,21 @@ +#pragma once + +struct psv_event_flag_t +{ + char name[32]; + u32 attr; + u32 pattern; + +private: + psv_event_flag_t() = delete; + psv_event_flag_t(const psv_event_flag_t&) = delete; + psv_event_flag_t(psv_event_flag_t&&) = delete; + + psv_event_flag_t& operator =(const psv_event_flag_t&) = delete; + psv_event_flag_t& operator =(psv_event_flag_t&&) = delete; + +public: + psv_event_flag_t(const char* name, u32 attr, u32 pattern); +}; + +extern psv_object_list_t g_psv_ef_list; diff --git a/rpcs3/Emu/ARMv7/Modules/psv_sema.cpp b/rpcs3/Emu/ARMv7/Modules/psv_sema.cpp new file mode 100644 index 0000000000..20527eb5b3 --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/psv_sema.cpp @@ -0,0 +1,14 @@ +#include "stdafx.h" +#include "Emu/Memory/Memory.h" +#include "Emu/ARMv7/PSVFuncList.h" +#include "Emu/ARMv7/PSVObjectList.h" +#include "sceLibKernel.h" +#include "psv_sema.h" + +psv_sema_t::psv_sema_t(const char* name, u32 attr, s32 init_value, s32 max_value) + : attr(attr) + , value(init_value) + , max(max_value) +{ + strcpy_trunc(this->name, name); +} diff --git a/rpcs3/Emu/ARMv7/Modules/psv_sema.h b/rpcs3/Emu/ARMv7/Modules/psv_sema.h new file mode 100644 index 0000000000..30b3fa6c4c --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/psv_sema.h @@ -0,0 +1,23 @@ +#pragma once + +struct psv_sema_t +{ + char name[32]; + u32 attr; + s32 value; + s32 max; + +private: + psv_sema_t() = delete; + psv_sema_t(const psv_sema_t&) = delete; + psv_sema_t(psv_sema_t&&) = delete; + + psv_sema_t& operator =(const psv_sema_t&) = delete; + psv_sema_t& operator =(psv_sema_t&&) = delete; + +public: + psv_sema_t(const char* name, u32 attr, s32 init_value, s32 max_value); + +}; + +extern psv_object_list_t g_psv_sema_list; diff --git a/rpcs3/Emu/ARMv7/Modules/psv_sema_object.cpp b/rpcs3/Emu/ARMv7/Modules/psv_sema_object.cpp deleted file mode 100644 index 0e67d72444..0000000000 --- a/rpcs3/Emu/ARMv7/Modules/psv_sema_object.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "stdafx.h" -#include "Emu/Memory/Memory.h" -#include "Emu/ARMv7/PSVFuncList.h" -#include "Emu/ARMv7/PSVObjectList.h" -#include "sceLibKernel.h" -#include "psv_sema_object.h" diff --git a/rpcs3/Emu/ARMv7/Modules/psv_sema_object.h b/rpcs3/Emu/ARMv7/Modules/psv_sema_object.h deleted file mode 100644 index ee643cab4c..0000000000 --- a/rpcs3/Emu/ARMv7/Modules/psv_sema_object.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -struct psv_sema_t -{ - char name[32]; - u32 attr; - s32 initCount; - s32 maxCount; -}; - -extern psv_object_list_t g_psv_sema_list; diff --git a/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp b/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp index e033e4ef22..25fa75c47c 100644 --- a/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp +++ b/rpcs3/Emu/ARMv7/Modules/sceLibKernel.cpp @@ -8,7 +8,8 @@ #include "Emu/ARMv7/ARMv7Thread.h" #include "sceLibKernel.h" -#include "psv_sema_object.h" +#include "psv_sema.h" +#include "psv_event_flag.h" #define RETURN_ERROR(code) { Emu.Pause(); sceLibKernel.Error("%s() failed: %s", __FUNCTION__, #code); return code; } @@ -393,7 +394,13 @@ s32 sceKernelWaitMultipleEventsCB(vm::psv::ptr pWaitEventLis s32 sceKernelCreateEventFlag(vm::psv::ptr pName, u32 attr, u32 initPattern, vm::psv::ptr pOptParam) { - throw __FUNCTION__; + sceLibKernel.Error("sceKernelCreateEventFlag(pName=0x%x, attr=0x%x, initPattern=0x%x, pOptParam=0x%x)", pName, attr, initPattern, pOptParam); + + std::shared_ptr ef(new psv_event_flag_t(pName.get_ptr(), attr, initPattern)); + + const s32 id = g_psv_ef_list.add(ef); + + return id; } s32 sceKernelDeleteEventFlag(s32 evfId) @@ -452,17 +459,10 @@ s32 sceKernelCreateSema(vm::psv::ptr pName, u32 attr, s32 initCount, { sceLibKernel.Error("sceKernelCreateSema(pName=0x%x, attr=0x%x, initCount=%d, maxCount=%d, pOptParam=0x%x)", pName, attr, initCount, maxCount, pOptParam); - std::shared_ptr sema(new psv_sema_t); - - strcpy_trunc(sema->name, pName.get_ptr()); - sema->attr = attr; - sema->initCount = initCount; - sema->maxCount = maxCount; + std::shared_ptr sema(new psv_sema_t(pName.get_ptr(), attr, initCount, maxCount)); const s32 id = g_psv_sema_list.add(sema); - sceLibKernel.Error("*** semaphore created -> id=0x%x", id); - return id; } diff --git a/rpcs3/Emu/ARMv7/Modules/sceLibstdcxx.cpp b/rpcs3/Emu/ARMv7/Modules/sceLibstdcxx.cpp index 44b3b75ff8..2342f1f8c5 100644 --- a/rpcs3/Emu/ARMv7/Modules/sceLibstdcxx.cpp +++ b/rpcs3/Emu/ARMv7/Modules/sceLibstdcxx.cpp @@ -25,7 +25,8 @@ namespace sce_libstdcxx_func } } -#define REG_FUNC(nid, name) reg_psv_func(nid, &sceLibstdcxx, #name, &sce_libstdcxx_func::name) +// Attention: find and set correct original mangled name in third parameter, for example: REG_FUNC(0xAE71DC3, operator_new_nothrow, "_ZnwjRKSt9nothrow_t"); +#define REG_FUNC(nid, name, orig_name) reg_psv_func(nid, &sceLibstdcxx, orig_name, &sce_libstdcxx_func::name) psv_log_base sceLibstdcxx("SceLibstdcxx", []() { @@ -376,9 +377,9 @@ psv_log_base sceLibstdcxx("SceLibstdcxx", []() //REG_FUNC(0xE7889A5B, _Unwind_VRS_Get); //REG_FUNC(0xF106D050, _Unwind_VRS_Pop); //REG_FUNC(0x91CDA2F9, _Unwind_VRS_Set); - REG_FUNC(0x173E7421, __aeabi_unwind_cpp_pr0); - REG_FUNC(0x3C78DDE3, __aeabi_unwind_cpp_pr1); - REG_FUNC(0xF95BDD36, __aeabi_unwind_cpp_pr2); + REG_FUNC(0x173E7421, __aeabi_unwind_cpp_pr0, "__aeabi_unwind_cpp_pr0"); + REG_FUNC(0x3C78DDE3, __aeabi_unwind_cpp_pr1, "__aeabi_unwind_cpp_pr1"); + REG_FUNC(0xF95BDD36, __aeabi_unwind_cpp_pr2, "__aeabi_unwind_cpp_pr2"); //REG_FUNC(0x8C93EFDA, __cxa_allocate_exception); //REG_FUNC(0x6165EE89, __cxa_begin_catch); //REG_FUNC(0x5D74285C, __cxa_begin_cleanup); diff --git a/rpcs3/Emu/ARMv7/Modules/scePerf.cpp b/rpcs3/Emu/ARMv7/Modules/scePerf.cpp new file mode 100644 index 0000000000..d83e6d5f22 --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/scePerf.cpp @@ -0,0 +1,90 @@ +#include "stdafx.h" +#include "Emu/System.h" +#include "Emu/ARMv7/PSVFuncList.h" + +extern psv_log_base scePerf; + +s32 scePerfArmPmonReset(s32 threadId) +{ + scePerf.Todo("scePerfArmPmonReset(threadId=0x%x)", threadId); + + return SCE_OK; +} + +s32 scePerfArmPmonSelectEvent(s32 threadId, u32 counter, u8 eventCode) +{ + throw __FUNCTION__; +} + +s32 scePerfArmPmonStart(s32 threadId) +{ + throw __FUNCTION__; +} + +s32 scePerfArmPmonStop(s32 threadId) +{ + throw __FUNCTION__; +} + +s32 scePerfArmPmonGetCounterValue(s32 threadId, u32 counter, vm::psv::ptr pValue) +{ + throw __FUNCTION__; +} + +s32 scePerfArmPmonSoftwareIncrement(u32 mask) +{ + throw __FUNCTION__; +} + +u64 scePerfGetTimebaseValue() +{ + throw __FUNCTION__; +} + +u32 scePerfGetTimebaseFrequency() +{ + throw __FUNCTION__; +} + +s32 _sceRazorCpuInit(vm::psv::ptr pBufferBase, u32 bufferSize, u32 numPerfCounters, vm::psv::ptr> psceRazorVars) +{ + throw __FUNCTION__; +} + +s32 sceRazorCpuPushMarker(vm::psv::ptr szLabel) +{ + throw __FUNCTION__; +} + +s32 sceRazorCpuPopMarker() +{ + throw __FUNCTION__; +} + +s32 sceRazorCpuSync() +{ + throw __FUNCTION__; +} + +#define REG_FUNC(nid, name) reg_psv_func(nid, &scePerf, #name, name) + +psv_log_base scePerf("ScePerf", []() +{ + scePerf.on_load = nullptr; + scePerf.on_unload = nullptr; + scePerf.on_stop = nullptr; + + REG_FUNC(0x35151735, scePerfArmPmonReset); + REG_FUNC(0x63CBEA8B, scePerfArmPmonSelectEvent); + REG_FUNC(0xC9D969D5, scePerfArmPmonStart); + REG_FUNC(0xD1A40F54, scePerfArmPmonStop); + REG_FUNC(0x6132A497, scePerfArmPmonGetCounterValue); + //REG_FUNC(0x12F6C708, scePerfArmPmonSetCounterValue); + REG_FUNC(0x4264B4E7, scePerfArmPmonSoftwareIncrement); + REG_FUNC(0xBD9615E5, scePerfGetTimebaseValue); + REG_FUNC(0x78EA4FFB, scePerfGetTimebaseFrequency); + REG_FUNC(0x7AD6AC30, _sceRazorCpuInit); + REG_FUNC(0xC3DE4C0A, sceRazorCpuPushMarker); + REG_FUNC(0xDC3224C3, sceRazorCpuPopMarker); + REG_FUNC(0x4F1385E3, sceRazorCpuSync); +}); \ No newline at end of file diff --git a/rpcs3/Emu/ARMv7/Modules/sceSysmodule.cpp b/rpcs3/Emu/ARMv7/Modules/sceSysmodule.cpp new file mode 100644 index 0000000000..6584de337a --- /dev/null +++ b/rpcs3/Emu/ARMv7/Modules/sceSysmodule.cpp @@ -0,0 +1,39 @@ +#include "stdafx.h" +#include "Emu/System.h" +#include "Emu/ARMv7/PSVFuncList.h" + +extern psv_log_base sceSysmodule; + +s32 sceSysmoduleLoadModule(u16 id) +{ + sceSysmodule.Todo("sceSysmoduleLoadModule(id=0x%04x)", id); + + return SCE_OK; // loading succeeded +} + +s32 sceSysmoduleUnloadModule(u16 id) +{ + sceSysmodule.Todo("sceSysmoduleUnloadModule(id=0x%04x)", id); + + return SCE_OK; // unloading succeeded +} + +s32 sceSysmoduleIsLoaded(u16 id) +{ + sceSysmodule.Todo("sceSysmoduleIsLoaded(id=0x%04x)", id); + + return SCE_OK; // module is loaded +} + +#define REG_FUNC(nid, name) reg_psv_func(nid, &sceSysmodule, #name, name) + +psv_log_base sceSysmodule("SceSysmodule", []() +{ + sceSysmodule.on_load = nullptr; + sceSysmodule.on_unload = nullptr; + sceSysmodule.on_stop = nullptr; + + REG_FUNC(0x79A0160A, sceSysmoduleLoadModule); + REG_FUNC(0x31D87805, sceSysmoduleUnloadModule); + REG_FUNC(0x53099B7A, sceSysmoduleIsLoaded); +}); diff --git a/rpcs3/Emu/ARMv7/PSVFuncList.cpp b/rpcs3/Emu/ARMv7/PSVFuncList.cpp index bd17628f20..05d9b4c483 100644 --- a/rpcs3/Emu/ARMv7/PSVFuncList.cpp +++ b/rpcs3/Emu/ARMv7/PSVFuncList.cpp @@ -48,6 +48,8 @@ extern psv_log_base sceLibc; extern psv_log_base sceLibm; extern psv_log_base sceLibstdcxx; extern psv_log_base sceLibKernel; +extern psv_log_base sceSysmodule; +extern psv_log_base scePerf; void initialize_psv_modules() { @@ -58,6 +60,8 @@ void initialize_psv_modules() g_psv_modules.push_back(&sceLibm); g_psv_modules.push_back(&sceLibstdcxx); g_psv_modules.push_back(&sceLibKernel); + g_psv_modules.push_back(&sceSysmodule); + g_psv_modules.push_back(&scePerf); // setup special functions (without NIDs) psv_func unimplemented; @@ -66,7 +70,7 @@ void initialize_psv_modules() unimplemented.func.reset(new psv_func_detail::func_binder([](ARMv7Context& context) { context.thread.m_last_syscall = vm::psv::read32(context.thread.PC + 4); - throw "Unimplemented function executed"; + throw "Unimplemented function"; })); g_psv_func_list.push_back(unimplemented); diff --git a/rpcs3/Emu/ARMv7/PSVObjectList.cpp b/rpcs3/Emu/ARMv7/PSVObjectList.cpp index c90ebf20da..cc8e97a1c0 100644 --- a/rpcs3/Emu/ARMv7/PSVObjectList.cpp +++ b/rpcs3/Emu/ARMv7/PSVObjectList.cpp @@ -3,11 +3,14 @@ #include "Emu/ARMv7/PSVFuncList.h" #include "Emu/ARMv7/PSVObjectList.h" #include "Modules/sceLibKernel.h" -#include "Modules/psv_sema_object.h" +#include "Modules/psv_sema.h" +#include "Modules/psv_event_flag.h" psv_object_list_t g_psv_sema_list; +psv_object_list_t g_psv_ef_list; void clear_all_psv_objects() { g_psv_sema_list.clear(); + g_psv_ef_list.clear(); } diff --git a/rpcs3/Emu/Memory/vm_var.h b/rpcs3/Emu/Memory/vm_var.h index 95ea373f9e..06864950b9 100644 --- a/rpcs3/Emu/Memory/vm_var.h +++ b/rpcs3/Emu/Memory/vm_var.h @@ -517,11 +517,12 @@ namespace vm ptr = vm::get_ptr(addr); } + private: stack_allocation() = delete; - stack_allocation(const stack_allocation& r) = delete; - stack_allocation(stack_allocation&& r) = delete; - stack_allocation& operator = (const stack_allocation& r) = delete; - stack_allocation& operator = (stack_allocation&& r) = delete; + stack_allocation(const stack_allocation&) = delete; + stack_allocation(stack_allocation&&) = delete; + stack_allocation& operator = (const stack_allocation&) = delete; + stack_allocation& operator = (stack_allocation&&) = delete; } const m_data; diff --git a/rpcs3/Emu/SysCalls/Callback.h b/rpcs3/Emu/SysCalls/Callback.h index 2e8c64cf92..6918d338a3 100644 --- a/rpcs3/Emu/SysCalls/Callback.h +++ b/rpcs3/Emu/SysCalls/Callback.h @@ -42,6 +42,14 @@ class PauseCallbackRegisterer CallbackManager& cb_manager; u64 cb_tag; +private: + PauseCallbackRegisterer() = delete; + PauseCallbackRegisterer(const PauseCallbackRegisterer& right) = delete; + PauseCallbackRegisterer(PauseCallbackRegisterer&& right) = delete; + + PauseCallbackRegisterer& operator =(const PauseCallbackRegisterer& right) = delete; + PauseCallbackRegisterer& operator =(PauseCallbackRegisterer&& right) = delete; + public: PauseCallbackRegisterer(CallbackManager& cb_manager, const std::function& func) : cb_manager(cb_manager) @@ -49,16 +57,8 @@ public: { } - PauseCallbackRegisterer() = delete; - PauseCallbackRegisterer(const PauseCallbackRegisterer& right) = delete; - PauseCallbackRegisterer(PauseCallbackRegisterer&& right) = delete; - ~PauseCallbackRegisterer() { cb_manager.RemovePauseCallback(cb_tag); } - - PauseCallbackRegisterer& operator =(const PauseCallbackRegisterer& right) = delete; - PauseCallbackRegisterer& operator =(PauseCallbackRegisterer&& right) = delete; - }; diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index da233b2c30..407ab81918 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -56,11 +56,14 @@ - + + + + @@ -276,7 +279,8 @@ - + + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 887600c974..d8f1f1b884 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -87,7 +87,7 @@ {1d6abf72-0f18-43ec-9351-1fed1a3d1a1e} - + {368770cf-c8d9-4f4a-9ac3-5bdf48101ffe} @@ -668,12 +668,21 @@ Emu\CPU\ARMv7 - - Emu\CPU\ARMv7\Thread Manager - Emu\CPU\ARMv7 + + Emu\CPU\ARMv7\Objects + + + Emu\CPU\ARMv7\Objects + + + Emu\CPU\ARMv7\Modules + + + Emu\CPU\ARMv7\Modules + @@ -1303,11 +1312,14 @@ Emu\CPU\ARMv7\Modules - - Emu\CPU\ARMv7\Thread Manager - Emu\CPU\ARMv7 + + Emu\CPU\ARMv7\Objects + + + Emu\CPU\ARMv7\Objects + \ No newline at end of file