Commit Graph

536 Commits

Author SHA1 Message Date
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
Alcaro 485ad9f6f7
add missing %s 2017-11-27 17:15:21 +01:00
Alcaro 0f695f074f
#5802
aren't most of the memdesc fields size_t aka uintptr_t rather than uint64_t? whatever, good enough
2017-11-27 17:07:31 +01: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
Alcaro b97853a536 Rename STRING_REP_ULONG to STRING_REP_USIZE 2017-10-02 22:51:51 +02: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