Post subject: Re-syncing Old Runs
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
Hi, I have a question about working with older runs made on older emulators. I am wondering if it is always possible to achieve the same state an older run achieves on a newer emulator if you can correctly account for added in (or I guess in rare cases subtracted) lag frames in the right locations in the movie. For example, if an old movie has the player running right for 12 frames before pressing A to jump, and the new movie on a new emulator adds a lag frame within those 12 frames, making the movie file 13 frames before the jump, will the resulting state at the jump always be identical? By state I mean RAM or even instruction level execution. I ask this as I am having trouble syncing some parts of flagitious' Umihara Kawase run made on snes 9x improvement 9 to bizhawk 1.9.1. I have tried repeatedly, so I am wondering if it should at least be possible in principle so I know how much effort to put into it. But I guess it's also a question I am interested in in general, since I have only limited technical knowledge about emulation. Thanks for any replies!
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
For the reference (even if not strictly related): http://tasvideos.org/forum/viewtopic.php?t=14178
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
MESHUGGAH
Other
Skilled player (1917)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
edit: basically the TL:DR; version of my post from the thread feos linked above me. No, it isn't always possible. Regarding emulation... this is highly depends on how it was properly emulated on said platform of that game. Maybe it's just different starting RAM state, maybe the former one had an exploit or erronous implementations of behaviour on real console fixed later. Regarding games... yes, most of the time you can easily fix with minor hex editing "basic" (NES emus/games) games, but if a video game developer uses RNG seed based on something that the emulator gives wrong values compared to console or emulation highly increased that dramatically changes the flow of extensively used features (SNES emus/games). Umihara Kawase resyncing requires effort. Answering your question, yes, you can probably recreate the same states on the newer emulation. Lag frames are likely to change and their "reason" or level of appearance because of the difference of cores.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
What is changing when those lag frames are being added in? In my above example, if the machine state is identical at the start of the 12 frame sequence up to the jump, what is changing in instruction execution when the lag frame is added in the newer emulator? Can it change the final outcome?
Amaraticando
It/Its
Editor, Player (159)
Joined: 1/10/2012
Posts: 673
Location: Brazil
At least for Super Mario World, I am able to transform a smv into lsnes format that won't desync in a given level. However, I've noticed some timing differences (not lag) in some parts. For instance, after the player gets Yoshi's wings and exits the cloud level, it takes one more frame in Snes9x than in lsnes for the game mode change. But, if I remember correctly, Snes9x starts the level 1 frame before. So, you will probably have to see if there are those little divergences.
MESHUGGAH
Other
Skilled player (1917)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Alyosha: this isn't how it works (game says: ok, add lag frame here). http://en.wikipedia.org/wiki/Input_lag#Console.2FPC_processes_next_frame Timing is important and even the sligthiest change of these "sensitive" factors can have a dramatic result (compared to what you have thought of)
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
MESHUGGAH wrote:
Timing is important and even the sligthiest change of these "sensitive" factors can have a dramatic result (compared to what you have thought of)
Yet SM64 syncs without problem. Lol.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
http://tasvideos.org/userfiles/info/21288338289808557 Ok here is a faithful re-sync of flagitous' run. It plays each level exactly as he did. It is about 100 frames longer then his run. about 30 frames is lag, and about 70 is loading time. So my question now is what should I do with this? Is there a procedure to replace older runs with ones on more accurate emulators? 1.5 seconds seems like a lot over a 1:46 run, it would be nice to have a more accurate representation.
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Masterjun
He/Him
Site Developer, Skilled player (1987)
Joined: 10/12/2010
Posts: 1185
Location: Germany
Yeah. Don't.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
I wasn't planning on submitting it, I was just wondering if the current publication file can be replaced with this one so it is more representative of reality. And if so what is the procedure for this? I see the 'resyncing movies officially' thread, should I post it there? That looked like a discussion thread to me. I'm not looking to get any credit or anything, I'm just wondering about the policy.
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
There were some cases where the converted movie synced right away and both files were published, but there's none when a manually resynced and actually different file was added like that. So the only thing you can do is posting your movie in the publication's thread in case someone wants to run it. But again there's no decision about adding at least a link to such files to the pub description. And yes probably the 2 threads could be merged.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
Sorry I am still confused. Flagitous' inputs remain the same (on non-lag frames), but the time should be 1:47.97 (bsnes) instead of 1:46.42 (snes 9x). There is no official way to fix this? For the purposes of accurate record keeping?
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3572)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
We don't modify published movie files. In theory we can add an additional movie file (the .bk2) but there's no official way to do this. Doing so involves tinkering with the database.
It's hard to look this good. My TAS projects
MESHUGGAH
Other
Skilled player (1917)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Alyosha wrote:
So my question now is what should I do with this?
Improve it and submit it.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
MESHUGGAH wrote:
Alyosha wrote:
So my question now is what should I do with this?
Improve it and submit it.
I have tried and failed (repeatedly.) Well if anyone out there is interested, feel free to take the .bk2 as a starting point. I will be very impressed if someone can improve even a single frame of game play. At least then it can be submitted and a more correct record can be official. Thanks for the replies all.