Commit Graph

81 Commits

Author SHA1 Message Date
d7de39ebbe Merge pull request #3588 from Aestek/feature/improve-netplay-dialog
Improve netplay UX
2016-07-26 02:12:22 +02:00
6a0fc4c438 Improve netplay setup dialog UX
* Focus "Hash Code" / "IP address" text box by default in "Connect"
* Focus game list in "Host" tab
* RETURN keypress now host/join depending on selected tab
* Remember last hosted game
* Remove PanicAlertT:
	* Simply log message to netplay window
	* Remove them when they are useless
* Show some netplay message in OSD
	* Chat messages
	* Pad buffer changes
	* Desync alerts
* Stop the game consistently when another player disconnects / crashes
* Prettify chat textbox
* Log netplay ping to OSD

Join scenario:
* Copy netplay code
* Open netplay
* Paste code
* Press enter

Host scenario:
* Open netplay
* Go to host tab
* Press enter
2016-07-23 20:58:51 +02:00
9a01ced032 Fix bogus UPnP requests
UPNP_AddPortMapping needs our IP address, however enet_address_get_host
will return 0.0.0.0 or a host name in most cases.

This gets our IP address from the socket to the IGD.
2016-07-23 20:04:07 +02:00
cac9516e39 Add Configurable RTC 2016-07-19 11:20:02 -04:00
51c77e8eea Add md5 testing to netplay
Allows to test current game, an arbitrary game or the sdcard of all players
at once.
2016-07-16 22:48:46 +02:00
cd9a58b704 Check if all players have the game before starting netplay
https://bugs.dolphin-emu.org/issues/8885
2016-07-10 10:13:34 +02:00
JDV
d6a2fcd26c Formatting and setting is now only temporarily changed (#1)
Add the cheat setting to the bootmanager config cache, and reformat
2016-07-05 02:23:19 +02:00
8a2e7fddd1 Sync the "enable cheat" setting over netplay 2016-07-05 02:23:10 +02:00
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
2030ad4577 SCM: Use std::string.
Those macros may be defined, or not. We should support both cases, so use std::string as it also defines the length of the string.
2016-05-05 00:22:49 +02:00
84b0a930da NetPlayServer: Get rid of some explicit deallocations 2016-03-08 19:31:36 -05:00
20f8b471a8 Fix build with MINIUPNPC_API_VERSION >= 16
miniupnp commit c4991916e5c12a7754e935e71a5313e75af6aeb9 introduced a
4th statusCode parameter to miniwget function. This parameter is set
to a value returned by the UPnP device. We have to check if it's set
to 200 to make sure the result is a success. Also, we now have to check
if descXML is set in the error case and free it.
2016-03-04 10:59:57 +02:00
db8dbae131 Fix some very minor spelling mistakes
Found by Lintian https://lintian.debian.org/
2016-02-19 01:48:10 +00:00
b92a80ba1b Fix: segfault in NetPlayServer::GetInterfaceListInternal for ifa_addr-less interfaces
`NetPlayServer::GetInterfaceListInternal` was crashing dolphin with a segfault when encountering a
network interface without `ifa_addr`.
2016-02-08 21:21:27 +01:00
8ce9191948 NetPlayServer: Make SendAsyncToClients use an unique_ptr 2016-01-27 01:34:03 +01:00
34ae512d91 NetPlayServer: Make pad data unpacking nicer to read 2016-01-27 01:34:03 +01:00
1c808a2835 NetPlayServer: Possible out-of-bounds access on invalid input
if a pad or wiimote number was outside bounds (e.g. 42353543232),
it would still have been read from the array, which could lead to
inappropriate consequences, like a segfault.
2016-01-27 01:33:50 +01:00
8e1be37feb NetPlayServer: in-class initialization 2016-01-27 01:20:44 +01:00
40c7a2fb7d Use the current commit hash in the netplay version
So that it contains the current commit and not an arbitrary date that
may or may not be up-to-date. This will cause tears as people will not
be able to use netplay with one diverging commit that does not touch
anything related. On the other hand, users can’t be trusted.
2016-01-07 00:17:05 +01:00
ec6a48ff76 Merge pull request #2876 from CastellaFactory/master
[Netplay] Add "Force Netplay Listen Port" feature that was in old netplay branch
2015-12-02 14:20:47 +01:00
4eace2b49e CMake: simplify FindMiniupnpc.cmake
miniupnpc.h provides MINIUPNPC_API_VERSION since 1.7 and we require 1.7
or later, so there is no reason to have version detection code for older
versions.
2015-10-12 02:26:35 +02:00
bcee41b65d Merge pull request #3123 from lioncash/null
Core: Replace 0 literals with nullptr
2015-10-03 16:19:46 +13:00
0f6c4653a4 Core: Replace 0 literals with nullptr 2015-10-02 22:06:17 -04:00
8c5744bca7 miniupnpc API version 14 changed the upnpDiscover functions, adding an argument for TTL (should default to 2)
this enables support for that should the build system have that specific version installed, the miniupnpc bundled in the project is unchanged
2015-09-30 16:50:58 +02:00
1f83a3d146 [Netplay:Traversal] Add "Force Netplay Listen Port" feature that was in old netplay branch 2015-09-20 20:15:13 +09:00
4fc71e9708 Common: Remove StdMakeUnique.h 2015-09-06 04:09:53 -04:00
11f3ded296 NetPlay: Return mapping arrays and player list vectors directly
Simplifies pad map dialog initialization
2015-08-17 21:56:25 -04:00
b1af2a6bbc NetPlay: Use std::array for the pad mappings 2015-08-16 00:08:09 -04:00
2420004af8 [Netplay] Always set a playerid
And don’t blindly dereference a pointer.
2015-08-15 15:12:20 +02:00
8dd9d35689 Merge pull request #2653 from AdmiralCurtiss/netplay-video-mode-sync
Netplay: Sync Video Mode settings. (Progressive Scan and PAL60)
2015-08-02 12:42:21 +12:00
daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
84e42904a2 Netplay: Sync Video Mode settings. (Progressive Scan and PAL60)
Must match so that Wii games don't desync, especially PAL games.
2015-06-24 12:41:10 +02:00
c9af7def28 Fix some warnings 2015-06-23 21:11:56 +02:00
abb65515b9 Netplay: Sync GameCube SRAM. 2015-06-14 16:52:08 +02:00
f2631a835e Simplify and improve.
Note - I removed a SleepCurrentThread(1) the patch added which seemed to
be unrelated to the actual job at hand.  If there was a real need for it
(which sounds like it would be an enet-related bug - enet_host_service
is supposed to *sleep*), that needs to be dealt with...
2015-06-06 01:28:01 -04:00
04ca54623c Compare timebase of netplay users to detect desyncs. 2015-06-06 00:52:02 -04:00
ac26f8e79f Pass strings by const reference where possible 2015-05-28 20:54:55 -04:00
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
6dd10033d3 NetPlayClient: Fix reassembling of system time from packets
The shifts need to be swapped to correctly reassemble a 64-bit integer.
2015-05-23 23:06:30 -04:00
76bbd46829 Core: Remove some header inclusions in header files
Replaces them with forward declarations of used types, or removes them entirely if they aren't used at all. This also replaces certain Common headers with less inclusive ones (in terms of definitions they pull in).
2015-05-08 22:38:59 -04:00
e0ef8fc03f NetPlay: Make the enet interrupts work
Otherwise, it would work but any async sending would be delayed by 4ms or
wait until the next packet was received.

Also increase the client timeout to 250ms, since enet_host_service is now
really interrupted.
2015-03-18 10:16:11 +01:00
8ee402863d NetPlay: Remove RunOnThread and add SendAsync methods
Add std::unique_ptr<sf::Packet> objects to a queue instead of functions,
makes things easier to read, and avoids headaches while checking the
lifetime of the concerned objects.
2015-03-18 10:16:11 +01:00
44d7207a1c NetPlay: add a Common/ENetUtil namespace
Move WakeupThread in it
2015-03-18 09:23:44 +01:00
603fe25349 NetPlay: use a workaround from comex’s dc-netplay to interrupt enet 2015-03-18 09:23:44 +01:00
0ac8fd0214 Merge pull request #2183 from RachelBryk/netplay-time
Use system time for start time in netplay.
2015-03-18 13:52:17 +11:00
e7d237f199 Use system time for start time in netplay. 2015-03-11 23:21:14 -04:00
3df51e553f Fix crash when server's client disconnects. 2015-03-07 04:40:24 -05:00
a629555e6b Added Gui elements in Netplay Setup Diag so a person can choose a traversal server
Fixed bug with UPnP so that it will grab the proper address and protocal
Fixed bug that caused dolphin to freeze when host codes were to large
2015-02-25 18:28:26 -08:00
1dea3780a7 Fixed issue where players were not disconnecting correctly 2015-02-25 18:28:26 -08:00