diff --git a/Utilities/GNU.h b/Utilities/GNU.h index 58074f9835..4087004e4f 100644 --- a/Utilities/GNU.h +++ b/Utilities/GNU.h @@ -83,3 +83,14 @@ int clock_gettime(int foo, struct timespec *ts); #define DWORD int32_t #endif + +#ifndef InterlockedCompareExchange +static __forceinline uint32_t InterlockedCompareExchange(volatile uint32_t* dest, uint32_t exch, uint32_t comp) +{ + return _InterlockedCompareExchange((volatile long*)dest, exch, comp); +} +static __forceinline uint64_t InterlockedCompareExchange(volatile uint64_t* dest, uint64_t exch, uint64_t comp) +{ + return _InterlockedCompareExchange64((volatile long long*)dest, exch, comp); +} +#endif \ No newline at end of file diff --git a/Utilities/StrFmt.cpp b/Utilities/StrFmt.cpp index 2ee8d8c9f6..cc20761d60 100644 --- a/Utilities/StrFmt.cpp +++ b/Utilities/StrFmt.cpp @@ -14,7 +14,11 @@ std::string fmt::FormatV(const char *fmt, va_list args) for (;;) { std::vector buffptr(length); +#if !defined(_MSC_VER) size_t printlen = vsnprintf(buffptr.data(), length, fmt, args); +#else + size_t printlen = vsnprintf_s(buffptr.data(), length, length - 1, fmt, args); +#endif if (printlen < length) { str = std::string(buffptr.data(), printlen); diff --git a/Utilities/StrFmt.h b/Utilities/StrFmt.h index 3fe2de28aa..fb8e2ff1f7 100644 --- a/Utilities/StrFmt.h +++ b/Utilities/StrFmt.h @@ -1,4 +1,5 @@ #pragma once +#include #if defined(_MSC_VER) #define snprintf _snprintf @@ -111,10 +112,14 @@ namespace fmt{ for (;;) { std::vector buffptr(length); +#if !defined(_MSC_VER) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wformat-security" size_t printlen = snprintf(buffptr.data(), length, fmt.c_str(), std::forward(parameters)...); #pragma clang diagnostic pop +#else + size_t printlen = _snprintf_s(buffptr.data(), length, length - 1, fmt.c_str(), std::forward(parameters)...); +#endif if (printlen < length) { str = string(buffptr.data(), printlen); diff --git a/Utilities/rFile.cpp b/Utilities/rFile.cpp index a4b3153541..7608f0e4c1 100644 --- a/Utilities/rFile.cpp +++ b/Utilities/rFile.cpp @@ -1,9 +1,13 @@ #include "stdafx.h" #include "Log.h" #include +#include +#include #include "rFile.h" #ifdef _WIN32 +#include + // Maybe in StrFmt? std::wstring ConvertUTF8ToWString(const std::string &source) { int len = (int)source.size(); diff --git a/Utilities/rMsgBox.cpp b/Utilities/rMsgBox.cpp index cabb309e19..4ce0ac5465 100644 --- a/Utilities/rMsgBox.cpp +++ b/Utilities/rMsgBox.cpp @@ -1,4 +1,5 @@ #include "stdafx.h" +#include #include "rMsgBox.h" #ifndef QT_UI diff --git a/Utilities/rPlatform.cpp b/Utilities/rPlatform.cpp index 4ba72684ff..c6b86dd77b 100644 --- a/Utilities/rPlatform.cpp +++ b/Utilities/rPlatform.cpp @@ -1,4 +1,5 @@ #include "stdafx.h" +#include #ifndef _WIN32 #include diff --git a/rpcs3/Emu/Cell/PPUProgramCompiler.cpp b/rpcs3/Emu/Cell/PPUProgramCompiler.cpp index fd28e84cc1..fcc47c1bec 100644 --- a/rpcs3/Emu/Cell/PPUProgramCompiler.cpp +++ b/rpcs3/Emu/Cell/PPUProgramCompiler.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "PPUProgramCompiler.h" #include "Utilities/rFile.h" diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 0a272050f6..71485213af 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -11,7 +11,6 @@ #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/SPUDisAsm.h" #include "Emu/Cell/SPUThread.h" @@ -424,7 +423,7 @@ void SPUThread::EnqMfcCmd(MFCReg& MFCArgs) { if (buf[i] != R_DATA[i]) { - if (InterlockedCompareExchange64((volatile long long*)(Memory + (ea + i * 8)), buf[i], R_DATA[i]) != R_DATA[i]) + if (InterlockedCompareExchange((volatile u64*)(Memory + (ea + i * 8)), buf[i], R_DATA[i]) != R_DATA[i]) { m_events |= SPU_EVENT_LR; MFCArgs.AtomicStat.PushUncond(MFC_PUTLLC_FAILURE); diff --git a/rpcs3/Emu/FS/VFS.cpp b/rpcs3/Emu/FS/VFS.cpp index 8cdd068371..518ec6b6bd 100644 --- a/rpcs3/Emu/FS/VFS.cpp +++ b/rpcs3/Emu/FS/VFS.cpp @@ -5,6 +5,8 @@ #include "vfsDeviceLocalFile.h" #include "Ini.h" +#undef CreateFile // TODO: what's wrong with it? + int sort_devices(const void* _a, const void* _b) { const vfsDevice& a = **(const vfsDevice**)_a; diff --git a/rpcs3/Emu/Io/XInput/XInputPadHandler.cpp b/rpcs3/Emu/Io/XInput/XInputPadHandler.cpp index 484e362a83..27033c5d32 100644 --- a/rpcs3/Emu/Io/XInput/XInputPadHandler.cpp +++ b/rpcs3/Emu/Io/XInput/XInputPadHandler.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #if defined (_WIN32) #include "Utilities/Log.h" #include "XInputPadHandler.h" diff --git a/rpcs3/Emu/Memory/Memory.cpp b/rpcs3/Emu/Memory/Memory.cpp index 741ae8ddff..f772145ccf 100644 --- a/rpcs3/Emu/Memory/Memory.cpp +++ b/rpcs3/Emu/Memory/Memory.cpp @@ -5,6 +5,8 @@ #ifndef _WIN32 #include +#else +#include #endif /* OS X uses MAP_ANON instead of MAP_ANONYMOUS */ diff --git a/rpcs3/Emu/Memory/Memory.h b/rpcs3/Emu/Memory/Memory.h index cc91506699..3f5e2c6493 100644 --- a/rpcs3/Emu/Memory/Memory.h +++ b/rpcs3/Emu/Memory/Memory.h @@ -365,7 +365,7 @@ public: template void WriteString(const T addr, const std::string& str) { - strcpy((char*)GetMemFromAddr(addr), str.c_str()); + memcpy(GetMemFromAddr(addr), str.c_str(), str.size()); } u32 GetUserMemTotalSize() diff --git a/rpcs3/Emu/Memory/MemoryBlock.h b/rpcs3/Emu/Memory/MemoryBlock.h index e03192212b..117d0bb32a 100644 --- a/rpcs3/Emu/Memory/MemoryBlock.h +++ b/rpcs3/Emu/Memory/MemoryBlock.h @@ -2,7 +2,7 @@ #define PAGE_4K(x) (x + 4095) & ~(4095) -#include +//#include struct MemInfo { diff --git a/rpcs3/Emu/RSX/GL/OpenGL.h b/rpcs3/Emu/RSX/GL/OpenGL.h index 42eb742f72..ce4612c66c 100644 --- a/rpcs3/Emu/RSX/GL/OpenGL.h +++ b/rpcs3/Emu/RSX/GL/OpenGL.h @@ -4,6 +4,7 @@ #endif #ifdef _WIN32 +#include #include "GL/gl.h" #include "GL/glext.h" typedef BOOL (WINAPI* PFNWGLSWAPINTERVALEXTPROC) (int interval); diff --git a/rpcs3/Emu/SysCalls/Modules/cellMsgDialog.cpp b/rpcs3/Emu/SysCalls/Modules/cellMsgDialog.cpp index 59f240d2b8..9858942e09 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellMsgDialog.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellMsgDialog.cpp @@ -3,6 +3,11 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include +#include +#include +#include +#include #include "Utilities/rMsgBox.h" #include "Emu/SysCalls/lv2/sys_time.h" #include "cellSysutil.h" diff --git a/rpcs3/Emu/SysCalls/Modules/cellResc.cpp b/rpcs3/Emu/SysCalls/Modules/cellResc.cpp index 8106aa2cd8..d33458153c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellResc.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellResc.cpp @@ -3,6 +3,7 @@ #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" +#include #include "cellSysutil.h" #include "Emu/RSX/sysutil_video.h" #include "Emu/RSX/GSManager.h" diff --git a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp index 44a2e43e20..9a0c1b5909 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp @@ -161,7 +161,7 @@ int sceNpTrophyRegisterContext(u32 context, u32 handle, mem_func_ptr_t +#endif #include "sys_time.h" SysCallBase sys_time("sys_time"); diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 52577251da..c7983a224a 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -422,7 +422,7 @@ void Emulator::Pause() //ConLog.Write("pause..."); SendDbgCommand(DID_PAUSE_EMU); - if (InterlockedCompareExchange((volatile unsigned long*)&m_status, Paused, Running) == Running) + if (InterlockedCompareExchange((volatile u32*)&m_status, Paused, Running) == Running) { SendDbgCommand(DID_PAUSED_EMU); } @@ -512,9 +512,10 @@ void Emulator::SavePoints(const std::string& path) void Emulator::LoadPoints(const std::string& path) { - struct stat buf; - if (!stat(path.c_str(), &buf)) - return; + if (!rExists(path)) return; + //struct stat buf; + //if (!stat(path.c_str(), &buf)) + //return; std::ifstream f(path, std::ios::binary); if (!f.is_open()) return; diff --git a/rpcs3/Gui/AutoPauseManager.cpp b/rpcs3/Gui/AutoPauseManager.cpp index 14bb12d8c2..11dbc5e9d9 100644 --- a/rpcs3/Gui/AutoPauseManager.cpp +++ b/rpcs3/Gui/AutoPauseManager.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Emu/System.h" #include "AutoPauseManager.h" #include diff --git a/rpcs3/Gui/CompilerELF.cpp b/rpcs3/Gui/CompilerELF.cpp index 072fa53643..c4254163e2 100644 --- a/rpcs3/Gui/CompilerELF.cpp +++ b/rpcs3/Gui/CompilerELF.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/rMsgBox.h" #include "Emu/Cell/PPUProgramCompiler.h" diff --git a/rpcs3/Gui/ConLogFrame.cpp b/rpcs3/Gui/ConLogFrame.cpp index 7cb9d10319..0dd80f269e 100644 --- a/rpcs3/Gui/ConLogFrame.cpp +++ b/rpcs3/Gui/ConLogFrame.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include #include diff --git a/rpcs3/Gui/Debugger.cpp b/rpcs3/Gui/Debugger.cpp index f3203eac9f..26018d0563 100644 --- a/rpcs3/Gui/Debugger.cpp +++ b/rpcs3/Gui/Debugger.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include #include "Emu/Memory/Memory.h" diff --git a/rpcs3/Gui/DisAsmFrame.cpp b/rpcs3/Gui/DisAsmFrame.cpp index 74bfddc0de..48e6ff726b 100644 --- a/rpcs3/Gui/DisAsmFrame.cpp +++ b/rpcs3/Gui/DisAsmFrame.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/GLGSFrame.cpp b/rpcs3/Gui/GLGSFrame.cpp index a52c07be10..98883da472 100644 --- a/rpcs3/Gui/GLGSFrame.cpp +++ b/rpcs3/Gui/GLGSFrame.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "GLGSFrame.h" #include "Utilities/Timer.h" diff --git a/rpcs3/Gui/GSFrame.cpp b/rpcs3/Gui/GSFrame.cpp index fde662b2db..589d940f53 100644 --- a/rpcs3/Gui/GSFrame.cpp +++ b/rpcs3/Gui/GSFrame.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "GSFrame.h" #include "Emu/System.h" #include "Emu/RSX/sysutil_video.h" diff --git a/rpcs3/Gui/GameViewer.cpp b/rpcs3/Gui/GameViewer.cpp index d9119cbbcd..b59ccae3ce 100644 --- a/rpcs3/Gui/GameViewer.cpp +++ b/rpcs3/Gui/GameViewer.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/AutoPause.h" #include "Utilities/Log.h" #include "Utilities/rFile.h" diff --git a/rpcs3/Gui/InterpreterDisAsm.cpp b/rpcs3/Gui/InterpreterDisAsm.cpp index 674dd6bd64..33274274a6 100644 --- a/rpcs3/Gui/InterpreterDisAsm.cpp +++ b/rpcs3/Gui/InterpreterDisAsm.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/KernelExplorer.cpp b/rpcs3/Gui/KernelExplorer.cpp index 42dd1e2241..3e51442db1 100644 --- a/rpcs3/Gui/KernelExplorer.cpp +++ b/rpcs3/Gui/KernelExplorer.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/MainFrame.cpp b/rpcs3/Gui/MainFrame.cpp index ccb24ac581..dca2b82f88 100644 --- a/rpcs3/Gui/MainFrame.cpp +++ b/rpcs3/Gui/MainFrame.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/MemoryViewer.cpp b/rpcs3/Gui/MemoryViewer.cpp index fad7023fa6..0a674c5632 100644 --- a/rpcs3/Gui/MemoryViewer.cpp +++ b/rpcs3/Gui/MemoryViewer.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" diff --git a/rpcs3/Gui/PADManager.cpp b/rpcs3/Gui/PADManager.cpp index 3626f1b8b6..9187975240 100644 --- a/rpcs3/Gui/PADManager.cpp +++ b/rpcs3/Gui/PADManager.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/RSXDebugger.cpp b/rpcs3/Gui/RSXDebugger.cpp index 441bb14389..7b0a958774 100644 --- a/rpcs3/Gui/RSXDebugger.cpp +++ b/rpcs3/Gui/RSXDebugger.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "rpcs3/Ini.h" #include "Utilities/rPlatform.h" #include "Utilities/Log.h" diff --git a/rpcs3/Gui/SaveDataUtility.cpp b/rpcs3/Gui/SaveDataUtility.cpp index 2bebd478ad..534188d076 100644 --- a/rpcs3/Gui/SaveDataUtility.cpp +++ b/rpcs3/Gui/SaveDataUtility.cpp @@ -1,6 +1,5 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "SaveDataUtility.h" -#include "stdafx.h" #include #include #include "Utilities/Log.h" diff --git a/rpcs3/Gui/TextInputDialog.cpp b/rpcs3/Gui/TextInputDialog.cpp index 071904d779..a95795b2dd 100644 --- a/rpcs3/Gui/TextInputDialog.cpp +++ b/rpcs3/Gui/TextInputDialog.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "TextInputDialog.h" TextInputDialog::TextInputDialog(wxWindow* parent, const std::string& defvalue, const std::string& label) diff --git a/rpcs3/Gui/VFSManager.cpp b/rpcs3/Gui/VFSManager.cpp index 9df763384f..d83680fd16 100644 --- a/rpcs3/Gui/VFSManager.cpp +++ b/rpcs3/Gui/VFSManager.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" diff --git a/rpcs3/Gui/VHDDManager.cpp b/rpcs3/Gui/VHDDManager.cpp index 5808848259..4033c2986e 100644 --- a/rpcs3/Gui/VHDDManager.cpp +++ b/rpcs3/Gui/VHDDManager.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Utilities/Log.h" #include "VHDDManager.h" #include "TextInputDialog.h" diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index bf42bedd39..9860e3d596 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -29,6 +29,11 @@ + + + + + @@ -55,7 +60,6 @@ - @@ -221,9 +225,10 @@ + - + @@ -262,7 +267,6 @@ - @@ -409,6 +413,9 @@ + + + {C4A10229-4712-4BD2-B63E-50D93C67A038} emucore diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 729660c395..d045709d83 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -365,9 +365,6 @@ Emu\SysCalls - - Emu\Cell - Emu\SysCalls\currently_unused @@ -608,6 +605,21 @@ Emu\SysCalls\Modules + + Utilities + + + Utilities + + + Utilities + + + Utilities + + + Utilities + @@ -919,9 +931,6 @@ Loader - - Loader - Header Files @@ -949,9 +958,6 @@ Emu\SysCalls - - Utilities - Utilities\SimpleIni @@ -961,21 +967,6 @@ Emu - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Emu\Cell - Emu\SysCalls\currently_unused @@ -1054,9 +1045,6 @@ Emu\SysCalls\lv2 - - Header Files - Utilities @@ -1177,5 +1165,32 @@ Emu\SysCalls\Modules + + Utilities + + + Utilities + + + Utilities + + + Utilities + + + Utilities + + + Utilities + + + Utilities + + + Loader + + + + \ No newline at end of file diff --git a/rpcs3/rpcs3.cpp b/rpcs3/rpcs3.cpp index 9aeb33c2f4..4588e8ca83 100644 --- a/rpcs3/rpcs3.cpp +++ b/rpcs3/rpcs3.cpp @@ -1,4 +1,4 @@ -#include "stdafx.h" +#include "stdafx_gui.h" #include "Emu/System.h" #include "rpcs3.h" #include "Ini.h" diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj index 7473145394..723c265201 100644 --- a/rpcs3/rpcs3.vcxproj +++ b/rpcs3/rpcs3.vcxproj @@ -82,6 +82,8 @@ Use ..\wxWidgets\include\msvc Async + stdafx_gui.h + $(IntDir)$(TargetName)_gui.pch true @@ -106,6 +108,8 @@ ..\wxWidgets\include\msvc _UNICODE;UNICODE;MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions) Async + stdafx_gui.h + $(IntDir)$(TargetName)_gui.pch true @@ -136,6 +140,8 @@ Async false true + stdafx_gui.h + $(IntDir)$(TargetName)_gui.pch Windows @@ -155,14 +161,7 @@ - - - - - - - - + @@ -183,30 +182,18 @@ - - Create - Create + Create + Create + Create - - - - - - - - - - - - - + @@ -232,7 +219,7 @@ - + diff --git a/rpcs3/rpcs3.vcxproj.filters b/rpcs3/rpcs3.vcxproj.filters index b9aa2a3047..2adfacee27 100644 --- a/rpcs3/rpcs3.vcxproj.filters +++ b/rpcs3/rpcs3.vcxproj.filters @@ -4,9 +4,6 @@ {98fb6fa5-9a9a-48a6-a6b4-be4b9a69b76e} - - {47155d25-741d-42c0-8850-f22aafca082a} - {9bd88f78-8528-48f3-b9e0-78e06476b04d} @@ -19,14 +16,14 @@ {b30572ce-b602-4c10-ad69-bd3f1c8a0144} + + {47155d25-741d-42c0-8850-f22aafca082a} + rpcs3 - - rpcs3 - Gui @@ -45,9 +42,6 @@ Gui - - Utilities - Gui @@ -66,27 +60,6 @@ Gui - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - Gui @@ -108,35 +81,20 @@ Io\XInput + + rpcs3 + + + Gui + - - Utilities - Utilities - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - Gui @@ -170,9 +128,6 @@ Gui - - rpcs3 - rpcs3 @@ -185,21 +140,6 @@ Gui - - Utilities - - - Utilities - - - Utilities - - - Utilities - - - Utilities - Gui @@ -209,9 +149,6 @@ Gui - - Utilities - Gui @@ -233,5 +170,11 @@ Io\XInput + + rpcs3 + + + Gui + \ No newline at end of file diff --git a/rpcs3/stdafx.h b/rpcs3/stdafx.h index eba339fe04..232bfd704c 100644 --- a/rpcs3/stdafx.h +++ b/rpcs3/stdafx.h @@ -7,30 +7,6 @@ #endif #define NOMINMAX -#ifndef QT_UI -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#endif #if defined(MSVC_CRT_MEMLEAK_DETECTION) && defined(_DEBUG) && !defined(DBG_NEW) #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) diff --git a/rpcs3/stdafx_gui.cpp b/rpcs3/stdafx_gui.cpp new file mode 100644 index 0000000000..b4f62112d0 --- /dev/null +++ b/rpcs3/stdafx_gui.cpp @@ -0,0 +1 @@ +#include "stdafx_gui.h" \ No newline at end of file diff --git a/rpcs3/stdafx_gui.h b/rpcs3/stdafx_gui.h new file mode 100644 index 0000000000..91043b4ba0 --- /dev/null +++ b/rpcs3/stdafx_gui.h @@ -0,0 +1,270 @@ +#pragma once + +#ifdef MSVC_CRT_MEMLEAK_DETECTION +#define _CRTDBG_MAP_ALLOC +#include +#include +#endif + +#define NOMINMAX +#ifndef QT_UI +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#if defined(MSVC_CRT_MEMLEAK_DETECTION) && defined(_DEBUG) && !defined(DBG_NEW) +#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) +#define new DBG_NEW +#endif + +// This header should be frontend-agnostic, so don't assume wx includes everything +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Utilities/GNU.h" + +typedef unsigned int uint; + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +union u128 +{ + struct + { + u64 hi; + u64 lo; + }; + + u64 _u64[2]; + u32 _u32[4]; + u16 _u16[8]; + u8 _u8[16]; + + operator u64() const { return _u64[0]; } + operator u32() const { return _u32[0]; } + operator u16() const { return _u16[0]; } + operator u8() const { return _u8[0]; } + + operator bool() const { return _u64[0] != 0 || _u64[1] != 0; } + + static u128 From128(u64 hi, u64 lo) + { + u128 ret = { hi, lo }; + return ret; + } + + static u128 From64(u64 src) + { + u128 ret = { 0, src }; + return ret; + } + + static u128 From32(u32 src) + { + u128 ret; + ret._u32[0] = src; + ret._u32[1] = 0; + ret._u32[2] = 0; + ret._u32[3] = 0; + return ret; + } + + static u128 FromBit(u32 bit) + { + u128 ret; + if (bit < 64) + { + ret.hi = 0; + ret.lo = (u64)1 << bit; + } + else if (bit < 128) + { + ret.hi = (u64)1 << (bit - 64); + ret.lo = 0; + } + else + { + ret.hi = 0; + ret.lo = 0; + } + return ret; + } + + bool operator == (const u128& right) const + { + return (lo == right.lo) && (hi == right.hi); + } + + bool operator != (const u128& right) const + { + return (lo != right.lo) || (hi != right.hi); + } + + u128 operator | (const u128& right) const + { + return From128(hi | right.hi, lo | right.lo); + } + + u128 operator & (const u128& right) const + { + return From128(hi & right.hi, lo & right.lo); + } + + u128 operator ^ (const u128& right) const + { + return From128(hi ^ right.hi, lo ^ right.lo); + } + + u128 operator ~ () const + { + return From128(~hi, ~lo); + } + + static __forceinline u128 byteswap(const u128 val) + { + u128 ret; + ret.lo = _byteswap_uint64(val.hi); + ret.hi = _byteswap_uint64(val.lo); + return ret; + } +}; + +union s128 +{ + struct + { + s64 hi; + s64 lo; + }; + + u64 _i64[2]; + u32 _i32[4]; + u16 _i16[8]; + u8 _i8[16]; + + operator s64() const { return _i64[0]; } + operator s32() const { return _i32[0]; } + operator s16() const { return _i16[0]; } + operator s8() const { return _i8[0]; } + + operator bool() const { return _i64[0] != 0 || _i64[1] != 0; } + + static s128 From64(s64 src) + { + s128 ret = { src, 0 }; + return ret; + } + + static s128 From32(s32 src) + { + s128 ret; + ret._i32[0] = src; + ret._i32[1] = 0; + ret.hi = 0; + return ret; + } + + bool operator == (const s128& right) const + { + return (lo == right.lo) && (hi == right.hi); + } + + bool operator != (const s128& right) const + { + return (lo != right.lo) || (hi != right.hi); + } +}; + +//TODO: SSE style +/* +struct u128 +{ +__m128 m_val; + +u128 GetValue128() +{ +u128 ret; +_mm_store_ps( (float*)&ret, m_val ); +return ret; +} + +u64 GetValue64() +{ +u64 ret; +_mm_store_ps( (float*)&ret, m_val ); +return ret; +} + +u32 GetValue32() +{ +u32 ret; +_mm_store_ps( (float*)&ret, m_val ); +return ret; +} + +u16 GetValue16() +{ +u16 ret; +_mm_store_ps( (float*)&ret, m_val ); +return ret; +} + +u8 GetValue8() +{ +u8 ret; +_mm_store_ps( (float*)&ret, m_val ); +return ret; +} +}; +*/ + +#define AlignAddr(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1)) + +#include "Utilities/StrFmt.h" +#include "Utilities/BEType.h" + +#define _PRGNAME_ "RPCS3" +#define _PRGVER_ "0.0.0.5" \ No newline at end of file