-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Achievements: Fix leaderboard timers persisting #12352
Conversation
Would you be able to provide a memory card and or save state so I can try this locally? Specifically the Spyro challenge in your video. It's not immediately apparent why this happens when I look at the code. |
@F0bes sample: Load SLOT1 in game, will be placed immediately in front of the challenge minigame. |
So it seems to be some sort of race condition. I think it's wrong to assume an updated event should be forced active, especially if we were just told to hide it. If it's supposed to be persistent like that, then we would have an issue with the current implementation after inactive timers are deleted. Going to |
Removes setting the leaderboard timer to active on receiving an update event. This fixes having multiple timers stuck on the screen.
0fa8bc1
to
724f486
Compare
Since this is the root cause, I've updated the commit and PR description. Reverted the fade changes since they are merely preference. Thank you for tracking that down. |
Just to make sure, you've tested this and can confirm it fixes the issue for you? |
Yes. There is a few frames where the old timer persists, but that is expected until the fade completes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks :)
Description of Changes
Remove setting indicator active state in
HandleLeaderboardTrackerUpdateEvent
per #12352 (comment)Image showing the issue:

Demo video showing the issue and before/after:
https://github.com/user-attachments/assets/f04ed5ce-5137-42e8-96be-f284766cdc0a
Rationale behind Changes
Fix the timer being set if events come in out of order.
OLD PROPOSAL (outdated)
Description of Changes
Drop
INDICATOR_FADE_IN_TIME
(0.1) /INDICATOR_FADE_OUT_TIME
(0.5)Replace with
INDICATOR_FADE_TIME
with value 0.1.This makes it highly unlikely to experience a persistent timer.
Rationale behind Changes
Depending on the rate that new timer/achievement (bottom right) indicators are added, it is possible to have indicators that never disappear until you end the emulation.
The new default of 0.1 does not look jarring, and avoids the issue.
Suggested Testing Steps
Use any version of PCSX2 that supports the Achievement UI feature. I used v2.3.171.