Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cheevos] Retroachievements are permanently in hardcore mode, preventing loading a SaveState #16529

Closed
kwyxz opened this issue May 15, 2024 · 3 comments · Fixed by #16530
Closed

Comments

@kwyxz
Copy link
Contributor

kwyxz commented May 15, 2024

Description

Attempting to load a saved state with Retro Achievements enabled triggers a message that "You must pause or disable Achievements Hardcore Mode to load states"

Expected behavior

I should be able to load a saved state since Hardcore Mode is disabled.

Actual behavior

It appears that Hardcore Mode is always enabled, even when the configuration says otherwise.
Taken from retroarch.cfg :

cheevos_enable = "true"
cheevos_hardcore_mode_enable = "false"

However, I am unable to load a saved state.

I believe this issue was introduced in 2013370

Steps to reproduce the bug

  1. Run Retroarch and enable RetroAchievements
  2. Confirm Hardcode mode is DISABLED
  3. Start a game with a core that supports RetroAchievements
  4. Save state
  5. Try to load state

Bisect Results

2013370aa94cad4be5a392776aef3bfe4f4a4d84 is the first bad commit
commit 2013370aa94cad4be5a392776aef3bfe4f4a4d84
Author: Jamiras <32680403+Jamiras@users.noreply.github.com>
Date:   Sat May 11 17:57:36 2024 -0600

    update to rcheevos 11.3 (#16512)

 cheevos/cheevos.c                                  | 11 ++-
 deps/rcheevos/include/rc_client.h                  |  6 ++
 deps/rcheevos/include/rc_client_raintegration.h    | 11 +++
 deps/rcheevos/include/rc_runtime_types.h           |  3 +-
 deps/rcheevos/src/rc_client.c                      | 38 ++++++++--
 deps/rcheevos/src/rc_client_raintegration.c        | 43 ++++++++---
 .../src/rc_client_raintegration_internal.h         |  5 ++
 deps/rcheevos/src/rcheevos/condition.c             |  9 +++
 deps/rcheevos/src/rcheevos/condset.c               |  1 +
 deps/rcheevos/src/rcheevos/consoleinfo.c           | 85 +++++++++++++++++-----
 deps/rcheevos/src/rcheevos/rc_internal.h           |  1 +
 deps/rcheevos/src/rcheevos/value.c                 | 68 +++++++++++++++++
 deps/rcheevos/src/rhash/hash.c                     | 48 +++++++++---
 13 files changed, 278 insertions(+), 51 deletions(-)

Version/Commit

  • RetroArch: 1.18.0 current HEAD : ce6dbcd

Environment information

  • OS: Debian 12 + Android 11
  • Compiler: gcc on Debian 12, on Android 11 I used the APK from the buildbot (there is no stable 1.18.0 APK on the buildbot btw)
@viachaslavic
Copy link
Contributor

In addition to what's described, also:

  • unable to load state if hardcore is paused
  • unable to resume hardcore after pausing in the current session

@Jamiras
Copy link
Contributor

Jamiras commented May 15, 2024

Thanks for the detail and the bisect. I made a faulty assumption about how a variable was being used. A fix is pending.

@kwyxz
Copy link
Contributor Author

kwyxz commented May 15, 2024

Thank you for the very quick fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants