Commit Graph

799 Commits

Author SHA1 Message Date
twinaphex 4bbc226335 Move netplay_frontend.c to retroarch.c - move global state to
retroarch global state
2020-06-06 21:57:22 +02:00
twinaphex 1f2403392e Cleanup 2020-06-06 20:59:43 +02:00
twinaphex 9fda2bdebd Add TODO/FIXME comments 2020-06-04 14:09:45 +02:00
twinaphex 737718ba5d (network) Turn functions that are not accessed outside static 2020-05-24 20:38:50 +02:00
twinaphex 506271e769 Expand size of frontend variable to avoid warning 2020-05-23 03:25:22 +02:00
twinaphex 5e88958e26 Silence warnings 2020-05-23 03:23:35 +02:00
twinaphex 65534f0286 (netplay frontend) This variable doesn't need to be so big 2020-05-23 03:09:46 +02:00
twinaphex 0fced84f93 (Netplay) Lower announce rate 2020-05-20 23:01:04 +02:00
twinaphex 03ea12d334 Move discord files to network/ 2020-05-20 15:27:27 +02:00
twinaphex ad1aa59ce1 Cleanup != NULL comparisons 2020-05-19 21:15:06 +02:00
Autechre 7b8983a0e0
Merge pull request #10594 from MrHuu/master
(3DS) Enable basic networking / cheevos
2020-05-10 14:07:21 +02:00
twinaphex 3ad4b057f9 Go back to 1.8.4 netcode 2020-05-10 01:02:47 +02:00
MrHuu e519ccd0be (3DS) Enable basic networking / cheevos 2020-05-08 20:50:15 +02:00
twinaphex 0ef1b342e4 settings Cleanups 2020-03-02 20:10:24 +01:00
twinaphex 0c1568c4ab Merge netplay_frontend.c into retroarch.c -
This should be the last file we have to roll into retroarch.c
2020-03-01 18:02:55 +01:00
twinaphex 182afe9561 Style nit 2020-03-01 17:30:42 +01:00
twinaphex 177d2a5903 (netplay_frontend.c) Settings cleanups 2020-03-01 16:24:06 +01:00
twinaphex 29d954bab2 Cleanups 2020-03-01 16:08:49 +01:00
twinaphex 69ffcf5648 (netplay_frontend.c) Simplify code 2020-03-01 15:58:17 +01:00
twinaphex 360fdfedbc (netplay_frontend.c) Cleanups 2020-03-01 15:33:17 +01:00
twinaphex 9dcc941ec5 Reduce get_time_usec calls 2020-02-29 12:51:42 +01:00
twinaphex 74547c0a81 (netplay) Cleanups 2020-02-27 12:02:55 +01:00
twinaphex 85c672a0f6 Settings pointer cleanups 2020-02-19 20:57:02 +01:00
twinaphex 4c95d1af4e (network) Turn some functions into static functions 2020-02-12 20:06:21 +01:00
twinaphex 013117318c (network) Get rid of all the settings pointer grabbing 2020-02-12 20:01:48 +01:00
twinaphex 1fafdb2843 Style nits 2020-02-10 13:18:27 +01:00
twinaphex 64c515bac4 Turn while (true) into for (;;) for easier MSVC backwards compatibility 2020-02-01 04:15:22 +01:00
twinaphex 7f4139c427 Get rid of wrong double ';;' 2020-01-30 16:53:20 +01:00
twinaphex f785e4b045 Replace while (1) with for (;;) - avoids MSVC warnings 2020-01-30 16:15:52 +01:00
twinaphex 764990bb59 Revert "Aggressively simplify netplay_handshake - this function was very"
This reverts commit 096f992cc0.
2020-01-28 19:15:12 +01:00
twinaphex ac72ba5af8 Revert "(Netplay) Cleanups"
This reverts commit 646eba5a92.
2020-01-28 19:15:05 +01:00
twinaphex 846d9ed391 Revert "Cleanups"
This reverts commit 399f039b9e.
2020-01-28 19:14:37 +01:00
twinaphex 21381ff990 Revert "(netplay_frontend.c) Cleanups"
This reverts commit d0a2315098.
2020-01-28 19:14:22 +01:00
twinaphex d0a2315098 (netplay_frontend.c) Cleanups 2020-01-28 15:42:55 +01:00
twinaphex 399f039b9e Cleanups 2020-01-28 15:14:29 +01:00
twinaphex 646eba5a92 (Netplay) Cleanups 2020-01-28 14:56:05 +01:00
twinaphex 096f992cc0 Aggressively simplify netplay_handshake - this function was very
weird - the conditional was never triggered because all instances
of connection->mode being greater than or equal to
NETPLAY_CONNECTION_CONNECTED would already early return anyway
2020-01-28 14:29:30 +01:00
twinaphex 4d36f0d356 Remove rarch_get_cpu_architecture_string - don't have two
functions that do more or less the same thing
2020-01-27 22:51:20 +01:00
twinaphex eb4e365820 (libretro-common) Cleanups 2020-01-27 17:00:18 +01:00
twinaphex f57ca1abba (netplay_room_parse) Fix namespacing of variable 2020-01-27 16:47:11 +01:00
twinaphex e8bc606c20 Move netplay_get_architecture to frontend_driver.c 2020-01-27 16:39:36 +01:00
twinaphex 9f9191819d (netplay_frontend.c) Cleanups 2020-01-27 16:27:51 +01:00
Nils Hasenbanck 600776012d Add Brazil relay server in Sao Paulo. 2020-01-06 18:14:59 +01:00
twinaphex fa328c1590 (Netplay) Cleanups 2020-01-02 17:07:03 +01:00
twinaphex c4e04a6d09 Cleanups 2020-01-02 16:35:55 +01:00
twinaphex fc4a5ad691 Revert "Configurable lobby URL"
This reverts commit cc0b7c42d1.
2020-01-02 15:30:50 +01:00
twinaphex cc0b7c42d1 Configurable lobby URL 2020-01-02 10:15:21 +01:00
twinaphex ad397671a7 Add warning about globals 2019-12-30 06:50:25 +01:00
twinaphex 091c5f6092 Should fix netplay for cores that use the new bitmask code 2019-08-16 16:29:18 +02:00
twinaphex d30b2ecaca Merge menu_input_dialog.c into retroarch.c 2019-08-15 01:08:34 +02:00
twinaphex 0552c64161 (WiiU) Attempt to fix build 2019-08-11 23:39:26 +02:00
twinaphex 8308c41277 (netplay frontend) Cleanup this code - netplay_data should be
properly encapsulated
2019-08-10 17:25:39 +02:00
orbea e13ec54dc6 Fix --disable-overlay. 2019-07-21 10:26:42 -07:00
twinaphex d905986a52 Rename functions - change rarch_ prefix to retroarch_ 2019-07-20 12:43:43 +02:00
twinaphex f4bf218f35 (Menu) We need to tell rarch_menu_running_finished whether we want
to exit RetroArch or not - to avoid certain crashes when trying to
access the settings pointer - which should already be freed at this
point
2019-06-30 11:23:18 +02:00
twinaphex 5f2e3c283d (netplay)/network) Style nits/cleanups 2019-06-26 07:13:50 +02:00
radius 34be5f399c no need to do nat traversal if using relay 2019-05-26 22:39:46 +02:00
radius 370b9681b8 fix netplay paused spam 2019-05-26 22:39:46 +02:00
twinaphex 7fb5d9da62 Revert this 2019-04-27 04:44:01 +02:00
twinaphex 58073eeb15 Small cleanup 2019-04-27 04:43:07 +02:00
Twinaphex c9cfd1cd89 Silence xcode warnings - unused variables 2019-04-20 16:36:01 +02:00
Twinaphex 5cb2e9f54c
Merge pull request #7883 from GregorR/netplay-share-policy
Different (more intuitive?) default netplay share policy
2019-03-02 18:54:19 +01:00
Brad Parker 477d46d52b update copyright 2019-02-22 19:13:36 -05:00
Gregor Richards c0ed989738 Fix stall-out causing total disconnection with >2 players 2019-02-17 21:39:50 -05:00
Twinaphex 9b8efbc712
Merge pull request #8284 from fr500/master
[fix] potential crash when username is empty and discord is disabled
2019-02-14 06:46:46 +01:00
radius 7107175b93 [fix] potential crash when username is empty and discord is disabled 2019-02-14 00:31:02 -05:00
twinaphex 386657a366 (menu widgets backport) Re-commit task queue changes 2019-02-08 08:00:32 +01:00
twinaphex 7022786f34 Revert parts of menu_widgets that were causing breakage, but leave
all the hooks in so we can add them back piece by piece again
2019-02-08 07:26:43 +01:00
radius 701ac1dd72 there is no need for these to be so big 2019-02-07 17:53:03 -05:00
radius 671e90a415 [discord] party & ask to join refinements 2019-02-06 22:45:05 -05:00
natinusala c20ab3864d First version of menu widgets (gl only) 2019-02-06 20:48:24 +01:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
radius 79d280e9c3 [discord] use discord username if available 2019-02-02 14:26:14 -05:00
twinaphex b13777e9fc Header cleanups 2019-01-20 03:16:58 +01:00
radius dad3fe42db [netplay] load subsystem content
cleanup

