-
Notifications
You must be signed in to change notification settings - Fork 384
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
Comments
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. |
Recorded my attempts at recreating the bug, managed to accidentally get it first try. |
@feos, it's a mouse up issue caused by me and my "only do things on mouse up" approach. |
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:
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 |
EZGames69 test and confirms this fixes the issue. Closing. |
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:
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.
The text was updated successfully, but these errors were encountered: