Commit Graph

102 Commits

Author SHA1 Message Date
Gregor Richards 2b437ccb8c Don't need to explicitly demand IPPROTO_TCP (and doing so breaks some
SOCKET_LEGACY builds)
2016-12-03 16:33:48 -05:00
Gregor Richards 0577749fae Netplay LAN scanning is go! (sort of) 2016-12-02 22:40:26 -05:00
Gregor Richards 077d5440ee Allow Netplay to receive a struct netplay_host to connect to rather than
using the configured setting
2016-12-02 21:16:15 -05:00
Gregor Richards 4c18cec752 Added Netplay discovery code (not yet in menu) 2016-12-02 19:49:42 -05:00
Gregor Richards a082df0027 More stripping out of NAT traversal for SOCKET_LEGACY 2016-12-02 13:18:35 -05:00
Gregor Richards 5739be5594 SOCKET_LEGACY doesn't even necessarily have inet_ntoa, so oh well, no
host for you
2016-12-01 20:40:16 -05:00
Gregor Richards 22798e26c7 delay_frames naming consistency
Unifying all of the various inconsistent names of delay_frames into a
single name: delay_frames.
2016-12-01 13:34:37 -05:00
Gregor Richards c7f8cd3c68 Adding NAT traversal announcement for SOCKET_LEGACY 2016-11-30 19:01:32 -05:00
Twinaphex bb499b70be Merge pull request #4104 from GregorR/natt
NAT traversal
2016-11-30 16:09:53 +01:00
Gregor Richards b3ababce9a Fix Netplay IPv6 support 2016-11-30 00:25:16 -05:00
Gregor Richards c342c103ae Always get numeric host/ports instead of names. 2016-11-29 23:08:26 -05:00
Gregor Richards 42da0a0184 NAT traversal in Netplay
For the time being, if NAT traversal is successful it simply announces
it as an OSD message. In the future it will be used to inform a
matchmaking server of the public port.

This patch also included minor fixes to the NAT traversal implementation
to make the select it demands actually doable.
2016-11-29 22:59:46 -05:00
twinaphex d26a213971 CXX_BUILD fixes 2016-11-27 13:30:35 +01:00
Gregor Richards 225cbb387b Updating netplay to use trans_stream for compression 2016-11-26 16:06:52 -05:00
Gregor Richards da0b958aeb Check HAVE_ZLIB and only do zlib compression if it's supported by both
sides.
2016-11-25 11:03:12 -05:00
Gregor Richards db437047f8 Don't use z_const, which is apparently not always defined. 2016-11-25 10:40:25 -05:00
Gregor Richards 679ea058a4 Properly clean up zlib. 2016-11-25 10:40:24 -05:00
Gregor Richards 3ff22c9ed6 Fixes for C++ support. 2016-11-25 10:40:24 -05:00
Gregor Richards 53c6223dc6 Use zlib compression for savestates sent over netplay. 2016-11-25 10:40:24 -05:00
Diego Viola cf0c60bb98 Fix Netplay fullscreen issue
Fixes #3936
2016-11-07 16:01:18 -02:00
twinaphex 0d3752e90f More translatable strings 2016-10-22 05:23:59 +02:00
twinaphex 3334060b03 Add another translatable string 2016-10-22 04:49:04 +02:00
twinaphex 9de0ebe859 Make some more strings translatable 2016-10-22 04:47:50 +02:00
twinaphex 42053a82e1 Prevent some implicit memsets 2016-10-21 19:39:51 +02:00
Gregor Richards 5c206c89f0 Add a netplay advertisement server for LAN netplay detection. 2016-10-10 11:52:54 -04:00
Gregor Richards 2c1cd0d06b Netplay should disable when it deinits, so it doesn't auto-reconnect
when loading a new game.
2016-10-09 09:42:06 -04:00
Gregor Richards 6c15c0de3d Support for architecture-dependence serialization quirks in Netplay
As well as the implementation magic, we now send a platform magic in our
connection header. If the core reports platform dependence and the
platform magic differs relevantly, the connection will be refused.

