TASEmulators / TASEmulators/BizHawk

Warn the user before closing if the cycle count won't be saved properly

Open
#2,341 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Similar to #2203, but distinct. Generally, TASers will want to know if the cycle count for Game Boy movies will not be saved properly, since it's the most precise mechanism for timing. The only way to calculate the cycle count is to emulate to the end of the movie (because VBLANK frames on Game Boy can have differing amount of cycles).

With my changes in #2337, this is slightly improved because the cycle count will then only be saved if it's guaranteed to be valid. However, this still doesn't prevent the user from forgetting to seek to the end of the movie to save the cycle count, it only prevents them from saving the wrong cycle count by instead saving no cycle count at all.

Note: we could also provide an option in the nag UI to have the movie session automatically seek to the end of the movie and save the cycle count. This would make saving it properly very convenient for the user.

In IRC, this was discussed, and I don't think it's necessarily a good idea for 2.5 at this point, but I think it's worth considering for the future.


More specifically, this is not a simple as it may first seem:

  • Nagging the user about cores where the cycle count can be inferred from the frame count seems annoying and pointless. If more cores expose their cycle count in the future, this doesn't mean the user needs to be nagged about not reaching the end of the movie for those cores.
  • Every exit-based interaction like this can become complicated. For instance, how is importing into TAStudio from a current movie session going to be handled?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the related issues #2203 and #2337, then trace how closing a movie session and importing into TAStudio are handled. Define the exit interaction and identify which cores need a warning when the cycle count is not guaranteed valid; done means the behavior is specified for those cases without unnecessary nagging.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.