[Feature Request] Core initiated reset needs some way to notify frontend
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
This is requesting some way for a core to notify the frontend when it performs a reset, or some way for the core to ask the frontend to perform a reset.
The Stella core performs a reset when Start is pressed. This happens internally to the core, and the frontend does not know this happens.
There is a chunk of code that is executed in the CMD_EVENT_RESET handler that does not run when this occurs.
In particular, the RetroAchievements code expects to be notified when a reset occurs to reset its internal state (rcheevos_reset_game). This cannot occur if the core does not notify the frontend that the reset occurred. I do not know how important the networking, runahead, or any other piece of highlighted code is in this scenario.
Expected behavior
Core internal reset behaves the same as frontend initiated reset.
Actual behavior
Core internal reset does not reset frontend state in the same way as frontend initiated reset.
Steps to reproduce the bug
- Load a game that supports measured achievements. (originally reported with Basic Math)
- Cause the measured achievement to progress (solve a problem in Basic Math)
- View the progress in the achievement list
- Press Start to reset the game.
Note progress remains (some progress may reset depending on how the achievements are written - the Queen of Sciences illustrated above does not) - Use the Quick Menu to reset the game.
Note progress resets
Bisect Results
n/a
Version/Commit
any
Environment information
- OS: any
- Compiler: any
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
Start with retroarch.c lines 2575-2604 and compare the CMD_EVENT_RESET handler with the Stella core's internal reset path. Reproduce the issue using Basic Math and measured achievements, then trace where rcheevos_reset_game is called; done means a core-initiated reset leaves frontend state consistent with a Quick Menu reset.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- api, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100