Enhancements to rewind feature
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
Currently when rewind is enabled we can rewind by holding a button, but if we rewind too far we can "go forward". Moreover we cannot see how far are we rewinded out of our buffer. Furthermore it is sometimes hard to continue gameplay when leaving rewind mode in more action-oriented games. It would be nice to optionally be able to enable "Ready? Go!" on-screen display which pauses the game for a second before resuming, and allows to better time getting back into the game. This would be also good for leaving quick menu.
I suggest that instead of single keybind for rewind we should be able to set "rewind toggle" button, which while hold enables rewind overlay, which shows current progress of the rewind (fully filled, because we're at the end), while pausing the gameplay. With this button held "rewind back" and "rewind forward" keybinds can be used to move trough the progress, so for example user can rewind 5 snapshots back, and decide that is to far, press rewind forward to get only 4 snapshots back, and decide that is ideal.
When "rewind toggle" button is released the gameplay resumes. If "ready! go!" is enabled the game instead stays paused for configured time, and shows countdown until the gameplay is enabled. When it reaches zero the emulation resumes as normal.
Finally, even if user is usually fine with rewinding only a bit, sometimes they might want to rewind very far back and currently it takes a lot of time with bigger buffer. I suggest configuration option to have gradually increasing speed of the rewind - the longer you hold rewind forward/back the faster the rewind happens (Retroarch would jump by increasing amount of snapshots). If user stops holding a direction and presses it again the rewind starts again from slowest speed and increases over time, but obviously continues from current snapshot in the timeline.
Castlevania Advance Collection could be used as good sample for described behaviours. This video demonstrates how rewind works in this emulation: https://youtu.be/Ni6XM2hLQjg?t=266
Alternatively Ninendo Online emulators offer a little different user experience for 2-way rewind, which could be used too.
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 source files or tests are identified in the issue. Start by locating RetroArch's rewind feature and its input and configuration entry points, then compare the behavior with the linked video and examples. Done would require agreed support for two-way timeline movement, progress feedback, optional countdown resumption, and accelerating rewind speed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100