Pad mapping and the UI behind it is significantly confusing,
and has been confusing users since NetPlay was introduced.
As part of a large code cleanup to help NetPlay more stable,
introduce a better pad mapping system where local pad mapping
is handled by the client. Now, all the server and other
clients know is which player have which controllers, and the
clients only know this so they can show the pad mapping in the
UI; they don't do anything else with it.
A future cleanup will use this pad mapping data to completely
ignore the pads configured in the settings pane on the host.
If we don't do this, then when the game starts we'll send out the
buffer size to clients being a super large value of junk, and they'll
hang forever trying to accumulate an input buffer a size that they'll
never ever reach in a million years.
This never manifested in release builds for some reason.
This should be transparent, but it may cause regressions.
The idea here is that now all players, including the host of the server,
talk to the server through TCP/IP networking. This significantly reduces
our codepaths through netplay, and will prevent strange local-only bugs
from happening.
The cleanup isn't 100% finished yet. The NetPlay dialog still drives the
server through private APIs. I eventually want to sanction off the server
entirely, so all communication is done through TCP/IP. This will allow us
to have high-traffic public servers that can relay multiple games and
lobbies at a time, and split off channel and game management to people
other than the host.
This is all still just a pipe dream, though.
Feedback is in logs as suggested by skid_au. The checkbox is still there, but
mostly for people who would like to opt out (unfortunately, I can not be sure
how this feature may behave for some routers - there's a hell of a lot of bad
UPnP implementations.)
The Visual Studio stuff is a little messy, so I apologize if anything is a bit
off. I tested most configurations and it worked.
I also tested CMake on Debian Wheezy, Ubuntu Saucy, and Mac OS X Mountain Lion.
All seemed to be OK.
Also, some tab/space mismatches removed from VideoOGL, and some places I missed in VideoDX[number] projects.
Now, the Core is literally the only project with tab/space mismatches (on a large scale).
Parent message alerts by the active window. This way if another window is open it isn't pushed behind the main window. We probably should parent the message alerts by the calling window instead, but this may be good enough.
Make sure there is only one instance of some modeless windows (Cheats Manager and Net Play).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7257 8ced0084-cf51-0410-be5f-012b33b47a6e
Move NetPlay code from DolphinWX to Core.
Even NetPlay with nowx should be possible now if anyone felt like implementing a CLI for it ;)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7119 8ced0084-cf51-0410-be5f-012b33b47a6e
Add Hungarian translations by Delirious.
Update Italian translations by RebuMan.
Update German translations by JackyCola and LucasX.
Update Greek translations by Gpower2.
Update Frensh translations by Pascal.
Make sure the game list is refreshed when the GC language is changed.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6826 8ced0084-cf51-0410-be5f-012b33b47a6e
Ideally we should be more character set aware, but at the moment we
use anonymous 7/8-bit strings in too many places.
Fix use of AddGrowable{Col,Row}. Any (non-zero) rows/columns must
have been created first by adding an item to it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5648 8ced0084-cf51-0410-be5f-012b33b47a6e
For some reason something in (or included in) Frame.h messes up the SFML inclusion in NetPlay.cpp.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5426 8ced0084-cf51-0410-be5f-012b33b47a6e