Commit Graph

799 Commits

Author SHA1 Message Date
Cthulhu-throwaway 690c802921
Netplay Stuff (#13375)
* Netplay Stuff

## PROTOCOL FALLBACK
In order to support older clients a protocol fallback system was introduced.
The host will no longer send its header automatically after a TCP connection is established, instead, it awaits for the client to send his before determining which protocol this connection is going to operate on.
Netplay has now two protocols, a low protocol and a high protocol; the low protocol is the minimum protocol it supports, while the high protocol is the highest protocol it can operate on.
To fully support older clients, a hack was necessary: sending the high protocol in the unused client's header salt field, while keeping the protocol field to the low protocol. Without this hack we would only be able to support older clients if a newer client was the host.
Any future system can make use of this system by checking connection->netplay_protocol, which is available for both the client and host.

## NETPLAY CHAT
Starting with protocol 6, netplay chat is available through the new NETPLAY_CMD_PLAYER_CHAT command.
Limitations of the command code, which causes a disconnection on unknown commands, makes this system not possible on protocol 5.
Protocol 5 connections can neither send nor receive chat, but other netplay operations are unaffected.
Clients send chat as a string to the server, and it's the server's sole responsability to relay chat messages.
As of now, sending chat uses RetroArch's input menu, while the display of on-screen chat uses a widget overlay and RetroArch's notifications as a fallback.
If a new overlay and/or input system is desired, no backwards compatibility changes need to be made.
Only clients in playing mode (as opposed to spectating mode) can send and receive chat.

## SETTINGS SHARING
Some settings are better used when both host and clients share the same configuration.
As of protocol 6, the following settings will be shared from host to clients (without altering a client's configuration file): input latency frames and allow pausing.

## NETPLAY TUNNEL/MITM
With the current MITM system being defunct (at least as of 1.9.X), a new system was in order to solve most if not all of the problems with the current system.
This new system uses a tunneling approach, which is similar to most VPN and tunneling services around.

Tunnel commands:
RATS[unique id] (RetroArch Tunnel Session) - 16 bytes -> When this command is sent with a zeroed unique id, the tunnel server interprets this as a netplay host wanting to create a new session, in this case, the same command is returned to the host, but now with its unique session id. When a client needs to connect to a host, this command is sent with the unique session id of the host, causing the tunnel server to send a RATL command to the host.
RATL[unique id] (RetroArch Tunnel Link) - 16 bytes -> The tunnel server sends this command to the host when a client wants to connect to the host. Once the host receives this command, it establishes a new connection to the tunnel server, sending this command together with the client's unique id through this new connection, causing the tunnel server to link this connection to the connection of the client.
RATP (RetroArch Tunnel Ping) - 4 bytes -> The tunnel server sends this command to verify that the host, whom the session belongs to, is still around. The host replies with the same command. A session is closed if the tunnel server can not verify that the host is alive.

Operations:
Host -> Instead of listening and accepting connections, it connects to the tunnel server, requests a new session and then monitor this connection for new linking requests. Once a request is received, it establishes a new connection to the tunnel server for linking with a client. The tunnel server's address and port are obtained by querying the lobby server. The host will publish its session id together with the rest of its info to the lobby server.
Client -> It connects to the tunnel server and then sends the session id of the host it wants to connect to. A host's session id is obtained from the json data sent by the lobby server.

Improvements (from current MITM system):
No longer a risk of TCP port exhaustion; we only use one port now at the tunnel server.
Very little cpu usage. About 95% net I/O bound now.
Future backwards compatible with any and all changes to netplay as it no longer runs any netplay logic at MITM servers.
No longer operates the host in client mode, which was a source of many of the current problems.
Cleaner and more maintainable system and code.

Notable functions:
netplay_mitm_query -> Grabs the tunnel's address and port from the lobby server.
init_tcp_socket -> Handles the creation and operation mode of the TCP socket based on whether it's host, host+MITM or client.
handle_mitm_connection -> Creates and completes linking connections and replies to ping commands (only 1 of each per call to not affect performance).

## MISC
Ping Limiter: If a client's estimated latency to the server is higher than this value, connection will be dropped just before finishing the netplay handshake.
Ping Counter: A ping counter (similar to the FPS one) can be shown in the bottom right corner of the screen, if you are connected to a host.
LAN Discovery: Refactored and moved to its own "Refresh Netplay LAN List" button.

## FIXES
Many minor fixes to the current netplay implementation are also included.

* Remove NETPLAY_TEST_BUILD
2021-12-19 16:58:01 +01:00
Autechre 3b1a1ac8da
Remove miniupnpc dependency (#13340)
* use custom libretro-common UPNP

* Remove miniupnpc
2021-12-09 05:52:42 +01:00
Autechre fbbe351f7d
UPnP cleanups and refactorings (#13325) 2021-12-04 21:16:34 +01:00
Autechre a44f5bbf78
Fix UPNP port mapping failed error - switch to a permanent lease time, (#13324)
but request it to be removed when we do netplay_free
2021-12-04 15:45:29 +01:00
Autechre b6695d8921
Netplay changes proposed for 1.9.14 (#13314)
* Added setting to allow/disallow players other than the host from pausing the game.
* Added a sublabel for netplay max connections.
* Fixed port override macro from not being set immediately after the port setting.
* Fixed memory leaks.
2021-12-04 02:34:21 +01:00
Jamiras b6fef13109
disallow achievement when spectating netplay (#13318) 2021-12-04 02:00:53 +01:00
twinaphex 680b631ad6 Revert "(Netplay) Cthulhu88 - Remove forced disconnection on unknown netplay command -"
This reverts commit 65a421d90f.
2021-11-12 19:08:34 +01:00
twinaphex a6ed23d031 Revert "(cthulhu88) Add netplay chat command"
This reverts commit 6a490c0383.
2021-11-12 19:01:31 +01:00
twinaphex efa16a8fca Revert "(Netplay) Cthulhu88 -"
This reverts commit cb4028fd3d.
2021-11-12 19:00:42 +01:00
twinaphex 4025b678bf Revert "Add missing netplay_protocol.h"
This reverts commit 1fc73f11b5.
2021-11-12 19:00:33 +01:00
twinaphex d7a8bc55a3 Revert "(Cthulhu88) Add netplay hotkey bind"
This reverts commit deaf116d38.
2021-11-12 19:00:24 +01:00
twinaphex 3b6196144f Revert "Bump NETPLAY_PROTOCOL_VERSION up to 6"
This reverts commit 823c54a39d.
2021-11-12 19:00:16 +01:00
twinaphex 9c7a55352d Revert "(Cthulhu88) Netplay polishing patch"
This reverts commit 82b8c0a60e.
2021-11-12 18:59:59 +01:00
twinaphex 62a8b13b1a Revert "(Cthulhu88) Netplay - initial netplay tunnel"
This reverts commit 369cafe1ad.
2021-11-12 18:59:52 +01:00
twinaphex 9fe56d6865 Revert "(Cthulhu88) Fix build errors of previous commit"
This reverts commit 393f9bdd48.
2021-11-12 18:59:42 +01:00
twinaphex 753332ff18 Revert "(Cthulhu88) Fix for multi-char arrays"
This reverts commit e64cd24715.
2021-11-12 18:59:35 +01:00
twinaphex fc460dbb9c Revert "Fix final warning and remove unused variables"
This reverts commit 5dd0e90fca.
2021-11-12 18:59:29 +01:00
twinaphex 70ee3fbca7 Revert "(Cthulhu88) New Netplay MITM Part 2"
This reverts commit 34c374737c.
2021-11-12 18:58:40 +01:00
twinaphex 34c374737c (Cthulhu88) New Netplay MITM Part 2 2021-11-12 06:31:54 +01:00
twinaphex 5dd0e90fca Fix final warning and remove unused variables 2021-11-11 05:48:29 +01:00
twinaphex e64cd24715 (Cthulhu88) Fix for multi-char arrays 2021-11-11 05:38:45 +01:00
twinaphex 393f9bdd48 (Cthulhu88) Fix build errors of previous commit 2021-11-11 05:04:17 +01:00
twinaphex 369cafe1ad (Cthulhu88) Netplay - initial netplay tunnel 2021-11-11 04:55:37 +01:00
twinaphex 82b8c0a60e (Cthulhu88) Netplay polishing patch 2021-11-11 03:37:14 +01:00
twinaphex 823c54a39d Bump NETPLAY_PROTOCOL_VERSION up to 6 2021-11-10 05:11:17 +01:00
twinaphex deaf116d38 (Cthulhu88) Add netplay hotkey bind 2021-11-10 04:58:59 +01:00
twinaphex 1fc73f11b5 Add missing netplay_protocol.h 2021-11-10 02:50:29 +01:00
twinaphex cb4028fd3d (Netplay) Cthulhu88 -
* Netplay Chat menu
* Toggleable bind for chat (bound to ~ [tilde] by default)
2021-11-10 02:41:02 +01:00
twinaphex 6a490c0383 (cthulhu88) Add netplay chat command 2021-11-09 02:52:04 +01:00
twinaphex 0af9b72388 (network) Cleanups 2021-11-06 00:27:51 +01:00
twinaphex 65a421d90f (Netplay) Cthulhu88 - Remove forced disconnection on unknown netplay command -
will be backwards compatible with any version that removed this
disconnect. instead of disconnecting, we just read the data and
ignore, like most network implementations do
2021-11-05 22:49:59 +01:00
twinaphex c912619653 * Move port_map to runloop_state
* Get rid of p_rarch dependencies in functions
2021-11-05 22:03:13 +01:00
twinaphex 0a209c4564 Last suggested fix 2021-11-05 19:22:22 +01:00
twinaphex a50cd1105e Hopefully fixes it 2021-11-05 19:18:26 +01:00
twinaphex 67c010394d Remove netplay_discovery.h - hopefully fixes other build issues 2021-11-05 19:12:55 +01:00
twinaphex aadedf39f2 Buildfixes as suggested by forum member - should hopefully fix
console builds as well as other issues
2021-11-05 19:04:52 +01:00
twinaphex 3bc6dd97d9 Revert "Revert "Move stray globals to networking state""
This reverts commit a796f1ce58.
2021-11-05 18:55:55 +01:00
twinaphex ac1f6ab599 Revert "Revert "Move some stray globals to netplay state""
This reverts commit 722f9bbfac.
2021-11-05 18:53:33 +01:00
twinaphex 7e7b2d826e Revert "Revert "Remove obsolete comment""
This reverts commit 3597643faa.
2021-11-05 18:53:20 +01:00
twinaphex 2820231dd0 Revert "Revert "remove unused variables""
This reverts commit 0c735e5c9c.
2021-11-05 18:53:09 +01:00
twinaphex 7f33a03423 Revert "Revert "Backport netplay changes from forum member""
This reverts commit 38a6b9f086.
2021-11-05 18:52:56 +01:00
twinaphex 38a6b9f086 Revert "Backport netplay changes from forum member"
This reverts commit 367ac6ce46.
2021-11-05 18:34:52 +01:00
twinaphex 0c735e5c9c Revert "remove unused variables"
This reverts commit cea8528929.
2021-11-05 18:34:43 +01:00
twinaphex 3597643faa Revert "Remove obsolete comment"
This reverts commit e8ed660ea1.
2021-11-05 18:34:32 +01:00
twinaphex 722f9bbfac Revert "Move some stray globals to netplay state"
This reverts commit f264d20d1e.
2021-11-05 18:34:24 +01:00
twinaphex a796f1ce58 Revert "Move stray globals to networking state"
This reverts commit 96053e14a7.
2021-11-05 18:34:11 +01:00
twinaphex 96053e14a7 Move stray globals to networking state 2021-11-05 18:07:41 +01:00
twinaphex f264d20d1e Move some stray globals to netplay state 2021-11-05 17:50:18 +01:00
twinaphex e8ed660ea1 Remove obsolete comment 2021-11-05 17:41:30 +01:00
twinaphex cea8528929 remove unused variables 2021-11-05 17:40:56 +01:00
twinaphex 367ac6ce46 Backport netplay changes from forum member 2021-11-05 17:17:10 +01:00
twinaphex 121174c9af (Discord) Remove stray discord_is_inited global - put it in
discord_state_t instead
2021-11-05 13:45:00 +01:00
twinaphex 9c3c547482 Need to be placed above this code block 2021-11-05 04:50:16 +01:00
twinaphex 11defb4009 Move netplay/networking code to netplay_frontend.c - move it out of
retroarch.c
2021-11-05 04:42:03 +01:00
twinaphex 8ff07916ec Backport netplay changes from Cthulhu 2021-10-18 01:13:35 +02:00
twinaphex ddceb51f89 Get rid of some needless getters/setters 2021-09-30 21:10:12 +02:00
Nathan Strong fb86ca6e33 Fix the snprintf warnings for everyone this time
== DETAILS
So, basically this back-and-forth is because we used fixed-size
data types (i.e. `uint32_t`) which maps to different primitive data
types on different platforms. So `uint32_t` might be a `long` on some
platforms (e.g. Wii U), while it's just a plain integer on others (PC).
And the format specifier works off primitive data type, not data type
size.

So, to resolve this, we:

- keep `%lx` as the format specifier
- cast the parameter to printf to unsigned long

This is better than the alternatives that could cause problems trying to
cast a long down to an int.
2021-09-25 15:08:34 -07:00
Nathan Strong 9b2d4236ad WIIU: Clean up a bunch of compiler warnings
== DETAILS
These changes fall into a few broad categories:

1. Explicitly undefine things we want to re-define due to conflicts with
   the version of devkitpro we're using
2. Clean up hex format specifiers to use `%lx` or `%lX` when working with
   long integers
3. Move variables inside the ifdef they're used in to squelch "unused variable"
   messages
4. Add parenthesis to make Wii U shader declarations stop complaining

And then there's a weird "misleading indent" warning that I fixed by just
rewriting a block of code to use a switch statement instead of if-then-else.

These changes work fine on Wii U, but we'll need to keep an eye on CI/CD to see
if other platform builds break.
2021-09-25 13:25:39 -07:00
twinaphex 83ce4259a0 Have only one getter for runloop_state 2021-09-21 19:08:26 +02:00
twinaphex f21641d898 Get rid of another 'getter' function 2021-09-21 18:30:56 +02:00
twinaphex 94b5769375 Cleanups 2021-09-20 21:21:54 +02:00
twinaphex b3d724b7a3 Move code out of retroarch.c 2021-09-18 22:05:03 +02:00
twinaphex db3f0a8468 Move code out of retroarch.c - move it into
network/netplay/netplay_frontend.c
2021-09-18 06:15:02 +02:00
Mark W. Kidd 5f834a8cb3 input_driver refactor 2021-08-19 20:02:39 -04:00
Autechre ae327a769b
Revert "input refactoring: create input_driver.c" 2021-08-18 18:45:53 +02:00
Autechre a66b1b3e48
Merge pull request #12703 from markwkidd/input-drivers
input refactoring: create input_driver.c
2021-08-18 18:17:43 +02:00
Mark W. Kidd 5a8920c862 input_driver refactor 2021-08-17 08:56:29 -04:00
twinaphex 14e974ea07 Silence warning on WiiU - unused variable 2021-08-13 18:17:22 +02:00
twinaphex d07e0da412 Improve HAVE_NETWORKING and HAVE_NETPLAYDISCOVERY ifdefs; remove
unused netplay lan scan rooms function
2021-08-12 16:44:07 +02:00
twinaphex 43b72ea23c Silence some warnings (unused variables) when HAVE_NETPLAYDISCOVERY
is not defined
2021-08-12 16:11:29 +02:00
Mark W. Kidd 64672b4b63 consolidate menu_input.h declarations 2021-07-15 14:19:38 -04:00
twinaphex 808f326209 Cleanups 2021-04-08 19:24:19 +02:00
twinaphex 9c5f365b2b Cleanups 2021-04-08 18:37:09 +02:00
twinaphex f7a5833cb0 Turn bunch of functions static 2021-04-08 18:33:46 +02:00
twinaphex 0d549fd42b Merge netplay_init.c into netplay_io.c 2021-04-08 18:16:24 +02:00
twinaphex 2a2f77f0dc Combine some netplay files into one 2021-04-08 18:09:02 +02:00
twinaphex 357b7d68f6 (libretro-common) Rename rhash to lrc_hash
(rcheevos) Rename rhash to rc_hash
2020-12-28 19:55:54 +01:00
Autechre 08b9c40728
Merge pull request #11739 from SimpleTease/ipv6
netplay: attempt ipv4 when ipv6 failure
2020-12-23 15:53:22 +01:00
SimpleTease 1633652a63
netplay: attempt ipv4 when ipv6 failure 2020-12-23 04:17:05 +00:00
Autechre 84d75783ea
Merge pull request #11736 from SimpleTease/netplay_2
netplay: allocate crashfix
2020-12-23 03:29:02 +01:00
SimpleTease 033be6ca0a
netplay: allocate crashfix
Handle no devices
2020-12-23 01:35:41 +00:00
SimpleTease badfbe0ccd Netplay: fixes 2020-12-23 01:13:53 +00:00
schellingb ba1ed2da4b New faster json parser/writer library rjson
Replace existing libraries jsonsax_full and jsonsax with it
2020-10-12 03:02:20 +09:00
twinaphex 95a1f1c64f Small cleanups 2020-09-16 18:22:06 +02:00
twinaphex 04b7844f92 Cleanup parse_context_setup 2020-09-16 18:20:25 +02:00
twinaphex 9858a72937 Change address and mitm_name to 256 2020-09-16 17:16:23 +02:00
twinaphex 0b34aa446c struct netplay_room - lower coreversion to 255 chars 2020-09-16 16:46:23 +02:00
twinaphex 42fdb30300 struct netplay_room - reduce char arrays based on how big these
entries can be
2020-09-16 13:23:19 +02:00
twinaphex 24ce413816 (netplay_room) country can never be longer than 2 characters 2020-09-16 13:11:23 +02:00
twinaphex a5efd70db7 Reorder structs, alignment 2020-08-15 18:53:52 +02:00
twinaphex e91e548f13 Add more notes 2020-08-03 17:18:54 +02:00
twinaphex 4f931f2729 Use UINT32_C / UINT64_C throughout the codebase 2020-07-29 04:48:11 +02:00
twinaphex eba83390ba Warning fixes 2020-07-23 07:39:08 +02:00
twinaphex 68aa5dc0db Move more global state to rarch_state 2020-07-09 02:41:13 +02:00
twinaphex 3e2250b25f (netplay_discovery) Initialize structs 2020-07-01 06:15:21 +02:00
twinaphex f83f0b2d44 Fix static code analysis warnings 2020-06-29 20:27:34 +02:00
twinaphex 1ae20ea17c Style nits - turn macro names into upper-case - some while style nits 2020-06-26 20:00:19 +02:00
twinaphex 8486c8ebfb Cleanups 2020-06-24 10:54:25 +02:00
twinaphex 66451f3ef0 Cleanups 2020-06-10 16:51:21 +02:00
twinaphex 7b5ea63329 remove now obsolete file 2020-06-07 02:42:42 +02:00
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