cleanup
2019-01-14 18:58:57 -05:00
radius 9d0472c3ac [netplay] finding content works now
cleanup
2019-01-14 18:58:56 -05:00
radius f0b8d2d12e [netplay] support subsystem type netplay lobbies 2019-01-14 18:58:56 -05:00
orbea bfc366decc Squeeze extra blank lines with cat(1).
Example:

find . -type f -iname '*.c' | while read -r i; do
  cat -s "$i" > "$i.new"
  mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
twinaphex 93346fed6b Buildfix 2019-01-08 17:53:58 +01:00
radius 58e192881a [netplay] announce subsystems 2019-01-07 23:30:48 -05:00
radius b8f20e60c2 [discord] rewrite secret/join logic to use a queried lobby name 2019-01-06 19:04:08 -05:00
Gregor Richards b9a07a759b Different (more intuitive?) default netplay share policy
The previous default policy in netplay for sharing was to always share.
This appears to be causing more confusion than anything else, mainly
because the UI is terrible. The UI is a different problem, but for now,
I've changed the share policy: If you netplay with only one input
configured, it will share; if you netplay with multiple inputs, and
don't explicitly ask to share one, each device will get one client.
2019-01-03 16:53:30 -05:00
radius 0a6df1743c [netplay] print upnp failed messages
[cheevos] fix warning
2019-01-01 11:22:58 -05:00
orbea d557ab09ce Fix a gcc -Wformat= warning with C89_BUILD.
network/netplay/netplay_frontend.c: In function ‘netplay_announce_cb’:
network/netplay/netplay_frontend.c:734:32: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 3 has type ‘int *’ [-Wformat=]
                sscanf(val, "%08X", &host_room->gamecrc);
                             ~~~^   ~~~~~~~~~~~~~~~~~~~
                             %08X
