Conversation
We don't need to update tools in the `PauseOnFrame` setter, we can do that in the normal flow. And that logic wasn't able to handler rendering anyway so it was only doing part of what needs to happen.
2 tasks
Morilli
reviewed
May 20, 2026
| { | ||
| // Turbo seek does various things, including telling the core to skip rendering most frames. | ||
| // Thus, we need the seek to end naturally. | ||
| SeekingTo = Emulator.Frame + 1; |
Collaborator
There was a problem hiding this comment.
I understand the intention behind this but it doesn't seem to really work when the emulator is paused. Canceling a seek will just look like it didn't work because the seek will only be finished on the next frame. And emulating a frame in response to a cancel seek request doesn't seem right either. It's probably easier to just not do this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I decided to go with the option of turning TAStudio's
_seekingTointo a property backed byMainForm.PauseOnFrame. I avoided the issue of using MainForm's end-of-seek logic by having it update tools at the end of a turbo seek, in the normal place (which happens before end-of-seek logic) instead of in the end-of-seek logic. Cancelling a seek by settingPauseOnFrametonullno longer updates tools, because (a) this isn't needed anymore when a seek ends; and (b) that logic was unable to have the core render a frame, so it only did part of what needs to happen when a seek is cancelled.In order to properly cancel a turbo seek, we need to emulate one more frame. So TAStudio's
StopSeekinghas additional logic for that now.Clicking the icon at the bottom of the main form to "stop seeking" does not actually set
PauseOnFrame, it just pauses. So issues still exist there. I decided against fixing that because it's a separate issue and isn't trivial to fix. (settingPauseOnFramethere would break the pause at end of movie feature for regular movies)Pausing during a turbo seek will not result in rendering or tools updating. This maybe should be changed, but that also is a separate issue.
Check if completed: