RetroAchievements / RetroAchievements/RAIntegration
Delta issue when loading save states
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 124
- Forks
- 34
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 13
Description
I've noticed this quite a few times whilst developing achievements, however when you load a save state, if the achievement has a delta condition, the delta check will compare the state of the game on the frame the state is loaded against the state of the game prior to loading the save state.
Because of this, it's possible to incorrectly trigger conditions within an achievement due to the different states of the memory before and after loading a save state.
One example would be if you made a save state during a damageless boss fight attempt, healed yourself, then loaded the save state, the achievement would then pause lock because it detects your health decreasing from the state before loading the save state to after.
The only solution I've found for this whilst testing my own achievements is to load a save state twice in a row.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named in the issue. Reproduce the problem by loading a save state after changing health during an achievement attempt, then trace the delta-condition check across the save-state load boundary. Done means loading a state no longer compares it with the pre-load game state or incorrectly triggers the condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100