2018-12-16 19:59:53 -08:00
Brad Parker 51c9914cbb add montreal MITM server for radius 2018-12-09 22:15:45 -05:00
twinaphex ff4fa3be7a Fix more string is too small warnings 2018-11-25 18:49:04 +01:00
meepingsnesroms bcb4d61510 Add NULL check to prevent empty password from crashing RetroArch 2018-11-24 12:58:17 -08:00
Gregor Richards f897b95d09 Avoid buffer overflows due to sha256_hash's nul-terminator. 2018-11-23 08:24:54 -05:00
Gregor Richards 2a67be3a7c
Revert "This should fix netplay passwords" 2018-11-23 08:15:22 -05:00
meepingsnesroms 129beaefb0 This should fix netplay passwords 2018-11-22 18:46:33 -08:00
twinaphex a662b62d19 Use runloop_get_libretro_system_info in more places - clean some code up 2018-10-30 17:11:07 +01:00
twinaphex ba020720db Add HAVE_NETPLAYDISCOVERY 2018-10-12 18:29:52 +02:00
radius e1227b2d68 enable local room discovery on WiiU 2018-10-11 20:15:50 -05:00
twinaphex b7be322170 Cleanups 2018-09-25 15:00:29 +02:00
radius fed74b9e70 [discord] populate data correctly 2018-09-12 01:45:28 -05:00
radius 4d0729187f [discord] start getting ready for ask-to-join functionality, cleanup some of the mess 2018-09-12 01:45:27 -05:00
twinaphex 58472cb696 Silence some warnings 2018-09-12 04:09:19 +02:00
Brad Parker 7a76c6a4da netplay: save lobby details received back from server after first announcement 2018-09-10 21:01:46 -04:00
Twinaphex fd11b205da Silence bunch of warnings 2018-06-21 07:52:01 +02:00
Gregor Richards 2c07561fc1 Fix compatibility between netplay and runahead
Unsurprisingly, netplay and runahead are wildly incompatible; both rely
on internal rewinding, without communicating this fact to each other.
Somewhat more surprisingly, netplay already has all the infrastructure
for negative input latency, as it's structurally the same as receiving
delayed input from a peer. This patch makes the two features
"compatible" by disabling runahead per se when netplay is active, and
using runahead's configuration to adjust netplay's own input latency
feature, which is now allowed to be negative. The effect is mostly the
same (modulo the second core support), and it doesn't confuse netplay
peers.
2018-05-30 22:01:02 -04:00
twinaphex 6761ec471d Silence some Coverity warnings 2018-04-12 21:39:31 +02:00
twinaphex 372603858d Revert "(Menu) Update menu code"
This reverts commit f481924f1e.
2018-04-11 06:10:51 +02:00
twinaphex f481924f1e (Menu) Update menu code 2018-04-11 03:04:58 +02:00
twinaphex ff9aebedca Some more Clang warning fixes 2018-04-09 17:48:11 +02:00
twinaphex 8e7b1ede7f Silence Clang warnings 2018-04-09 17:35:27 +02:00
Twinaphex 08a54e45f2 Get rid of a lot of implicit conversions 2018-04-09 15:56:45 +02:00
Gregor Richards 06b402bc14 Fix a bug in remembering device availability for netplay
Really silly bug had netplay forgetting to unset device availability
when a client goes to spectator mode. As a consequence, in certain
configurations, later joins would automatically choose the wrong device,
and you'd have to manually specify a device to get the right one. This
fixes that.
2018-03-21 19:24:58 -04:00
radius c52fdc469f remove task_push_http_transfer_raw, encode before sending data to the task 2018-03-16 22:38:21 -05:00
Gregor Richards a39bff6e03 Remove an incorrect double-check
Netplay sync incorrectly checked whether the replay pointer was behind
the unread pointer twice, when in the second check it should only have
been checking if it was behind the current execution pointer. Because of
how resimulation works with device sharing, I THINK this could affect
sync. Even if it can't, it's wrong.
2018-03-03 23:03:35 -05:00
Gregor Richards 8cf4127695 Fix bug in string length in strlcpy. 2018-02-16 19:31:00 -05:00
aliaspider 5549b136c2 (msvc) CXX_BUILD + griffin fixes. 2018-02-05 00:25:03 +01:00
Twinaphex 5483f5fc39
Merge pull request #6234 from aliaspider/master
various fixes for CXX_BUILD.
2018-02-04 20:08:43 +01:00
aliaspider 700fce3bd2 various fixes for CXX_BUILD. 2018-02-04 20:03:27 +01:00
Brad Parker 6fc0cc4645 send selected MITM server to the lobby 2018-02-02 15:48:45 -05:00
Brad Parker df27e704a5 add menu option to select different MITM server locations 2018-02-02 15:37:02 -05:00
Twinaphex 8bc1d9965d Fix unused variables/etc. 2018-01-23 07:29:04 +01:00
twinaphex 54726aa668 Remove snprintf_p for now 2018-01-23 06:10:21 +01:00
twinaphex 6437e4b4a9 remove tons of unreferenced local variables 2018-01-23 05:49:03 +01:00
Twinaphex 4a6a97be60
Merge pull request #5429 from GregorR/netplay-input-upgrades-1
Netplay input upgrades 1
2018-01-23 05:01:45 +01:00
twinaphex a80fb7c969 Add some safeguards here 2018-01-22 21:48:28 +01:00
twinaphex 61ff51be2f Start using string_is_equal predominantly 2018-01-16 22:53:38 +01:00
Gregor Richards 84baf5db1f Wrong branch index! 2018-01-05 14:27:02 -05:00
Gregor Richards 73bd969ac9 Fixes for slave mode with multiple input devices 2018-01-05 14:27:02 -05:00
Gregor Richards 984f763d75 Only do our careful resimulation with joypads 2018-01-05 14:27:02 -05:00
Gregor Richards 50de28b1a1 Netplay keyboard hack for keydown/keyup support
An unfortunate hack for cores that translate the keyboard input device
into keydown/keyup events without saving that in the savestate. We
simply replay the previous frame's input before loading the rewound
frame's state, to assure that both the state and the keyup/down state
are correct.

Ideally, cores would save this as part of the state, but it's a bit
proximal and a fairly significant change for those that use it, so it's
easier to fix in netplay.
2018-01-05 14:27:02 -05:00
Gregor Richards a96eb24247 Support for keyboards over netplay. 2018-01-05 14:27:02 -05:00
Gregor Richards c01a199493 Netplay input device abstraction, support for mice
This abstracts away the details of particular input devices for netplay,
and adds support for mice and (similar) lightguns. Unfortunately, in
practice, no core handles mice or lightguns in a savestate-safe way, so
they need to be used in stateless mode to be reliable, but they do work.
2018-01-05 14:27:02 -05:00
Gregor Richards ab669a2db8 Fix a bug that could segfault with fast dis/reconnection. 2018-01-05 14:27:02 -05:00
Gregor Richards 8d5a79fc69 Removing long-obsolete now-disfunctional "netplay flip players" feature 2018-01-05 14:27:02 -05:00
Gregor Richards c2923f5504 Netplay message for input devices not available. 2018-01-05 14:26:19 -05:00
Gregor Richards fff95facc7 New netplay failure messages. 2018-01-05 14:26:19 -05:00
Gregor Richards e4ad16fc1b Document MODE change in netplay README 2018-01-05 14:26:19 -05:00
Gregor Richards dc9ee8c6bc Don't 0-index device numbers! 2018-01-05 14:26:19 -05:00
Gregor Richards f7dba84c67 Netplay mode change improvements
(1) All mode change code unified, so server mode changes and client mode
changes and announcements go through the same functions

(2) New messages which are translateable and work with multiple input
devices
2018-01-05 14:26:19 -05:00
Gregor Richards 2104ac44d9 Fixed server mode changes. 2018-01-05 14:24:43 -05:00
Gregor Richards 6eaaaef995 Minor bugfixes in input resolution. 2018-01-05 14:24:43 -05:00
Gregor Richards 2794031d12 Improved reemulation to not replay unread frames if they haven't changed. 2018-01-05 14:24:43 -05:00
Gregor Richards 74901e6161 Whoops, missed one refactor rename. 2018-01-05 14:24:43 -05:00
Gregor Richards 6946ea1bd3 Netplay support for multiple local devices. 2018-01-05 14:24:43 -05:00
Gregor Richards 95bbd914f1 Fixed >2-player issues with multi-input. 2018-01-05 14:24:43 -05:00
Gregor Richards ed320fd914 Adding and removing players
The new input handling makes adding and removing players more
complicated, since data can be present that's not expected from the
connected clients list, or absent that's expected in the list but
actually shouldn't be there.
2018-01-05 14:24:43 -05:00
Gregor Richards 39243a8d40 Configurable sharing mode. 2018-01-05 14:24:43 -05:00
Gregor Richards abf045ef0e Made device requests (badly) configurable. 2018-01-05 14:24:43 -05:00
Gregor Richards 7af7616d3d New initial connection header and support for inter-version connections. 2018-01-05 14:24:43 -05:00
Gregor Richards fe80c4ce2c Added real pad sharing modes. 2018-01-05 14:24:43 -05:00
Gregor Richards e4029b72c1 Rename things back after renaming for refactoring. 2018-01-05 14:24:42 -05:00
Gregor Richards b897ba4e30 Re-fixed input simulation. 2018-01-05 14:24:42 -05:00
Gregor Richards 8c551f3990 Fixing some counters. 2018-01-05 14:24:42 -05:00
Gregor Richards d1ca90e136 Get rid of this FIXME. 2018-01-05 14:24:42 -05:00
Gregor Richards ed69916e59 First cut of input changes (not yet working) 2018-01-05 14:24:42 -05:00
Gregor Richards 6d4119690d First step (not yet compiling) of changing around Netplay input. 2018-01-05 14:24:42 -05:00
radius 7bdd8e945a show the frontend name and CPU architecture on netplay rooms 2017-12-17 11:51:50 -05:00
gblues 6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex 311b786279 Silence Coverity warning 2017-11-27 04:34:45 +01:00
twinaphex 493d442f8c Silence some warnings 2017-11-26 22:43:58 +01:00
radius 3991f9b316 add frontend name to netplay announce 2017-11-26 13:40:08 -05:00
twinaphex 9875bbbd7d Silence some Coverity warnings 2017-11-26 01:06:48 +01:00
radius e10aee3f1d get a proper error 2017-11-19 21:04:58 -05:00
radius 34934b169c silence coverity warning 2017-11-19 17:34:15 -05:00
radius b32a69889e console buildfix 2017-11-19 16:21:26 -05:00
radius 8dfc585c59 fix another leak 2017-11-19 13:07:51 -05:00
radius c5dfa314ad fix leak 2017-11-19 12:43:13 -05:00
radius 11611acbe4 use correct size here 2017-11-19 09:43:51 -05:00
radius 9b673152f7 fix C89 errors 2017-11-19 09:41:36 -05:00
radius 149469515f Fix lan rooms
Squashed commit of the following:

commit 6e1fea3b16bb330ed2862eb00d2e911221c48a34
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 22:16:02 2017 -0500

    use the baked in address instead of sockaddr

commit 84f2d389fd6352b3037f48c18d133d2f1063d461
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 22:05:57 2017 -0500

    send replies

commit c6733009cc5a25e58391c5fc693b277ea27404b3
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 21:53:12 2017 -0500

    send replies

commit a6816c9481f7ea89a3c97597233e54c6354716e7
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 21:46:55 2017 -0500

    send replies

commit c2453b73ccafbd53192507affbc11d5f279c2e7c
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 21:26:34 2017 -0500

    look for common interfaces

commit fb42e6470242689f5e6160149ef91f0f0abf068d
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 20:06:50 2017 -0500

    send broadcasts in all interfaces

commit b7730596df9775fb815007689e9c7cc06b317b03
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 20:00:17 2017 -0500

    send broadcasts in all interfaces

commit b620a78052d1b95e81d346f3e5efb233e0547793
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 14:30:31 2017 -0500

    add more logging

commit c016c7d559cd631172a58f99cd3e1a1365965b8e
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 14:12:03 2017 -0500

    update log messages

commit 0a49ba61f56f2ca483fa76c7a04f0709c68b95ad
Author: radius <andres.430@gmail.com>
Date:   Sat Nov 18 13:50:47 2017 -0500

    fix lan room listing for rooms > 1, allow connecting in arbitrary ports
2017-11-18 22:43:47 -05:00
Brad Parker bbf6f2f451 fix "may be used uninitialized in this function" warning 2017-10-28 16:01:29 -04:00
twinaphex 1e37aab49b Cleanup 2017-09-30 16:59:14 +02:00
Brad Parker 0a1b3fedc0 VC6 support (targets NT 3.51) 2017-09-06 23:03:02 -04:00
twinaphex e16371b8a5 Merge input_config.c and input_driver.c 2017-08-31 02:25:04 +02:00
Gregor Richards 584e12ed37 Fix disconnection not fully deinitializing Netplay. 2017-08-18 14:13:39 -04:00
twinaphex e56250c84f C89_BUILD fix 2017-08-17 01:41:30 +02:00
radius 6804432fa7 log address family, fix inet_ntop_compat 2017-08-15 21:03:59 -05:00
Brad Parker c072894a93 netplay: show country next to lobby nickname 2017-07-29 02:24:11 +00:00
radius 84e0251a86 add retroarch version to lan announcement 2017-07-24 21:13:28 -05:00
radius 32525ea0d3 rename MITM with Relay 2017-07-24 20:54:33 -05:00
radius f7f613a244 android buildfix 2017-07-24 20:13:53 -05:00
radius e09075dc25 Add RetroArch version and use different icons for different room types 2017-07-24 20:13:52 -05:00
radius 6804540635 improve logging 2017-07-24 20:13:52 -05:00
radius dcd71b403f add RetroArch version to the netplay announcement 2017-07-24 06:14:34 +02:00
twinaphex b11620e1eb Add retro_timers.h/retro_math.h 2017-06-28 04:41:38 +02:00
Twinaphex e2be9e659d Silence some warnings 2017-06-08 02:44:38 +02:00
Gregor Richards fb3c35dc9f Handle forwarding of netplay state demotions correctly.
Netplay state demotions, i.e. changes from playing to spectating or
disconnected states, could cause chain disconnections of all other
clients. This was due to a bug in when MODE change messages were sent.
Clients rely on the server sending all messages in its own order, and as
a consequence, the server typically holds messages for retransmission
until they can be retransmitted at the correct time. MODE messages were
not held, so could be sent early. When they were sent early, this caused
other clients to panic and disconnect.

