mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Disable frame advance in hardcore mode
Frame advancing is easily exploitable for slowing down a game and artificially improving reaction times and is not allowed in RetroAchievements hardcore mode.
This commit is contained in:
@ -42,6 +42,7 @@
|
|||||||
#include "Core/Boot/Boot.h"
|
#include "Core/Boot/Boot.h"
|
||||||
#include "Core/BootManager.h"
|
#include "Core/BootManager.h"
|
||||||
#include "Core/CPUThreadConfigCallback.h"
|
#include "Core/CPUThreadConfigCallback.h"
|
||||||
|
#include "Core/Config/AchievementSettings.h"
|
||||||
#include "Core/Config/MainSettings.h"
|
#include "Core/Config/MainSettings.h"
|
||||||
#include "Core/ConfigManager.h"
|
#include "Core/ConfigManager.h"
|
||||||
#include "Core/CoreTiming.h"
|
#include "Core/CoreTiming.h"
|
||||||
@ -1081,6 +1082,13 @@ void HostDispatchJobs()
|
|||||||
// NOTE: Host Thread
|
// NOTE: Host Thread
|
||||||
void DoFrameStep()
|
void DoFrameStep()
|
||||||
{
|
{
|
||||||
|
#ifdef USE_RETRO_ACHIEVEMENTS
|
||||||
|
if (AchievementManager::GetInstance()->IsHardcoreModeActive())
|
||||||
|
{
|
||||||
|
OSD::AddMessage("Frame stepping is disabled in RetroAchievements hardcore mode");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif // USE_RETRO_ACHIEVEMENTS
|
||||||
if (GetState() == State::Paused)
|
if (GetState() == State::Paused)
|
||||||
{
|
{
|
||||||
// if already paused, frame advance for 1 frame
|
// if already paused, frame advance for 1 frame
|
||||||
|
@ -121,16 +121,16 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
|
|||||||
m_stop_action->setVisible(running);
|
m_stop_action->setVisible(running);
|
||||||
m_reset_action->setEnabled(running);
|
m_reset_action->setEnabled(running);
|
||||||
m_fullscreen_action->setEnabled(running);
|
m_fullscreen_action->setEnabled(running);
|
||||||
m_frame_advance_action->setEnabled(running);
|
|
||||||
m_screenshot_action->setEnabled(running);
|
m_screenshot_action->setEnabled(running);
|
||||||
m_state_save_menu->setEnabled(running);
|
m_state_save_menu->setEnabled(running);
|
||||||
|
|
||||||
#ifdef USE_RETRO_ACHIEVEMENTS
|
#ifdef USE_RETRO_ACHIEVEMENTS
|
||||||
bool hardcore = AchievementManager::GetInstance()->IsHardcoreModeActive();
|
bool hardcore = AchievementManager::GetInstance()->IsHardcoreModeActive();
|
||||||
m_state_load_menu->setEnabled(running && !hardcore);
|
m_state_load_menu->setEnabled(running && !hardcore);
|
||||||
|
m_frame_advance_action->setEnabled(running && !hardcore);
|
||||||
#else // USE_RETRO_ACHIEVEMENTS
|
#else // USE_RETRO_ACHIEVEMENTS
|
||||||
m_state_load_menu->setEnabled(running);
|
m_state_load_menu->setEnabled(running);
|
||||||
|
m_frame_advance_action->setEnabled(running);
|
||||||
#endif // USE_RETRO_ACHIEVEMENTS
|
#endif // USE_RETRO_ACHIEVEMENTS
|
||||||
|
|
||||||
// Movie
|
// Movie
|
||||||
|
Reference in New Issue
Block a user