In this post I'll discuss what a desync is, why it happens, and how to stop you from desyncing with others.
First of all, a desync occurs when something different is happening on both sides of the Netplay game. The inputs are still the same on both ends but perhaps the timing is slightly off, this ruins everything.
So how do you prevent them? Your settings with your partner must be, for the most part, identical.
Here are the most common reasons desyncs occur and how to fix them:
Different Aspect Ratios (Faster Melee/FM):
Right Clicking your melee ISO > Properties > Gecko Codes, make sure Widescreen 16:9 is deselected. 4:3 is the Ladder default:
FM5 Netplay Safe Kill Music Code not properly utilized:
As mentioned above, the Netplay Safe Kill Music Code is now functional but has changed a bit. In order for this to work, you HAVE to have either Game Music ON or Game Music OFF for it to work. You CANNOT have both selected or neither selected. These codes are found: Right Click your Melee ISO in dolphin > Properties > Gecko Codes:
Dolphin will still report a false positive desync if you have different codes checked but most likely, you can ignore it.
Memory Cards enabled
Disabling memory cards is required on newest builds of Dolphin because they do not sync like they did in 4.0-652. This is the only option you need to change when switching from 652 to the newest build. You can disable them by going to configure->gamecube->and setting memory cards to none in slots A and B. If you followed the above steps and you desync on the new builds, this is likely your issue.
Netplay Community Settings are not enabled (Melee only)
You must have these settings on to sync with your opponent. This code unlocks all characters, stages, and sets to rules to items off, 4 stocks, 8 minutes. To enable them, right click your iso in Dolphin->properties->Gecko codes->check Netplay Community Settings. If you boot to "There is no memory card in slot A", this is most likely your issue.
You have multiple cheats on (Melee/Brawl)
Make sure under AR Codes you have NOTHING selected. Under Gecko Codes, unless otherwise specified:
[Melee 5.0-321] Netplay Community Settings and 60FPS + VRH
[FM5] Faster Melee Community Settings and 60 FPS
[Brawl] Brawl Global Netplay Settings should be the only one selected.
Enable Cheats is not on (under configure)
This causes Netplay Community Settings to not get activated. If you swear you have the Netplay Community Settings enabled and it's still booting to "There is no memory card in slot A", this is most likely your issue.
***Skip EFB Access From CPU in Graphics > Hacks is not on***
Under Graphics > Hacks, make sure the top 3 checkboxes are checked. This includes: Skip EFB Access from CPU; Ignore Format Changes; and Store EFB Copies to Texture Only/
20XX (or any other modded version of Melee) in the same directory without changing the Game ID (Melee only)
Dolphin uses the Game ID to distinguish games when running Netplay. Melee's Game ID is GALE01, which other mods of Melee share. Because of this, Dolphin cannot distinguish between the two games when running Netplay. Therefore, you are very likely to desync with both of these iso's sharing the same Game ID. There are two ways to remedy, the first, is to change the Game ID. For 20XX I normally just change it to something like GALEXX. You can do this by putting your 20XX iso in the same directory as this program made by CeLL and running the program. When you put the iso back into Dolphin, be sure to hit view->purge cache. The second option is to just remove the iso from your folder when you want to play melee on Netplay. I highly recommend the former as it allows both iso's to coexist easily.
If 20xx boots up instead of melee (you may not notice it at first, check the 20XX logo over an empty character slot!), then this is your issue.
Different cheats as your opponent
You must use the same cheats as your opponents. This applies to Gecko codes as well as AR codes. For Melee, you should only have Netplay Community Settings on. If you have any other codes on, disable them by right clicking your iso in Dolphin->properties->Gecko codes/AR codes->unchecking any that aren't Netplay Community Settings. This includes using Widescreen.
If you have other cheats on, this is your issue.
Bad Dump of your game
For Melee: You must have a clean version of NTSC 1.02 Melee. If you don't have the Netplay Community Setting, it is because you do not have this version. Sometimes you may not realize you have a bad dump of melee as it works just like 1.02 NTSC, but you still desync. Right click the iso in Dolphin->properties->info->compute and you must receive the exact value "0e63d4223b01d9aba596259dc155a174". If you do not get this, you must obtain another copy of Melee.
For Project M: you must have a clean dump of the Brawl ISO (Click Here For More Details). In addition, all mods desync on Project M, i.e. you cannot have custom music or textures. For more Project M Desynch Issues, Follow This Guide.
Different revisions of Dolphin
You must be running the same build of Dolphin as your opponent. Builds will not sync with each other. If you notice you and your opponent are on different revisions in the Netplay window, this is your issue.
Wiimotes enabled (Project M/Brawl only)
Wiimotes cause Project M to desync. You must disable them by going to options->controller settings->set Wiimotes to none. If you desync in Project M, this is most likely your issue.
Framelimiter set to anything but 100%
Your framelimiter must be set to 100%. If it was anything else, this is your issue.
LLE Audio set instead of HLE
If you have a different DSP dump as your opponent, LLE audio will desync. You can switch back to HLE audio by going to configure->audio->set HLE. If you were on LLE for some reason, this is your issue.
If you are still having issues Follow this Guide: CLICK HERE
Clearing up some misconceptions:
*Ping spikes do not make you desync.
*Your router does not make you desync.