diff --git a/Source/Core/Common/Src/ArmCPUDetect.cpp b/Source/Core/Common/Src/ArmCPUDetect.cpp index f04d7d9b49..0c9a8c6e64 100644 --- a/Source/Core/Common/Src/ArmCPUDetect.cpp +++ b/Source/Core/Common/Src/ArmCPUDetect.cpp @@ -279,3 +279,8 @@ std::string CPUInfo::Summarize() return sum; } + +bool CPUInfo::IsUnsafe() +{ + return false; +} diff --git a/Source/Core/Common/Src/CPUDetect.h b/Source/Core/Common/Src/CPUDetect.h index 967be0949b..0463e11105 100644 --- a/Source/Core/Common/Src/CPUDetect.h +++ b/Source/Core/Common/Src/CPUDetect.h @@ -77,6 +77,7 @@ struct CPUInfo // Turn the cpu info into a string we can show std::string Summarize(); + bool IsUnsafe(); private: // Detects the various cpu features diff --git a/Source/Core/Common/Src/x64CPUDetect.cpp b/Source/Core/Common/Src/x64CPUDetect.cpp index 2fa25e8074..b9ed2b538a 100644 --- a/Source/Core/Common/Src/x64CPUDetect.cpp +++ b/Source/Core/Common/Src/x64CPUDetect.cpp @@ -267,3 +267,8 @@ std::string CPUInfo::Summarize() if (bLongMode) sum += ", 64-bit support"; return sum; } + +bool CPUInfo::IsUnsafe() +{ + return !bFlushToZero; +} diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index ea54163c30..41d5c339d6 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -58,6 +58,7 @@ #include "State.h" #include "Movie.h" +#include "NetPlayProto.h" #include "PatchEngine.h" // TODO: ugly, remove @@ -374,6 +375,10 @@ void EmuThread() DisplayMessage(cpu_info.brand_string, 8000); DisplayMessage(cpu_info.Summarize(), 8000); DisplayMessage(_CoreParameter.m_strFilename, 3000); + if (cpu_info.IsUnsafe() && (NetPlay::IsNetPlayRunning() || Movie::IsRecordingInput() || Movie::IsPlayingInput())) + { + PanicAlertT("Warning: Netplay/movies will desync because your CPU does not support DAZ and Dolphin does not emulate it anymore."); + } Movie::Init();