AnS
Emulator Coder, Experienced player (728)
Joined: 2/23/2006
Posts: 682
Well, yes, mostly the above, but with two major differences. 1st. Each instance must record its own movie file (even though the Input log will be the same), in order to allow "seeking". For example, when you need to rewind to the frame 300, but you only have a savestate at the frame 200 and you don't want to repeat typing the old Input, you just switch to Read-Only mode and replay the movie from frame 200 to frame 300. All instances should be able to replay the movie without context switching. 2nd. You should never unpause while in Read+Write mode, because instances are not synchronized with each other at all. Slow and measured Frame Advance is the only way to ensure that, say, frame 1000 in the 1st instance is emulated at the very moment of time when the 2nd instance emulates the frame 1000. And if you unpause emulation or hold Frame Advance for too long, very soon one instance will outrun another, and will emulate frame 1003 while another emulates frame 1002, recieving the same Input. Unpausing the emulation while watching the movie in Read-Only mode is safe, unless you try to make a savestate. Just don't create savestates when emulator is unpaused. Before savestating you must ensure that both instances are at the same frame of the movie, and oftentimes it's not so. You have to be careful and always look at the Frame Counter display. These simple rules come naturally when you start actually making such kind of TAS. In 2006 I wanted to make one, but didn't receive any support, because I wanted to make Playaround (with the emphasis on sync instead of speed). Link to video