Commit Graph

428 Commits

Author SHA1 Message Date
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 bf3188eac4 Combine runloop_ctl and rarch_ctl 2017-05-15 05:06:23 +02: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
Andre Leiradella 78efeb6ae2 Fix griffin and HTTP server builds 2017-05-07 19:52:22 +01:00
twinaphex de80671658 Simplify content_get_crc 2017-05-06 16:41:22 +02:00
twinaphex 33f2fe8029 Move cheevos.c to tasks/task_cheevos.c and add TODO/FIXME note 2017-05-06 05:50:46 +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
Brad Parker c31823aa94 add HTTP POST support 2017-03-05 14:19:34 -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
Andre Leiradella 0c8ee93e3e Moved cheevos files to their own folder in preparation for the changes to support leaderboards 2017-02-03 10:03:57 +00: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