Post subject: XOR rerecording
Editor, Skilled player (1172)
Joined: 9/27/2008
Posts: 1085
I am TASing Life Force/Salamander, and many, many times, I wanted to record one player, and let the other player play out whatever input I set it off to do. As it stands, I either modify the .fm2, or try to remember what I did with one player as I work out the other player. And right now, the editing I'm doing to my run involves remembering a very long sequence with one player. The basic idea I'm thinking about is that when you load an earlier state, it won't blow away the input for later frames. And when you press a button, it inverts the movie file's input of whatever the button represents. Going past the end of the movie file will add in blank frames, and invert the null sequence with the TASer's input. As the movie file is preserved between loading states, this is probably incompatible with bulletproof recording I've heard about. Though, if nothing changed when you loaded up an earlier state, the later state shouldn't have any problems syncing up anyway. One applications I can think of is 2-player runs. Inputting null for player 1 after you did everything you need to do for P1 lets you avoid worrying about it as you work out P2. Another is, perhaps, erasing some input that looks bad, but wouldn't have any impact on the overall run. Missed shots, perhaps? I haven't actually seen this idea around, so if it already has been discussed, point me to it. If not, let me know if you understand what I'm trying to say, and whether the idea is any good.
Player (120)
Joined: 2/11/2007
Posts: 1522
Basically, a read-only toggle that can be set for individual players? Sounds like a job for Lua :) You could have a script that watches input and records it on top of "real" FCEUX recording. Then when you load an earlier state, have it re-send that input as you record the next player. If you want it to work over multiple sessions and be sync stable for any combination of saving/loading it would be trickier, but this simple form shouldn't be too hard. I also seem to remember someone did this at some point for a movie so maybe it already exists :S
I make a comic with no image files and you should read it. While there is a lower class, I am in it, and while there is a criminal element I am of it, and while there is a soul in prison, I am not free. -Eugene Debs
Editor, Experienced player (730)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Alden, you're probably thinking of the Sonic 3 TAS. IIRC, Tails' input was recorded on a separate modified Gens, and then Sonic's input was made without Tails' input changing.
Homepage ☣ Retired
upthorn
He/Him
Emulator Coder, Active player (388)
Joined: 3/24/2006
Posts: 1802
This is an emulator feature called "Multi-track recording" and has already been implemented in gens, and I could swear I remember hearing adelikat talk about using it in FCEU. Also snes9x has it, doesn't it?
How fleeting are all human passions compared with the massive continuity of ducks.
Editor, Skilled player (1172)
Joined: 9/27/2008
Posts: 1085
alden wrote:
Basically, a read-only toggle that can be set for individual players?
More like a read-only toggle that can be set for individual buttons (not necessarily individual players), and will only write if the button is pressed. The writing would invert whatever the movie file has at that point for that button. If you're not pressing anything, it will simply read as normal.
upthorn wrote:
This is an emulator feature called "Multi-track recording" [...]
Using FCEUX right now. "Multi-track recording"? I'll look into that. Will it even allow messing around with A and B without affecting the D-Pad of the same player? Maybe I want to shoot in time with the music! The XOR idea was just running through my head for a while, and I only posted it when I had come crashing into a problem, and was also in a rush for something else over here.