So what do you use to store the whole movie (like actions, state of the cores... something to ensure that the movie reproduces properly)?grinvader wrote:If we knew, that'd help. So far there's an added problem of feature-based randomness:unless there's a particular game or genre that has it (games that cause it I can at least look into it more)
- skipping frames is bad. Forcing autoframe rate with a max speed of 1x and 0 max frameskip would be a solution, though hackish.
- step-by-step... completely breaks most movies. Unusable so far. Recording just 1 frame in step-by-step is enough to break movies for some games.
- and the last one I found, rewind states. When zsnes saves a rewind state, "something" happens and makes it go differently compared to if zsnes didn't save that state. Standard states do not seem to have that behaviour.
So, if you record a movie with 0 frames skipped, rewinds states set at 0, and never using step-by-step you'll never(?) desync. At least I never got a desync in ~500 test movies when using the same version of zsnes the movie was made with.
Depending on how you store it, it can affect the movie. This would be the kind of issue that can cause the first two problems..
For rewinding (ideally, it shouldn't be allowed in the first place), it could be the savestate data (either incomplete or needs more data) or something fundamentally about the recording (which could be related to the movie data storage or the emulator processing the data) could be the issue.
I'll try to create a small movie and look into these issues...