Emulator Issues #9789
Netplay input records desync when pad buffer changes
Tested with SUPER SMASH BROS. Melee (GALE01) [md5:0e63d4223b01d9aba596259dc155a174] and also a modified version of that game Melee Netplay Community Build (MNCE02) [md5:bcd6d912d6ff2fb03dcc277ade4457cc].
Replays (Dolphin TAS Movies) saved during Dolphin Netplay desync* if the pad buffer is changed at any moment during the recording.
This applies (AFAIK) to both replays made from the game start, checking Record inputs on the Dolphin Netplay window; and replays made after starting the game, using the option on the top menu Movie > Start Recording Input, if there was a pad buffer change after it. Basically, if there is any pad change during the input record, the replay will desync.
This affects the entire replay, even the parts before the pad buffer change, for some strange reason.
If the two players record the match, both replays will be desync'd, but they will be identical if they began at the same time (as far as my testing went). It is possible for two players to have a different replay if the recording begins at different times, specifically, the replay that began after the bad buffer change will not desync (see my file upload bellow). Replays made by a spectator (a player with no controller assigned) also desync accordingly.
I have tested it many times and replays do not desync if no buffer change is made, even if they began recording after the game start or there were buffer changes before recording.
*when I say "desync", I mean that replays do not match what happened on the game, specifically, random stages choices do not match. Desync'd replays will always play the same way, though
Steps to reproduce¶
The easiest way to test it is to start a Netplay session with GALE01 and check Record inputs on the Netplay window. Try going to Training mode and choose a RANDOM stage, exit Training mode, change pad buffer, choose a RANDOM stage again, and leave Netplay. The final replay's choices should now be different.
Happens both in local Netplay and remote Netplay sessions, using Direct and Traversal Server connections and being a player or an spectator.
Dolphin versions tested¶
I have only tested this on 5.0-321 and 5.0-613. Most of the testing I made was offline on my own computer (two instances of Dolphin), but I have also tried online a couple of times and it does happen.
Windows 10 Home Single Language 64-bit (10.0, Build 10586)
Intel Core i5-5200U @ 2.20GHz (4 CPUs)
NVIDIA GeForce 920M
I started a match with a player and a spectator and I tried to choose a RANDOM stage three times.
The player records the match from the beginning (
melee.dtm), then I change the pad buffer before the second stage choice. Before the third choice, the spectator begins to record the match from that point (
The match recorded by the player desyncs entirely, even parts before the buffer change; the match recorded by the spectator stays correct, you can check it against the video file.
Unfortunately, the files are too big (~32MB) for me to upload it here (the
.mp4 files take most of the space). As such, I have uploaded it to MEGA: