Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TAStudio]Desyncs keep happening during TASing. Possible solution. #2186

Closed
EZGames69 opened this issue Jul 1, 2020 · 5 comments
Closed

Comments

@EZGames69
Copy link

So starting with BizHawk 2.3.3, there have been some nasty desyncs regarding TAStudio. It involved the way clicking and dragging inputs work. Before, when you clicked and dragged inputs in TAStudio, it would pause emulation (if emulation was unpaused while doing this), and wouldn't resume and load a savestate until you let go of the mouse button, but now it continues to playback while dragging, and every time you made a new input in the process, TAStudio would keep loading the previous state.

This becomes a problem when people do this in quick succession, and as a result, it may accidentally skip over some inputs and load an incorrect savestate. Here is a video of it happening in real time: https://youtu.be/9S8ieyGd0pM

Direct your attention to this part:

sggGyzlt

This is the root of most of these desyncs. Greenzone does not emulate these new input frames correctly, and may not even know those inputs exist. This is why many of the current desync issues have been happening. Granted, it was much worse back in 2.3.3, it seemes to have been improved in later versions, but I've been seeing this more consistently as recently as yesterday for a Genesis game.

Possible Solution: When dragging inputs, emulation should continue to pause until the mouse button has been released, only then should TAStudio load a savestate. Since 2.3.3 was the first version of BizHawk I've seen that doesnt automatically pause emulation when dragging inputs, I feel it's safe to say this is why the desyncs have been happening.

@vadosnaprimer vadosnaprimer changed the title [TAStudio]Desyncs keep happing during TASing. Possible solution. [TAStudio]Desyncs keep happening during TASing. Possible solution. Jul 1, 2020
@vadosnaprimer
Copy link
Contributor

There's a greenzone consistency check in dev builds. If you can figure out an easy way to make tastudio create a bad state that would fail this check, it will help A LOT.

@EZGames69
Copy link
Author

Recorded my attempts at recreating the bug, managed to accidentally get it first try.

https://www.youtube.com/watch?v=bqMeEXR-GRU

@adelikat adelikat self-assigned this Jul 1, 2020
@adelikat
Copy link
Contributor

adelikat commented Jul 1, 2020

@feos, it's a mouse up issue caused by me and my "only do things on mouse up" approach.

@ghost
Copy link

ghost commented Jul 3, 2020

I get a desync so often it became almost impossible to tas now. I checked with the greenzone consistency and it gives bad dataeven when im not giving inputs at all, from frame 0 and so on. I tried with dev build aswell on a fresh movie and it gave me a bad data, this time not from the start but during the first cutscene for the game (Crash Team Racing NTSC-U); ONLY before a couple of X press (no inputs dragging at all) to start the story mode, Integrity check passed with 100% consistency (only on dev build)

Here's what i did:

  1. Started Crash Team Racing - USA
  2. I opened 2.5dev, started a new tastudio project
  3. Let it play for a while (4k frames), without giving inputs
  4. Did a integrity check, everything was fine
  5. I started story mode, then played and edited a bit just to see if that would have triggered something
  6. Did another integrity check. Now it had bad data in the first cutscene, just after the beginning of adventure mode

N.B.: On 2.4.2, i had a desync at least 2x day, burning many hours of tasing. Now the tas it's over, but that desync of course still happens while tasing. With integrity check it starts from frame 0 with bad data, however the bk2 plays just fine. I personally checked and fixed every single desync that happened while tasing

@adelikat
Copy link
Contributor

adelikat commented Aug 5, 2020

EZGames69 test and confirms this fixes the issue. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants