diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp index 5b66b707ea..f8b202ab48 100644 --- a/Source/Core/Core/Movie.cpp +++ b/Source/Core/Core/Movie.cpp @@ -34,6 +34,7 @@ #include "Common/Version.h" #include "Core/Boot/Boot.h" +#include "Core/Config/AchievementSettings.h" #include "Core/Config/MainSettings.h" #include "Core/Config/SYSCONFSettings.h" #include "Core/Config/WiimoteSettings.h" @@ -974,6 +975,12 @@ bool PlayInput(const std::string& movie_path, std::optional* savest } ReadHeader(); + +#ifdef USE_RETRO_ACHIEVEMENTS + if (Config::Get(Config::RA_HARDCORE_ENABLED)) + return false; +#endif // USE_RETRO_ACHIEVEMENTS + s_totalFrames = tmpHeader.frameCount; s_totalLagCount = tmpHeader.lagCount; s_totalInputCount = tmpHeader.inputCount; @@ -1010,6 +1017,12 @@ bool PlayInput(const std::string& movie_path, std::optional* savest } s_bRecordingFromSaveState = true; + +#ifdef USE_RETRO_ACHIEVEMENTS + // On the chance someone tries to re-enable before the TAS can start + Config::SetBase(Config::RA_HARDCORE_ENABLED, false); +#endif // USE_RETRO_ACHIEVEMENTS + Movie::LoadInput(movie_path); } diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 0a0b52e1fc..9b400e7c2a 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -141,6 +141,11 @@ void MenuBar::OnEmulationStateChanged(Core::State state) m_recording_export->setEnabled(false); } m_recording_play->setEnabled(m_game_selected && !running); +#ifdef USE_RETRO_ACHIEVEMENTS + m_recording_play->setEnabled(m_game_selected && !running && !hardcore); +#else // USE_RETRO_ACHIEVEMENTS + m_recording_play->setEnabled(m_game_selected && !running); +#endif // USE_RETRO_ACHIEVEMENTS m_recording_start->setEnabled((m_game_selected || running) && !Movie::IsPlayingInput()); // JIT