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
Netplay: Redesign Wiimote data exchange. #11070
Conversation
2bc0e4b
to
908d094
Compare
|
What's the big thing stopping Wii Remote configuration working like GameCube controllers in this? |
|
The way the GameCube Netplay index re-assignment is implemented is a bit unorthodox; without going into details, it relies on the fact that polling a GameCube controller is fundamentally stateless. The poll at timepoint X+1 is independent of the poll at timepoint X. This is not true for Wiimotes, as they have internal motion simulation state that relies on the actual time point. Practically speaking, we probably need to split the simulation update from the poll in order to make this work. This should also allow an optimization (that we have for GC) where we pack multiple controller polls into a single packet if multiple players are on the same Dolphin instance. |
This comment was marked as outdated.
This comment was marked as outdated.
Yeah, though might that cause issues for the game itself since it could get data updates at an inconsistent rate?
That was done specifically because changing stuff would break NetPlay. If we can fix that then it will no longer be necessary. I think it still breaks if you change what's in the GC controller ports, but I'm not 100% sure. |
Well we would still call it at the same time from the game's perspective, I just mean we split it out from the current Update() into two functions that we call one after the other with the netplay sync in-between. Basically right now I do in this PR: But what I want to do is: |
|
Oh okay so it'd still be synchronous, just split into two distinct steps instead of interleaving the simulation update and data push. |
|
Yeah, exactly. |
bc4f64d
to
091111c
Compare
a2e9f8a
to
8dd8b68
Compare
|
Alright, I think this is ready now. Please test and review. |
802c7db
to
c06e675
Compare
74acf91
to
6aa77d1
Compare
…x of the Wiimote in the emulated system.
6aa77d1
to
f0d2149
Compare
…e GameCube controller one.
…for network bandwidth.
f0d2149
to
e137f7f
Compare
|
JMC asked me to look through this PR. Can't say I read every line of code (in particular not the part about controller numbers), but the approach seems sound overall. |
Complete rewrite of how Wiimotes work in netplay. Should solve basically all the weird issues you can run into when using Wiimotes in netplay.
Feature set:
Not implemented in this PR: (because it's not critical and the PR is already huge)