Any chance someone who actually knows wtf is going on can help with merging Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp?
Both nitsuja and otu0001 completely rewrote something in there, and i have almost no idea what the code is even doing, so trying to merge it without breaking anything or losing changes by one or the other of them is going to be impossible for me.
edit:
http://dl.dropbox.com/u/11111638/Dolphin%20desync-fixes%20x64.exe
http://dl.dropbox.com/u/11111638/Dolphin%20desync-fixes%20x86.exe
This is the desync-fix clone i linked above (rbc61dbdf58a8bb088109839c5f25e7183830b166) merged with tas-input. I defaulted to otu0001's changes in WII_IPC_HLE_Device_usb.cpp, as mentioned above. I don't know if there's anything important missing there, but hopefully not. Until someone who knows wtf looks at it, there's nothing i can do about it. I did send otu0001 an email and suggested he merge more-save-fixes himself though, so with any luck he'll do it right.
This should not be any different for gc controller movies, but it's possible i fucked something up when merging, so i'd advise against using it for those.
If anyone wants to test it, the biggest things to look for are that playing back from save state is always the same as playing it back from the start. It still desyncs even without save states, but it seems quite rare compared to what it used to. Extremely limited initial testing suggests save states aren't causing desyncs either, though obviously it's hard to say at this point. Also, do note that for wiimote movies you must always restart dolphin every single time you start a new recording, or when playing one back. It won't work if you don't.