dolphin/Source/Core/Core
mimimi085181 8b7bfe6cf9 Netplay: Fix synchronization for the Wiinote netplay
The old implementation always polled the local 1st Wiimote and used that as input for the Wiimote that is mapped to the player. But the reporting mode for Wiimotes can be different, even when using the same extensions. So an input for Wiimote 1 with a data size 4 could be used for Wiimote 2, which actually requires data size 7 at that time for example.

The 2nd problem was that the code added a dummy input into the buffer, when the reporting mode changed. But when the data from the other player hasn't arrived yet, the data in the buffer is out of order. Well, i think this is the problem, i'm not 100% sure, because i don't fully understand how the buffer works. But on the other hand, i'm pretty sure this will just force sync the players on reporting mode changes, instead of allowing them to be apart.

Pros:
- No more desyncs caused by big bugs in the code.
- Can use different extensions for different players.

Cons:
- Higher latency, because instead of polling 1 controller per player at once, all controllers are polled in order, send to the other players, before the next is processed.
- Have to setup the Wiimote, which the player is going to use, instead of the 1st one.

Now, if the controller config could temporarily be overridden with the one from another slot, the 2nd problem could be fixed. But at the same time, we would lose the ability to use different extensions. (unless we hack around it somehow, or properly send the used extension to the other players)
2016-07-16 13:00:54 +02:00
..
Boot Move DiscIO enums to a new file 2016-07-13 17:29:27 +02:00
Debugger Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
DSP Further fixes to the formatting change. WX sucks. 2016-06-24 12:16:10 +02:00
FifoPlayer Fix building with PCH disabled. 2016-07-12 12:43:03 -05:00
HLE Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
HW EXI_Channel: Change m_pDevices to m_devices 2016-07-15 01:43:06 -04:00
IPC_HLE Move DiscIO enums to a new file 2016-07-13 17:29:27 +02:00
PowerPC JitCache: Implement block unlinking. 2016-07-16 09:24:10 +02:00
ActionReplay.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ActionReplay.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Analytics.cpp Suppress deprecation warning. 2016-06-26 00:49:51 -04:00
Analytics.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ARDecrypt.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ARDecrypt.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
BootManager.cpp Formatting and setting is now only temporarily changed (#1) 2016-07-05 02:23:19 +02:00
BootManager.h
CMakeLists.txt nullvideo: initial release of null video backend 2016-06-25 22:40:23 +02:00
ConfigManager.cpp Clarify Boot from DVD Message 2016-07-15 13:11:13 -07:00
ConfigManager.h Move DiscIO enums to a new file 2016-07-13 17:29:27 +02:00
Core.cpp Merge pull request #3594 from lioncash/threads-a-joke-about 2016-07-15 08:50:54 +12:00
Core.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Core.vcxproj Add an Analytics reporting system. 2016-06-19 02:55:46 +02:00
Core.vcxproj.filters Add an Analytics reporting system. 2016-06-19 02:55:46 +02:00
CoreTiming.cpp CoreTiming: Drop ProcessFifoWaitEvents. 2016-06-26 11:29:25 +02:00
CoreTiming.h CoreTiming: Drop ProcessFifoWaitEvents. 2016-06-26 11:29:25 +02:00
DSPEmulator.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
DSPEmulator.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ec_wii.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
ec_wii.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GeckoCode.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GeckoCode.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GeckoCodeConfig.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
GeckoCodeConfig.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Host.h VideoCommon: Drop GetConfigName. 2016-06-26 12:34:59 +02:00
HotkeyManager.cpp ControllerEmu: Split the Setting class 2016-07-12 11:42:18 +02:00
HotkeyManager.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MachineContext.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MemoryWatcher.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MemoryWatcher.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
MemTools.cpp Refactor fastmem/trampoline code. 2016-06-27 14:58:20 -06:00
MemTools.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Movie.cpp Move DiscIO enums to a new file 2016-07-13 17:29:27 +02:00
Movie.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
NetPlayClient.cpp Netplay: Fix synchronization for the Wiinote netplay 2016-07-16 13:00:54 +02:00
NetPlayClient.h Netplay: Fix synchronization for the Wiinote netplay 2016-07-16 13:00:54 +02:00
NetPlayProto.h Check if all players have the game before starting netplay 2016-07-10 10:13:34 +02:00
NetPlayServer.cpp Check if all players have the game before starting netplay 2016-07-10 10:13:34 +02:00
NetPlayServer.h Check if all players have the game before starting netplay 2016-07-10 10:13:34 +02:00
PatchEngine.cpp PatchEngine: Clear active codes on shutdown 2016-07-01 13:07:57 +02:00
PatchEngine.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
State.cpp Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
State.h Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00