TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.21k stars 385 forks source link

Change default for `OnMovieEnd` to "Pause" instead of "Finished" #4007

Closed RetroEdit closed 3 months ago

RetroEdit commented 3 months ago

I think the default On Movie End state should be Pause, not Switch to Finished.

I believe the basic argument in favor is relatively simple and compelling: if a movie is paused, you merely have to unpause and it will be in the "Finished" state. In contrast: if a movie plays into Finished state, it will continue playing indefinitely and you probably have to replay the entire movie from the start to reach the exact end, which is time-consuming for long movies.

Extra notes

  1. As a side-note, I'm actually not sure what Finished's use-case is in modern times. Rarely if ever is there utility in playing a movie indefinitely past the movie end. You can barely do anything in Finished mode as far as I'm aware: you cannot modify or continue the current movie so anything you do afterwards won't be saved. It does serve to let you know you were previously playing a movie, and it does accept inputs, but those inputs are not going to be saved if you're trying to do serious testing. 1a. As feos mentions, keeping the movie semi-loaded is convenient. That makes sense. Also, it occurs to me that a common tradition in TASing is to end input early, so relevant parts of the movie may occur after the last input.
  2. I realize this is a long-standing default (introduced in b53cc908b8e2543e8a8ca4869121c96e73e27ed9 on Jul 14, 2014 for 1.7.1), maybe even inherited from FCEUX, but I do still think it should be changed. Finished mode was the only movie end option prior to the other options being introduced, so it seems to have been chosen as the default because of that.
  3. (Tangentially, at time of writing, I actually think there might be a change to the emulator behavior where it prevents savestate saves on the last frame in 2.9.2 dev, which I don't think was the behavior prior and disrupts traditional movie recording (where a workflow for continuing a movie can be playing the whole movie and saving a savestate at the end, then loading the savestate). I vaguely recall seeing that commit. I'll try and move this to another issue when I have time to confirm.)

Semi-related: #3989

vadosnaprimer commented 3 months ago

I'm actually not sure what Finished's use-case is in modern times

So that the movie doesn't unload on last frame, and you don't have to load it from scratch again and again every time you've reached the end.

If switching it to Pause doesn't unload it then it's fine, but I think the whole logic needs to be improved: pause on movie end needs to be a checkbox, and movie state to switch to at the end needs to be a radiobutton. Ideal state for judging is paused+finished.

RetroEdit commented 3 months ago

Oh I understand. There's another corresponding option Stop that unloads it, but Pause will allow it to continue.