Open RetroEdit opened 1 week ago
This issue seems to go back to 84fd85c74933e802546f620737c39d89deda2765 where this feature was first introduced. GreenzoneInvalidated
is only set when starting a movie via TAStudio, but you're opening the .tasproj via recent movies outside of TAStudio.
And yes you're right, state 0 is never invalidated, so trying to seek to frame 1 will crash, even if yes
was selected.
My comment about work sensibly was more about a repeated workflow where it will prompt you every time you open the movie since the hash itself doesn't seem to be adjusted.
But mostly, in an ideal world it's not even desirable to have the movie open in hash mismatch cases in my opinion. Since autoload makes mistakes like this easy, and reopening with the correct game is what the user wants in those cases, not altering their movie.
I personally would have no issue with the movie open operation being rejected by default like system mismatch, but judging by #2328 and my rejected PR #2335 (which I'd forgotten about till now), this would probably be harmful to certain emulated systems and movie configurations like multi-disk bundler.
Perhaps this feature should be reworked to instead of prompting for deleting greenzone, prompt whether to load the project in the first place and not touch the greenzone.
Even clearing greenzone would not invalidate branches, so trying to load a branch would also result in a crash assuming savestates are not valid. The best way is probably to warn the user that bizhawk might outright crash and let them proceed if they choose to.
Branches could technically be repaired by playing back the branch input log from the start and re-creating the savestate.
But I agree: prompting whether to load the project would probably be best. Using a tasproj with a different game is not really supported behavior and probably not worth the effort to implement right now.
So in essence, currently even the "safer" option has issues. (I'm skeptical that it would work sensibly anyway, but at the moment it's completely broken.)
https://github.com/TASEmulators/BizHawk/blob/97785b2af2824622766b64b810b78a21e26aabb0/src/BizHawk.Client.Common/movie/MovieSession.cs#L198-L203
Repro
File > Movie > Record movie...
and thenTools > TAStudio
to open TAStudio so it gets saved as a.tasproj
. Close BizHawkFile > Movie > Recent
to open the previously created.tasproj
Output
Host env.