A smaller but much stupider secondary bug was also fixed, in which the
first connection could be dropped due simply to writing connections[0]
instead of connections[i] somewhere.
2017-06-06 21:35:09 -04:00
twinaphex 449483206f Revert "New attempt to fix memory leaks of struct retro_system_info"
This reverts commit a1d3dd69dd.
2017-05-30 01:44:49 +02:00
twinaphex a1d3dd69dd New attempt to fix memory leaks of struct retro_system_info
char variables
2017-05-29 22:24:10 +02:00
twinaphex d2bc5e0454 Fix more ASAN errors 2017-05-29 02:21:56 +02:00
twinaphex d8f1cf7b5a Style nits 2017-05-28 18:03:11 +02:00
twinaphex 57273a545f Be more careful here 2017-05-28 18:00:47 +02:00
aliaspider b49d2a87ab getaddrinfo error codes can also be positive. 2017-05-28 12:46:39 +01:00
aliaspider 934f7c58ba (WiiU) enable networking. 2017-05-23 10:24:23 +01:00
Gregor Richards 2681352d53 Make sure we flush a netplay pause message, so it isn't forgotten. 2017-05-22 16:27:22 -04:00
Andrés abd6dcd57f Merge pull request #4952 from fr500/fixes
fix delimiter for mitm connect
2017-05-21 12:13:02 -05:00
radius a09a1030c0 fix delimiter for mitm connect 2017-05-21 12:04:50 -05:00
twinaphex aeddb18e31 Rewrite netplay checks 2017-05-21 14:18:10 +02:00
twinaphex 0bb1de9561 Cleanups 2017-05-21 09:16:45 +02:00
twinaphex f51aa6e4ec Add TODO/FIXME note 2017-05-17 09:10:58 +02:00
twinaphex 0aeb683444 Style nits/cleanups 2017-05-16 20:33:14 +02:00
twinaphex 944eff06b8 Cleanup 2017-05-16 20:25:54 +02:00
twinaphex 2562391167 Split up runloop message queue code from netplay_log_connection 2017-05-16 20:24:08 +02:00
twinaphex eb409328ec Style nits 2017-05-16 20:15:57 +02:00
radius 1de95c6413 further refinement of the netplay workflow 2017-05-16 00:18:29 -05:00
twinaphex 61a4e94649 Use string_is_equal_fast 2017-05-16 04:04:21 +02:00
Twinaphex c035f9597a Merge pull request #4921 from fr500/master
NETPLAY menu improvements
2017-05-16 03:00:19 +02:00
radius c783dbff28 remove some more code duplication, lan rooms now show up correctly on left-right 2017-05-15 19:45:23 -05:00
radius a98033f375 make the --start netplay host-- entry context sensitive 2017-05-15 18:58:46 -05:00
twinaphex e2c7671e9f Create rarch_menu_running/rarch_menu_running_finished 2017-05-15 04:31:40 +02:00
twinaphex 42ebe7a7ad Merge runloop.c and retroarch.c 2017-05-11 09:11:46 +02:00
twinaphex de80671658 Simplify content_get_crc 2017-05-06 16:41:22 +02:00
Jean-André Santoni a2542590ef Fix the truncated game name in LAN rooms 2017-04-29 23:41:02 +02:00
twinaphex e6ab06a701 Move path variables 2017-04-29 00:39:29 +02:00
twinaphex 05e4ec733e Move uint variables 2017-04-28 21:03:04 +02:00
twinaphex 7bbd20b31d Move int settings 2017-04-28 19:12:48 +02:00
twinaphex ed53be7c81 Move all bool settings 2017-04-28 14:11:34 +02:00
twinaphex e1e83b17b7 Wrap settings->input.libretro_device 2017-04-25 17:14:46 +02:00
twinaphex 3ec5816259 Rewrite RUNLOOP_CTL_SYSTEM_INFO_GET 2017-04-23 16:41:26 +02:00
twinaphex aea00f1e00 Use memcmp instead of string_is_equal for more instances 2017-04-23 12:17:51 +02:00
Gregor Richards fbb508ab5e Make rewind compatible with netplay.
This commit adds support for temporary desync in netplay. When frontend
features that can't be truly synced, in particular rewind, are used,
netplay is momentarily disabled. As soon as the feature finished, e.g. a
rewind ending, netplay resumes with a state load. For rewind, netplay
peers won't actually experience the effect of rewind, but they will load
the rewound state.
2017-04-18 15:25:58 -04:00
Brad Parker c12cc8e5be netplay: change lobby reannounce period to 600 frames 2017-03-07 12:29:51 -05:00
Brad Parker bb362f307d netplay: don't advertise over LAN or try to open a port with UPnP if we're using a MITM server 2017-03-06 21:39:03 -05:00
bparker06 ced1dc10c1 Merge pull request #4732 from GregorR/netplay-server-spectator-fix-2-electric-boogaloo
Yet another server-is-spectator bug. Don't ever ignore stalls if we're a client
2017-03-06 21:25:18 -05:00
Brad Parker 4f02450bf9 forgot extra storage for NULL byte 2017-03-06 21:10:27 -05:00
Gregor Richards 2f21a3e370 Yet another server-is-spectator bug. Don't ever ignore stalls if we're a
client
2017-03-06 20:13:26 -05:00
Brad Parker d9c78c75f0 fix setting of netplay has_password in lobby announcement 2017-03-06 16:01:45 -05:00
Twinaphex 4b796ae740 Silence warnings 2017-03-06 12:12:00 +01:00
Brad Parker 6a68a01eb9 msvc2005 buildfix 2017-03-05 22:02:55 -05:00
Brad Parker 12a208f75e merge reannounce bugfix from radius 2017-03-05 15:49:07 -05:00
Twinaphex c343a88c10 Silence unused variable warnings 2017-03-05 20:30:14 +01:00
Brad Parker c6b1a4bb48 join MITM server when host starts game, if the announcement requested MITM 2017-03-05 14:19:39 -05:00
Brad Parker bf553fe65c netplay: connect to MITM server instead of host IP if one is specified in lobby listing 2017-03-05 14:19:38 -05:00
Brad Parker 8a01dda5d6 send force MITM setting with lobby announcement 2017-03-05 14:19:38 -05:00
Brad Parker c7c0e1351a send CRC as hex string 2017-03-05 14:19:37 -05:00
Brad Parker 4f2cdf3a84 populate system info before reading it 2017-03-05 14:19:36 -05:00
Brad Parker ad6733b519 add full urlencoder and encode lobby announcement POST data 2017-03-05 14:19:36 -05:00
Brad Parker 9c19f16539 remove debug stuff 2017-03-05 14:19:36 -05:00
Brad Parker 0d81b2005f parse new lobby room listing with JSON 2017-03-05 14:19:35 -05:00
twinaphex c99d83f15c Update 2017-03-05 20:14:01 +01:00
Brad Parker 96650e14ea break early if server frame count is ahead of NOINPUT 2017-02-28 21:46:57 -05:00
Brad Parker fea8a0f780 Don't stall for spectator data when we're not in spectator mode, thanks @GregorR 2017-02-28 11:31:59 -05:00
twinaphex 05b760d0f8 Fix C89_BUILD/CXX_BUILD 2017-02-28 09:52:33 +01:00
twinaphex 5bf5388759 Cleanups 2017-02-28 09:44:44 +01:00
Twinaphex 59f5c596d6 Merge pull request #4707 from fr500/master
LAN scanning into rooms
2017-02-28 05:47:49 +01:00
radius 0c456c2235 comment this out for now 2017-02-27 23:47:04 -05:00
Gregor Richards 8fb1f6a647 Support empty INFO packet for undifferentiated servers. 2017-02-27 22:06:20 -05:00
radius e50ea80dfa integrate the rest of the lan scan parameters 2017-02-27 21:24:34 -05:00
Twinaphex fdbdcfee65 Merge pull request #4691 from GregorR/netplay-slave-mode
Netplay slave mode
2017-02-26 21:49:21 +01:00
Twinaphex b7b3b2cb5f Try to prevent truckload of warnings on iOS 2017-02-26 10:33:03 +01:00
Gregor Richards 07cfd90dc6 Actually USE the new slave options in config. 2017-02-23 21:49:22 -05:00
Gregor Richards 3ff9a43b7d Spectator and slave mode are rewind-free
This commit makes spectator mode and slave mode in netplay always stay
ahead of the input, thereby avoiding rewinds, which is sort of the
point. This also changes catch-up detection to be a bit less eager, so
that they hopefully don't flap between stalling for server input and
catching up with that input.
2017-02-23 19:05:43 -05:00
Gregor Richards e495671563 In spectator mode, we should never be ahead of our peer. 2017-02-22 23:19:22 -05:00
Gregor Richards 3e0bc5acdc Don't flush so eagerly... 2017-02-22 23:19:02 -05:00
Gregor Richards d1ab288d73 Fix update_unread_ptr to handle the case of only slaves connected 2017-02-22 21:10:02 -05:00
Gregor Richards e70ee045bf Initial implementation of Netplay master/slave mode. 2017-02-22 20:34:17 -05:00
Gregor Richards 972b41f803 Fix race condition in NAT traversal task. 2017-02-20 20:16:53 -05:00
Gregor Richards 5f723d1bda Moving NAT traversal into a task to avoid blocking the UI. 2017-02-20 19:08:31 -05:00
Gregor Richards 816d7786ac Re-adding the option to start in spectator mode
This used to be a configuration option because spectator mode and "net"
mode were incompatible. When the ability to switch between player and
spectator was added, the configuration option was removed, since it was
no longer a mode toggle. This re-adds it, mainly so that I can use it to
implement regression tests.
2017-02-16 19:17:06 -05:00
Gregor Richards 4c1abfaa71 Support for reset in netplay
This patch transfers core_reset across netplay. Resets effectively
worked before thanks to check_frames, but this makes resets work even
without check_frames, and in particular should allow resets to force
sync in savestateless cores, bringing them one step closer to actually
being usable by non-experts.
2017-02-15 14:40:37 -05:00
Brad Parker 6d821132f5 msvc buildfix 2017-02-14 02:37:25 +00:00
Gregor Richards aa77d688ec Make announcing netplay on the public lobby optional. 2017-02-06 13:45:58 -05:00
twinaphex e3a1b1859d Fix ./configure --disable-rgui 2017-02-04 09:20:41 +01:00
Gregor Richards 1148b8230c Fixes to stateless+input latency. 2017-02-01 22:54:03 -05:00
Gregor Richards 2ea3936d16 Renaming input_ptr/input_frame_count back to self_. 2017-02-01 22:54:03 -05:00
Gregor Richards 55157e934d input_latency_frames is now configurable and has a range 2017-02-01 22:54:03 -05:00
Gregor Richards 5f5a8dc6d7 CRC searching should really start from run_ptr, not input_ptr 2017-02-01 22:54:03 -05:00
Gregor Richards 561eb42c84 Don't enable input latency if we're not connected 2017-02-01 22:54:03 -05:00
Gregor Richards c4cb94db19 New approach to input latency 2017-02-01 22:54:03 -05:00
Twinaphex 2596de53ec Merge pull request #4523 from fr500/master
add support for no content cores
2017-01-29 04:51:50 +01:00
Gregor Richards 3d24e844a4 We're in client mode if either server OR direct_host is set 2017-01-28 22:39:17 -05:00
radius cfb882f4fc add support for no content cores 2017-01-28 22:12:34 -05:00
Gregor Richards 12e8deedb4 Only disable netplay in deinit_netplay if it was actually on 2017-01-25 22:08:05 -05:00
Gregor Richards 263470a66c Set netplay_enabled to false during deinit_netplay
This simply prevents the odd behavior of netplay automatically
restarting, or trying to restart, when you load a new game.
2017-01-25 21:23:55 -05:00
fr500 29a1d504d7 allow different server ports again 2017-01-25 17:48:43 -05:00
fr500 af14da93d5 fix whitespace 2017-01-25 17:43:56 -05:00
fr500 c097c2062e fix when port is 0 2017-01-25 17:43:17 -05:00
twinaphex 178d959cad Fix C89_BUILD 2017-01-22 21:24:57 +01:00
twinaphex 36b2c48cb5 Fix CXX_BUILD 2017-01-22 21:19:39 +01:00
Twinaphex 3ff158b907 Merge pull request #4436 from fr500/lobby
Basic lobby system (don't merge, just for tracking)
2017-01-22 21:08:43 +01:00
radius a0e6a24f38 use deferred netplay init 2017-01-22 13:07:30 -05:00
radius 33cc168eb9 allow connecting to lobby port instead of the port in settings 2017-01-22 12:29:29 -05:00
Gregor Richards addcbb896a Fixing an incompatibility between stateless mode and the password prompt
Previously, the host would time out waiting for the guest to enter a
password, as the timeout was not conditionalized on whether the guest
was actually playing. This fixes that.
2017-01-22 10:43:09 -05:00
twinaphex 96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01:00
twinaphex 768ce0854c Make driver_set_nonblock_state a public function 2017-01-22 12:47:17 +01:00
Gregor Richards 8c304dfda7 Make the client send an INFO even if it's wrong
This simply gives the server a reason why the client disconnected,
rather than a generic, unexplained disconnection.
2017-01-21 13:18:31 -05:00
radius 0de43b954e can now connect when starting a game too 2017-01-20 16:04:10 -05:00
radius dcca2f8131 only announce if host 2017-01-20 14:33:57 -05:00
radius 8a1fb24fe9 update url 2017-01-19 23:21:22 -05:00
radius 930cde21a2 crc is announced now (for cores that don't have needs_fullpath set) 2017-01-19 21:43:46 -05:00
radius 3dd6c91493 start populating the list 2017-01-19 08:56:56 -05:00
radius 95a2da81e4 start adding ui elements to insert room list into 2017-01-18 22:46:48 -05:00
radius 72cdb390cb reannounce roughly every minute 2017-01-18 21:31:02 -05:00
radius ca2c2a8ce7 separate this 2017-01-18 21:12:01 -05:00
twinaphex 9a87bada55 Style nit 2017-01-17 19:05:33 +01:00
radius f2beb49fd8 Announce netplay games to lobby.libretro.com 2017-01-16 22:24:35 -05:00
Gregor Richards a0f236a83f Use autosave_lock and autosave_unlock during SRAM negotiation
The SRAM transfer in netplay handshake now uses autosave_lock and
autosave_unlock. Will possibly fix a hang/crash bug on Android with
netplay and autosave conflicting.
2017-01-15 18:10:24 -05:00
Gregor Richards e9e7878b5c netplay_buf should use O_NOSIGNAL to avoid SIGPIPE 2017-01-15 10:59:25 -05:00
Gregor Richards 20c0de352c Fix to the netplay_is_alive function when server isn't playing
Fixes a bug by which very strange things would happen if the server went
to spectator mode with exactly one connected client.
2017-01-02 20:03:00 -05:00
Gregor Richards ee55e2d783 LOAD_SAVESTATE can't use player frame timing from a server that's not playing 2017-01-02 18:56:08 -05:00
Gregor Richards cd281d5757 Reverse catch-up, i.e., server-demanded stalling
Previously, if two clients were connected to the same server and one of
them was ahead of the server, the only way to rectify that situation was
for the client to get so far ahead that it stalled, as the server could
only catch up with an ahead client if all clients were ahead. That's
unrealistic. This gives the server the alternate option of demanding
that a client stall. This keeps things nicely in line even with >2
players.
2016-12-24 15:25:03 -05:00
twinaphex 70a1a5f38e Buildfixes 2016-12-24 01:48:36 +01:00
twinaphex 64dc7daeca (MSVC) MSVC build fixes 2016-12-24 01:45:37 +01:00
twinaphex 77e5cdbfde Revert "Rename runloop_msg_queue_push to video_driver_msg_queue_push"
This reverts commit ad7386913c.
2016-12-22 23:36:11 +01:00
twinaphex ad7386913c Rename runloop_msg_queue_push to video_driver_msg_queue_push
and move code to video_driver.c
2016-12-22 13:15:02 +01:00