diff --git a/.gitignore b/.gitignore
index b40d5b4a15..c680e78a72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,9 +73,6 @@ x64/*
rpcs3/x64/*
rpcs3-tests/x64/*
-.DS_Store
-rpcs3/Emu/SysCalls/Modules/prx_*.h
-
# cmake
Makefile
*CMakeFiles*
diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp
index 9d19e679ae..01c68e785f 100644
--- a/Utilities/Thread.cpp
+++ b/Utilities/Thread.cpp
@@ -532,50 +532,32 @@ uint64_t* darwin_x64reg(x64_context *context, int reg)
auto *state = &context->uc_mcontext->__ss;
switch(reg)
{
- case 0: // RAX
- return &state->__rax;
- case 1: // RCX
- return &state->__rcx;
- case 2: // RDX
- return &state->__rdx;
- case 3: // RBX
- return &state->__rbx;
- case 4: // RSP
- return &state->__rsp;
- case 5: // RBP
- return &state->__rbp;
- case 6: // RSI
- return &state->__rsi;
- case 7: // RDI
- return &state->__rdi;
- case 8: // R8
- return &state->__r8;
- case 9: // R9
- return &state->__r9;
- case 10: // R10
- return &state->__r10;
- case 11: // R11
- return &state->__r11;
- case 12: // R12
- return &state->__r12;
- case 13: // R13
- return &state->__r13;
- case 14: // R14
- return &state->__r14;
- case 15: // R15
- return &state->__r15;
- case 16: // RIP
- return &state->__rip;
- default: // FAIL
- assert(0);
+ case 0: return &state->__rax;
+ case 1: return &state->__rcx;
+ case 2: return &state->__rdx;
+ case 3: return &state->__rbx;
+ case 4: return &state->__rsp;
+ case 5: return &state->__rbp;
+ case 6: return &state->__rsi;
+ case 7: return &state->__rdi;
+ case 8: return &state->__r8;
+ case 9: return &state->__r9;
+ case 10: return &state->__r10;
+ case 11: return &state->__r11;
+ case 12: return &state->__r12;
+ case 13: return &state->__r13;
+ case 14: return &state->__r14;
+ case 15: return &state->__r15;
+ case 16: return &state->__rip;
+ default:
+ LOG_ERROR(GENERAL, "Invalid register index: %d", reg);
+ return nullptr;
}
}
#else
-typedef decltype(REG_RIP) reg_table_t;
-
-static const reg_table_t reg_table[17] =
+static const decltype(REG_RAX) reg_table[] =
{
REG_RAX, REG_RCX, REG_RDX, REG_RBX, REG_RSP, REG_RBP, REG_RSI, REG_RDI,
REG_R8, REG_R9, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15, REG_RIP
@@ -1139,14 +1121,16 @@ void _se_translator(unsigned int u, EXCEPTION_POINTERS* pExp)
const u64 addr64 = (u64)pExp->ExceptionRecord->ExceptionInformation[1] - (u64)vm::base(0);
const bool is_writing = pExp->ExceptionRecord->ExceptionInformation[0] != 0;
- if (u == EXCEPTION_ACCESS_VIOLATION && (u32)addr64 == addr64)
+ if (u == EXCEPTION_ACCESS_VIOLATION)
{
- throw EXCEPTION("Access violation %s location 0x%llx", is_writing ? "writing" : "reading", addr64);
+ if ((u32)addr64 == addr64)
+ {
+ throw EXCEPTION("Access violation %s location 0x%llx", is_writing ? "writing" : "reading", addr64);
+ }
+
+ std::printf("Access violation %s location %p at %p\n", is_writing ? "writing" : "reading", (void*)pExp->ExceptionRecord->ExceptionInformation[1], pExp->ExceptionRecord->ExceptionAddress);
+ std::abort();
}
-
- __debugbreak(); // if it reached there, there should probably be a possibility to check the callstack
-
- throw EXCEPTION("Fatal error occured %s location %p at %p", is_writing ? "writing" : "reading", pExp->ExceptionRecord->ExceptionInformation[1], pExp->ExceptionRecord->ExceptionAddress);
}
const PVOID exception_handler = (atexit([]{ RemoveVectoredExceptionHandler(exception_handler); }), AddVectoredExceptionHandler(1, [](PEXCEPTION_POINTERS pExp) -> LONG
@@ -1195,7 +1179,8 @@ void signal_handler(int sig, siginfo_t* info, void* uct)
}
// else some fatal error
- exit(EXIT_FAILURE);
+ std::printf("Access violation %s location %p at %p\n", is_writing ? "writing" : "reading", info->si_addr, RIP((ucontext_t*)uct));
+ std::abort();
}
const int sigaction_result = []() -> int
@@ -1219,10 +1204,6 @@ void thread_ctrl::initialize()
{
SetCurrentThreadDebugName(g_tls_this_thread->m_name().c_str());
-#if defined(_MSC_VER)
- _set_se_translator(_se_translator); // not essential, disable if necessary
-#endif
-
#ifdef _WIN32
if (!exception_handler || !exception_filter)
#else
diff --git a/asmjitsrc/asmjit.vcxproj b/asmjitsrc/asmjit.vcxproj
index 57f9086c35..4b73e029f5 100644
--- a/asmjitsrc/asmjit.vcxproj
+++ b/asmjitsrc/asmjit.vcxproj
@@ -81,7 +81,6 @@
StaticLibrary
false
v140
- true
Unicode
diff --git a/rpcs3/D3D12GSRender.vcxproj b/rpcs3/D3D12GSRender.vcxproj
index df5813dd6a..d1c7dcd40f 100644
--- a/rpcs3/D3D12GSRender.vcxproj
+++ b/rpcs3/D3D12GSRender.vcxproj
@@ -28,170 +28,39 @@
8.1
-
+
StaticLibrary
- true
- v140
Unicode
-
-
- StaticLibrary
- true
v140
- Unicode
-
-
- StaticLibrary
- true
- v140
- Unicode
-
-
- StaticLibrary
- false
- v140
- false
- Unicode
-
-
- StaticLibrary
- false
- v140
- false
- Unicode
-
+
+
+
+
+
-
+
+
-
+
+
-
+
-
+
+
-
- $(VC_IncludePath);$(WindowsSDK_IncludePath);..\minidx12\Include;$(IncludePath)
-
-
- $(VC_IncludePath);$(WindowsSDK_IncludePath);..\minidx12\Include;$(IncludePath)
-
-
- $(VC_IncludePath);$(WindowsSDK_IncludePath);..\minidx12\Include;$(IncludePath)
-
-
- $(VC_IncludePath);$(WindowsSDK_IncludePath);..\minidx12\Include;$(IncludePath)
-
-
- $(VC_IncludePath);$(WindowsSDK_IncludePath);..\minidx12\Include;$(IncludePath)
-
-
-
- Level3
- Disabled
- false
- Use
- stdafx.h
- .;..
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- true
- Async
-
-
- true
-
-
-
-
- Level3
- Disabled
- false
- Use
- stdafx.h
- .;..
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- true
- Async
- _UNICODE;UNICODE;MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions)
-
-
- true
-
-
-
-
- Level3
- Disabled
- false
- Use
- stdafx.h
- .;..
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- true
- Async
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
-
-
- true
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- false
- Use
- stdafx.h
- .;..
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- true
- Async
-
-
- true
- true
- true
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- false
- Use
- stdafx.h
- .;..
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- true
- Async
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
-
-
- true
- true
- true
-
-
diff --git a/rpcs3/D3D12GSRender.vcxproj.user b/rpcs3/D3D12GSRender.vcxproj.user
new file mode 100644
index 0000000000..abe8dd8961
--- /dev/null
+++ b/rpcs3/D3D12GSRender.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3/Emu/Memory/vm_var.h b/rpcs3/Emu/Memory/vm_var.h
index 5c0b3d0949..1c1a1a32a4 100644
--- a/rpcs3/Emu/Memory/vm_var.h
+++ b/rpcs3/Emu/Memory/vm_var.h
@@ -101,11 +101,13 @@ namespace vm
using pointer = _ptr_base;
public:
+ // Call the constructor with specified arguments
template::value>> _var_base(Args&&... args)
: pointer(A::alloc(sizeof32(T), alignof32(T)), vm::addr)
{
- // Call the constructor with specified arguments
+#include "restore_new.h"
new(pointer::get_ptr()) T(std::forward(args)...);
+#include "define_new_memleakdetect.h"
}
_var_base(const _var_base&) = delete; // Delete copy/move constructors and copy/move operators
@@ -131,20 +133,24 @@ namespace vm
u32 m_count;
public:
+ // Call the default constructor for each element
_var_base(u32 count)
: pointer(A::alloc(sizeof32(T) * count, alignof32(T)), vm::addr)
, m_count(count)
{
- // Call the default constructor for each element
+#include "restore_new.h"
new(pointer::get_ptr()) T[count]();
+#include "define_new_memleakdetect.h"
}
+ // Call the constructor for each element using [it, it + count)
template _var_base(u32 count, T2 it)
: pointer(A::alloc(sizeof32(T) * count, alignof32(T)), vm::addr)
, m_count(count)
{
- // Initialize each element using iterator
- std::uninitialized_copy_n(it, count, const_cast*>(pointer::get_ptr()));
+#include "restore_new.h"
+ for (u32 i = 0; i < m_count; i++, it++) new(pointer::get_ptr() + i) T(*it);
+#include "define_new_memleakdetect.h"
}
_var_base(const _var_base&) = delete; // Delete copy/move constructors and copy/move operators
@@ -180,18 +186,22 @@ namespace vm
using pointer = _ptr_base;
public:
+ // Call the default constructor for each element
_var_base()
: pointer(A::alloc(sizeof32(T) * N, alignof32(T)), vm::addr)
{
- // Call the default constructor for each element
+#include "restore_new.h"
new(pointer::get_ptr()) T[N]();
+#include "define_new_memleakdetect.h"
}
+ // Call the constructor for each element using array
template _var_base(const T2(&array)[N])
: pointer(A::alloc(sizeof32(T) * N, alignof32(T)), vm::addr)
{
- // Copy the array
- std::uninitialized_copy_n(array + 0, N, const_cast*>(pointer::get_ptr()));
+#include "restore_new.h"
+ for (u32 i = 0; i < N; i++) new(pointer::get_ptr() + i) T(array[i]);
+#include "define_new_memleakdetect.h"
}
_var_base(const _var_base&) = delete; // Delete copy/move constructors and copy/move operators
diff --git a/rpcs3/Emu/SysCalls/Modules.h b/rpcs3/Emu/SysCalls/Modules.h
index eb16f7d4dc..37904b8252 100644
--- a/rpcs3/Emu/SysCalls/Modules.h
+++ b/rpcs3/Emu/SysCalls/Modules.h
@@ -116,7 +116,9 @@ public:
//static_assert(std::is_trivially_copy_assignable::value, "Module<> instance must be trivially copy-assignable");
// Allocate module instance and call the default constructor
+#include "restore_new.h"
new(vm::base(m_addr = vm::alloc(sizeof(T), vm::main))) T();
+#include "define_new_memleakdetect.h"
};
}
diff --git a/rpcs3/GLGSRender.vcxproj.user b/rpcs3/GLGSRender.vcxproj.user
new file mode 100644
index 0000000000..abe8dd8961
--- /dev/null
+++ b/rpcs3/GLGSRender.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj
index 3f277b113c..0244653ea0 100644
--- a/rpcs3/emucore.vcxproj
+++ b/rpcs3/emucore.vcxproj
@@ -22,6 +22,42 @@
x64
+
+ {C4A10229-4712-4BD2-B63E-50D93C67A038}
+ emucore
+ 8.1
+
+
+
+ StaticLibrary
+ v140
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -323,11 +359,7 @@
-
- true
- true
- true
-
+
Create
Create
@@ -633,200 +665,7 @@
-
- {C4A10229-4712-4BD2-B63E-50D93C67A038}
- emucore
- 8.1
-
-
-
- StaticLibrary
- true
- v140
- Unicode
-
-
- StaticLibrary
- true
- v140
- Unicode
-
-
- StaticLibrary
- true
- v140
- Unicode
-
-
- StaticLibrary
- false
- v140
- false
- Unicode
-
-
- StaticLibrary
- false
- v140
- false
- Unicode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
- $(Platform)\$(Configuration)\emucore\
- $(UniversalCRT_LibraryPath_x64);$(LibraryPath)
- $(ExcludePath)
-
-
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
- $(Platform)\$(Configuration)\emucore\
- $(UniversalCRT_LibraryPath_x64);$(LibraryPath)
- $(ExcludePath)
-
-
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
- $(Platform)\$(Configuration)\emucore\
- $(UniversalCRT_LibraryPath_x64);$(LibraryPath)
- $(ExcludePath)
-
-
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
- $(Platform)\$(Configuration)\emucore\
- $(UniversalCRT_LibraryPath_x64);$(LibraryPath)
- $(ExcludePath)
-
-
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
- $(Platform)\$(Configuration)\emucore\
- $(UniversalCRT_LibraryPath_x64);$(LibraryPath)
- $(ExcludePath)
-
-
-
- Level3
- Disabled
- false
- Use
- _UNICODE;UNICODE;%(PreprocessorDefinitions)
- stdafx.h
- Async
- true
- ../glm
- false
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
-
-
-
-
- Level3
- Disabled
- false
- Use
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
- stdafx.h
- Async
- true
- ../glm
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
-
-
- ..\llvm_build\Debug\lib
- LLVMMCJIT.lib;LLVMRuntimeDyld.lib;LLVMVectorize.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMExecutionEngine.lib;LLVMAsmPrinter.lib;LLVMSelectionDAG.lib;LLVMCodeGen.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMTransformUtils.lib;LLVMipa.lib;LLVMAnalysis.lib;LLVMTarget.lib;LLVMX86Desc.lib;LLVMX86AsmPrinter.lib;LLVMObject.lib;LLVMMCParser.lib;LLVMBitReader.lib;LLVMCore.lib;LLVMX86Utils.lib;LLVMMC.lib;LLVMX86Info.lib;LLVMSupport.lib;LLVMMCDisassembler.lib
-
-
-
-
- Level2
- Disabled
- false
- Use
- _UNICODE;UNICODE;MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions);DX12_SUPPORT
- stdafx.h
- Async
- true
- ../glm
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- false
- Use
- stdafx.h
- Async
- true
- ../glm
- _UNICODE;UNICODE;%(PreprocessorDefinitions)
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
- true
- true
-
-
-
-
- Level3
- MaxSpeed
- true
- true
- false
- Use
- stdafx.h
- Async
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
- true
- ../glm
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
- true
- true
-
-
- ..\llvm_build\Release\lib
- LLVMMCJIT.lib;LLVMRuntimeDyld.lib;LLVMVectorize.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMExecutionEngine.lib;LLVMAsmPrinter.lib;LLVMSelectionDAG.lib;LLVMCodeGen.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMTransformUtils.lib;LLVMipa.lib;LLVMAnalysis.lib;LLVMTarget.lib;LLVMX86Desc.lib;LLVMX86AsmPrinter.lib;LLVMObject.lib;LLVMMCParser.lib;LLVMBitReader.lib;LLVMCore.lib;LLVMX86Utils.lib;LLVMMC.lib;LLVMX86Info.lib;LLVMSupport.lib;LLVMMCDisassembler.lib
-
-
diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj
index 7434256cc3..f90df00552 100644
--- a/rpcs3/rpcs3.vcxproj
+++ b/rpcs3/rpcs3.vcxproj
@@ -29,57 +29,35 @@
8.1
-
+
Application
- true
- Unicode
v140
-
-
- Application
- true
Unicode
- v140
-
-
- Application
- true
- Unicode
- v140
-
-
- Application
- false
- false
- Unicode
- v140
- false
-
-
- Application
- false
- false
- Unicode
- v140
- false
-
+
+
-
-
+
+
-
+
+
-
-
+
+
+
+
+
+
-
+
+
@@ -116,29 +94,7 @@
false
false
-
-
- Level3
- Disabled
- ProgramDatabase
- Use
- ..\wxWidgets\include\msvc;..\glm
- Async
- stdafx.h
- $(Platform)\$(Configuration).pch
- _UNICODE;UNICODE;%(PreprocessorDefinitions)
- $(Platform)\$(Configuration).pdb
-
-
- true
- wxmsw31ud_adv.lib;wxbase31ud.lib;wxmsw31ud_core.lib;wxmsw31ud_aui.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;%(AdditionalDependencies)
- %(IgnoreSpecificDefaultLibraries)
- true
- ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
- 0x200000000
- true
- false
-
+
%windir%\sysnative\cmd.exe /c "$(SolutionDir)\Utilities\git-version-gen.cmd"
Updating git-version.h
@@ -147,145 +103,6 @@
false
-
-
- Level3
- Disabled
- ProgramDatabase
- Use
- ..\wxWidgets\include\msvc;..\glm
- Async
- stdafx.h
- $(Platform)\$(Configuration).pch
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
- $(Platform)\$(Configuration).pdb
-
-
- true
- wxmsw31ud_adv.lib;wxbase31ud.lib;wxmsw31ud_core.lib;wxmsw31ud_aui.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;%(AdditionalDependencies)
- %(IgnoreSpecificDefaultLibraries)
- true
- ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
- 0x200000000
- true
- false
-
-
- %windir%\sysnative\cmd.exe /c "$(SolutionDir)\Utilities\git-version-gen.cmd"
- Updating git-version.h
-
-
- false
-
-
-
-
- Level3
- Disabled
- ProgramDatabase
- Use
- ..\wxWidgets\include\msvc;..\glm
- _UNICODE;UNICODE;MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions)
- Async
- stdafx.h
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- true
- wxmsw31ud_adv.lib;wxbase31ud.lib;wxmsw31ud_core.lib;wxmsw31ud_aui.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;%(AdditionalDependencies)
- %(IgnoreSpecificDefaultLibraries)
- true
- ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
- 0x200000000
- true
- false
-
-
- %windir%\sysnative\cmd.exe /c "$(SolutionDir)\Utilities\git-version-gen.cmd"
- Updating git-version.h
-
-
- false
-
-
-
-
- Level3
- Full
- true
- true
- ..\wxWidgets\include\msvc;..\glm
- MultiThreadedDLL
- false
- Use
- Speed
- Async
- false
- true
- stdafx.h
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
-
-
- Windows
- true
- true
- true
- wxmsw31u_adv.lib;wxbase31u.lib;wxmsw31u_core.lib;wxmsw31u_aui.lib;odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;wxregexu.lib;wxexpat.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)
-
-
- %(IgnoreSpecificDefaultLibraries)
- true
- ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
- 0x200000000
- true
- false
-
-
- %windir%\sysnative\cmd.exe /c "$(SolutionDir)\Utilities\git-version-gen.cmd"
- Updating git-version.h
-
-
-
-
- Level3
- Full
- true
- true
- ..\wxWidgets\include\msvc;..\glm
- MultiThreadedDLL
- false
- Use
- Speed
- Async
- false
- true
- stdafx.h
- $(Platform)\$(Configuration).pch
- $(Platform)\$(Configuration).pdb
- _UNICODE;UNICODE;LLVM_AVAILABLE;%(PreprocessorDefinitions)
-
-
- Windows
- true
- true
- true
- wxmsw31u_adv.lib;wxbase31u.lib;wxmsw31u_core.lib;wxmsw31u_aui.lib;odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;wxregexu.lib;wxexpat.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)
-
-
- %(IgnoreSpecificDefaultLibraries)
- true
- ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
- 0x200000000
- true
- false
-
-
- %windir%\sysnative\cmd.exe /c "$(SolutionDir)\Utilities\git-version-gen.cmd"
- Updating git-version.h
-
-
diff --git a/rpcs3/stdafx_gui.h b/rpcs3/stdafx_gui.h
index 083c9525c1..c005be3999 100644
--- a/rpcs3/stdafx_gui.h
+++ b/rpcs3/stdafx_gui.h
@@ -1,5 +1,7 @@
#pragma once
+#include "restore_new.h"
+
#ifndef QT_UI
#ifdef _MSC_VER
#pragma warning(push, 0)
@@ -30,3 +32,5 @@
#pragma warning(pop)
#endif
#endif
+
+#include "define_new_memleakdetect.h"
diff --git a/rpcs3_debug.props b/rpcs3_debug.props
new file mode 100644
index 0000000000..64d1781b74
--- /dev/null
+++ b/rpcs3_debug.props
@@ -0,0 +1,19 @@
+
+
+
+
+
+ true
+
+
+
+
+ Disabled
+ MultiThreadedDebugDLL
+
+
+ wxmsw31ud_adv.lib;wxbase31ud.lib;wxmsw31ud_core.lib;wxmsw31ud_aui.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;%(AdditionalDependencies)
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3_default.props b/rpcs3_default.props
new file mode 100644
index 0000000000..85f925671c
--- /dev/null
+++ b/rpcs3_default.props
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ true
+ .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include;..\glm
+ Level3
+ false
+ true
+ Use
+ $(Platform)\$(Configuration).pch
+ $(Platform)\$(Configuration).pdb
+ /FS %(AdditionalOptions)
+
+
+ Windows
+ true
+ odbc32.lib;odbccp32.lib;comctl32.lib;ws2_32.lib;shlwapi.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;rpcrt4.lib;%(AdditionalDependencies)
+ true
+ ..\wxWidgets\lib\vc_x64_lib;..\ffmpeg\Windows\x86_64\lib;..\OpenAL\libs\Win64
+ 0x10000
+ false
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3_llvm.props b/rpcs3_llvm.props
new file mode 100644
index 0000000000..cd5c07532a
--- /dev/null
+++ b/rpcs3_llvm.props
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ LLVM_AVAILABLE;%(PreprocessorDefinitions)
+
+
+ ..\llvm_build\Debug\lib
+ ..\llvm_build\Release\lib
+ LLVMMCJIT.lib;LLVMRuntimeDyld.lib;LLVMVectorize.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMExecutionEngine.lib;LLVMAsmPrinter.lib;LLVMSelectionDAG.lib;LLVMCodeGen.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMTransformUtils.lib;LLVMipa.lib;LLVMAnalysis.lib;LLVMTarget.lib;LLVMX86Desc.lib;LLVMX86AsmPrinter.lib;LLVMObject.lib;LLVMMCParser.lib;LLVMBitReader.lib;LLVMCore.lib;LLVMX86Utils.lib;LLVMMC.lib;LLVMX86Info.lib;LLVMSupport.lib;LLVMMCDisassembler.lib
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3_memleak.props b/rpcs3_memleak.props
new file mode 100644
index 0000000000..f26f6fc5b7
--- /dev/null
+++ b/rpcs3_memleak.props
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions)
+
+
+
+
\ No newline at end of file
diff --git a/rpcs3_release.props b/rpcs3_release.props
new file mode 100644
index 0000000000..73dcfcf2be
--- /dev/null
+++ b/rpcs3_release.props
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ Full
+ true
+ true
+ Speed
+ MultiThreadedDLL
+
+
+ wxmsw31u_adv.lib;wxbase31u.lib;wxmsw31u_core.lib;wxmsw31u_aui.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;%(AdditionalDependencies)
+ true
+ true
+
+
+
+
\ No newline at end of file