SourMesen / Mesen

Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
https://www.mesen.ca
GNU General Public License v3.0
1.26k stars 320 forks source link

Movie file playback seekbar (Feat request) #623

Open Apocalypse612 opened 5 years ago

Apocalypse612 commented 5 years ago

It would be great if there was a seekbar for saved Movie files from Mesen, similar to what the History uses. Having no ability to speed up or rewind a saved movie is frustrating.

Thanks

SourMesen commented 5 years ago

Thanks for the request. There isn't any simple solution for this though - movies are just a list of inputs, so if you want to seek to 20 minutes into a movie, you need to emulate 20 minutes worth of frames beforehand.

The only reason the history viewer can do this is because it keeps a ton of extra information in memory beyond what movie files save, which lets it seek to any point in time instantly.

I do eventually want to allow the history viewer to load a movie file and allow you to seek through it, but that would still require some amount of preprocessing to be done (e.g to seek 20 minutes into a video, it would still need to re-emulate 20 minutes worth of gameplay, which would likely take 3-5 real minutes to do at maximum speed)

mkwong98 commented 5 years ago

How about inserting save state to the saved movie file every minute like key frames in a movie file? Then at most we only need to re-emulate 1 minute of gameplay.

SourMesen commented 5 years ago

While it is possible, then the movies' seek ability relies on save states remaining 100% compatible between versions of Mesen, so it's not exactly a perfect solution since save states compatibility breaks every now and then. It would also add another layer of complexity to the whole thing, too.

Apocalypse612 commented 5 years ago

Too complex to be implemented. Okay, understood. A shame because of how amazingly SMALL in size the movie file saves are.