Since netplay_send_info (client handshake) and netplay_get_info (server
handshake) were practically identical, they've also been merged into a
single netplay_handshake.
2016-10-05 21:12:42 -04:00
Alcaro 46ab267f40 Merge pull request #3700 from GregorR/netplay-serialization-quirks
Serialization quirks
2016-10-06 00:59:14 +02:00
Gregor Richards 49b4143687 Reviving netplay_log_connection, i.e. connection messages on the host 2016-10-05 07:52:14 -04:00
Gregor Richards a636bac428 Style and clarity nits. 2016-10-04 23:07:36 -04:00
Gregor Richards 51683661e5 Changes to Netplay for the recent changes to quirks. 2016-10-04 23:07:36 -04:00
Gregor Richards 90bd741786 Switching serialization quirks to uint64_t for consistency with other
bitfields
2016-10-04 23:07:35 -04:00
Gregor Richards 3fa3fe0fcd Fixes for the other few Netplay initialization points 2016-10-04 23:07:35 -04:00
Gregor Richards 0d661ef6a2 Fix some backwards implementation in reporting serialization quirks 2016-10-04 23:07:35 -04:00
Gregor Richards 07a4ad791d Implemented Netplay initialization quirk 2016-10-04 23:07:35 -04:00
Gregor Richards 5676d0b848 Adding Netplay quirk for untransmittable savestates 2016-10-04 23:06:50 -04:00
Gregor Richards 44931586b7 Removing Netplay workarounds which will soon be replaced by quirks 2016-10-04 23:06:50 -04:00
Gregor Richards 71873e8c97 Moving Netplay pre- and post-frame behavior into core_run
This (mostly) prevents other paths from accidentally side-stepping
Netplay. Netplay itself now sets an in_netplay variable to avoid
self-recursion in its own core_run calls.
2016-10-04 13:40:07 -04:00
Gregor Richards 3953018547 Clarifications to Netplay menu and removing obsolete setting
This commit:
 * Reorders the Netplay settings menu to put more useful options at the
   top.
 * Renames the swap_input setting from "Swap Netplay Input", which is
   meaningless and confusing, to "Netplay P2 Uses C1", which is oddly
   truncated but at least true.
 * Removes the is_client setting altogether, as that's no longer how
   client vs. server mode is determined (each are separate options when
   enabling Netplay)
2016-10-03 17:28:20 -04:00
Gregor Richards e41ac34561 Get rid of global->netplay
Moved settings values into settings->netplay, and global->netplay.enable
is moved into netplay itself, and is no longer a configuration value
whatsoever, as that conflicts with the behavior of the netplay menu.
2016-10-02 22:13:34 -04:00
twinaphex 243dc139d2 Revert "Create path server and add to paths.c"
This reverts commit 00a1e3716a.
2016-10-01 08:17:44 +02:00
Gregor Richards 01d379066e Removing Netplay workarounds in anticipation of quirks API 2016-09-30 16:00:49 -04:00
twinaphex 00a1e3716a Create path server and add to paths.c 2016-09-30 06:22:56 +02:00
Gregor Richards 5b62fbb355 Fix spectator mode to work with the late-serialization workaround 2016-09-29 17:28:01 -04:00
twinaphex da5d43974a netplay_data is a void pointer no more 2016-09-29 20:11:46 +02:00
Gregor Richards 567da56048 Adding remaining netplay menu options
A couple fixes are still necessary for the client, in particular to
recover a "lost" hostname, but now it is possible to start server or
client mid-stream, and to disconnect intentionally.
2016-09-29 13:04:38 -04:00
Gregor Richards 1470b6672b Fix delay_frames=0 mode to work with the recent late-loading workaround 2016-09-28 15:45:52 -04:00
Twinaphex f0a2159f9a remove unused variable 2016-09-28 06:50:43 +02:00
Gregor Richards f665881d6d Workarounds for cores that can't be saved early
Netplay now never serializes/unserializes cores before 60 frames have
been emulated. This is a workaround for buggy cores and documented as
such.
2016-09-27 20:49:16 -04:00
Gregor Richards bd354cd275 Making all Netplay sockets should be cloexec
All Netplay sockets should close-on-exec. There is no reason for
xdg-screensaver to keep Netplay sockets alive.
2016-09-25 23:26:32 -04:00