bsnes
bsnes copied to clipboard
Movie recording persists across savestates
I was recording a movie file while using savestates, attempting to make a segmented run that I could play back. However, the movie file seems to contain every input I made during the time the movie was recording, without regard to savestates, so it desyncs the first time I did a Load State during the recording process.
If the movie recording was also affected by savestates, this would match the behavior of Snes9x-rr with SMVs and lsnes with LSMVs.
I was using the release version of v115, if this makes a difference.
If I understand correctly, you're basically asking for TAS recording capabilities. This is a bit tricky. In the simplest case, all we would have to do is just keep track of the current recording frame or input count in the savestate itself, and then upon loading the savestate, just truncate the input list back to that point. However, it would be possible to have multiple save states and try jumping between them, and if you were to do that, it would be very difficult to figure out what state the recording should be in. About the only way I could really think of to pull this off would be to embed the entire current recording into the savestate itself, so when you load the savestate, it also reloads the entire recording up to that point.
Yeah, I guess I am asking for TAS recording.
At the moment we're basically limited to movie files only being useful for things you can do single-segment. There is some use for that, but Rerecords are much more useful, whether it's for traditional TASes, Theory TASes, or any other use case where single-segment execution may not be feasible.
If this isn't implemented, then I think it would probably be best to end the recording when a savestate is loaded, or at least mention something in the status bar.
Proper re-recording support would be lovely, but I have no idea how difficult it would be to put the movie recording into the save-state. You'd have to create an empty file when the movie recording started, and copy the movie to it when recording finished, because if you jumped around between save-states it would make a mess.
If that's too complex to implement, then just ending the movie and putting something in the status bar would be good - as long as it wasn't overwritten by the "state loaded" message before anyone could read it.