Commit Graph

916 Commits

Author SHA1 Message Date
Cthulhu-throwaway 7e798d04ba (Netplay) Some refactoring and fixes 2022-06-17 18:00:48 -03:00
Cthulhu-throwaway 43ad2b64b2 (Network) Replace socket_select calls 2022-06-12 02:13:34 -03:00
LibretroAdmin 9ea46f34fb
Merge pull request #13997 from Cthulhu-throwaway/lan-discovery-ipv4-tunneling
(Netplay/LAN Discovery) Support for IPv4 tunneling (6to4)
2022-06-02 08:43:24 +01:00
Cthulhu-throwaway bcc31be6da (Netplay/LAN Discovery) Support for IPv4 tunneling (6to4) 2022-06-01 06:34:43 -03:00
LibretroAdmin a92a37e3f4
Merge pull request #13996 from Cthulhu-throwaway/netplay-cleanup-2
(Netplay) Some cleaning
2022-06-01 10:00:09 +01:00
Cthulhu-throwaway 9fab981317 (Netplay) Some cleaning 2022-06-01 04:31:33 -03:00
LibretroAdmin 4a21553f06
Merge pull request #13994 from fr500/master
fix previous PR
2022-06-01 07:37:37 +01:00
Cthulhu-throwaway 2abf42515b (UPnP) Fix for zero-length datagrams 2022-06-01 03:24:46 -03:00
radius 109cd28a6f fix previous PR 2022-06-01 01:00:28 -05:00
Andrés cf2ecf506c
Fix lan rooms on android
This simple change makes lan discovery work on android again.
The is_lan_address function was meant to filter out duplicate rooms only anyway and this change shouldn't harm anything

The responses on android are seen as IPv6 mapped IPv4 addresses so this is needed for this to work anyway

I/RetroArch: [Discovery] Responnse received on LAN interface ::ffff:192.168.1.241.
I/RetroArch: [Netplay]: Connecting to ::ffff:192.168.1.241|55435 (deferred)
2022-05-31 22:39:10 -05:00
Cthulhu-throwaway 8f7b5a1050 (Networking) Define isinprogress function 2022-05-31 05:07:23 -03:00
Cthulhu-throwaway 17b7b1322e (Netplay) Some cleaning 2022-05-30 22:02:24 -03:00
Cthulhu-throwaway de30f212bc (Netplay) Enforce a timeout during connection 2022-05-30 05:23:39 -03:00
Cthulhu-throwaway e4f8b531d5 (Netplay) Some refactoring and cleaning 2022-05-27 17:21:34 -03:00
libretroadmin 9590fdd0d4 Cleanups pt.2 2022-05-22 20:29:53 +02:00
Antonio Jose Ramos Marquez 4dd779467d [ORBIS] add debugnet support 2022-05-21 16:31:10 +02:00
Cthulhu-throwaway f0baf977fa (Network) Move natt files to "network" 2022-05-18 23:23:40 -03:00
Cthulhu-throwaway 82c9773e0d (Netplay) Chat supported info for the host kick submenu 2022-05-15 19:38:44 -03:00
Cthulhu-throwaway cb2d6b3d8e (Netplay) Free client_info when it's no longer in use 2022-05-14 12:06:57 -03:00
twinaphex a577d7d224 (netplay_frontend) Small style nits/cleanups 2022-05-14 04:34:11 +02:00
Cthulhu-throwaway 6d96df0e49 (Netplay) Support for gathering client info and kicking
Client info and kicking (by the host) is now implemented through netplay_driver_ctl and can be used by future features.
2022-05-13 22:42:08 -03:00
Cthulhu-throwaway f29256bb0d (Netplay) More cleaning and organization 2022-05-13 10:22:55 -03:00
Cthulhu-throwaway 99e517d2a9 (Netplay) Fixes and cleanup
(Netplay) Buildfix and warnings
2022-05-12 14:26:53 -03:00
Cthulhu-throwaway 796bc15837
C89 buildfix (#13923)
* C89 buildfix

* More buildfixes
2022-05-10 07:37:33 +02:00
Cthulhu-throwaway b57a1b0c72
(Netplay) Fix possible deadlock (#13919) 2022-05-07 00:40:46 +02:00
Cthulhu-throwaway 9a3b8f4a0a
(Netplay) Disable netplay for unsupported cores (#13916)
With stateless mode being disabled for now, there is no reason not to include this.

Refuse to initialize netplay when the current core is not supported (no proper savestates support).
2022-05-06 04:31:37 +02:00
Cthulhu-throwaway 0a52964015
(Netplay) Disable and hide stateless mode (#13915)
Stateless mode is nonfunctional at the moment, despite my attempts to get it working.
A significant amount of work is required to get it working.

For now, force-disable stateless mode and hide it from menus and the CLI's help text.
2022-05-05 20:46:48 +02:00
Cthulhu-throwaway 4674241bf9
(Networking) Move macro to its correct place (#13904) 2022-04-30 03:39:10 +02:00
Cthulhu-throwaway 7c3dfa5e3a
(Netplay/LAN Discovery) Ensure fixed width ints on packet struct (#13901) 2022-04-29 20:26:34 +02:00
Cthulhu-throwaway a268ffe6ce
(Netplay) Replace sscanf with safer strtol and strtoul (#13897) 2022-04-28 14:14:00 +02:00
Cthulhu-throwaway 669af1d9c6
(Netplay) Initialize client's allow_pausing to true (#13873) 2022-04-22 15:37:11 +02:00
Alexander Trufanov 7f0cf651f1
Fix gamecrc parsing (#13872) 2022-04-22 14:31:37 +02:00
Mats 4a1a1e2fa7
(steam) Introduce Steam Rich Presence (#13798) 2022-04-02 08:07:40 +01:00
Autechre 4c3a4d66df
Cxx buildfixes (#13803)
* CXX_BUILD buildfixes
* (D3D11) Buildfixes for CXX_BUILD
* (Linux/qb) Disable KMS for Linux when building for C89, headers use inline which is not
available for C89
2022-03-30 17:30:20 +02:00
twinaphex a7569b5712 More CXX_BUILD buildfixes 2022-03-30 15:45:48 +02:00
Vladimir Serbinenko 4a53c6771c
Several fixes and improvements do NGC and Wii (#13698)
* Support new elf2dol path in Makefile.griffin

* Fix NULL pointer dereference when no core info is available

* Fix double include of different versions of libogc

* Move ngc and wii to Makefile.common

Resulting binary is 60K *smaller*. This is surprising but probably due to
less inlining happening

* gx_gfx: Fix hang on gfx initialization

* Remove sthread_isself on NGC/Wii

It relies on pthread_equal that is not there for either legacy pthreads
or normal pthreads on those platforms

* Wii networking

* Missing includes in split

* Network fixes

* Fix logging of non-format string as a format

* Support for gx netlogger

* Network fix

* Network fixes

* Network info

* gx: Move config files to app directory

Otherwise it clashes between wiiU and vWii version with unpredictable
effects
2022-03-04 13:43:00 +01:00
Cthulhu-throwaway b0928cd0f8
[Netplay] Disable savestates on stateless mode (#13634)
Stateless mode is currently not working correctly and still using savestates.
2022-02-18 17:08:18 +01:00
Cthulhu-throwaway cd74221d33
[Networking] GetBestRoute refactor (#13553)
Refactor to support UWP.
2022-01-27 11:38:31 +01:00
Cthulhu-throwaway b71be7efd2
(Netplay/LAN Discovery) Disable GetBestRoute for UWP (#13518) 2022-01-20 14:52:11 +01:00
Cthulhu-throwaway 0c0d19e3f1 (Netplay) Fix dummy notification
No longer shows a netplay initialization failed notification when netplay is not enabled.
2022-01-13 01:49:51 +01:00
Cthulhu-throwaway 4dda10b86d
(Netplay) Disable netplay on init failure (#13479)
* (Netplay) Disable netplay on init failure

Make sure netplay is disabled and properly deinitialized after an initialization failure.

* missing comma
2022-01-11 13:50:09 +01:00
Cthulhu-throwaway 4cf1bcf70f
(Netplay/UPnP) Delay lobby server announcing (#13473)
Delay the announcing in order to give UPnP's port forwarding more time.

Fix the remaining truncation warnings.
2022-01-11 08:48:59 +01:00
twinaphex 18dae9ce73 remove unused variables 2021-12-27 19:57:32 +01:00
Autechre 68713b46b0
Revert "Netplay clean-up (#13421)" (#13422)
This reverts commit 5efd2a64a4.
2021-12-26 16:54:19 +01:00
Cthulhu-throwaway 5efd2a64a4
Netplay clean-up (#13421) 2021-12-26 16:30:38 +01:00
Cthulhu-throwaway 9579810579
Build fix for --disable-menu (#13419) 2021-12-26 15:18:57 +01:00
Cthulhu-throwaway 26132a2330
Netplay and NAT struct improvements (#13416)
Reordered netplay and NAT structs to follow the coding guidelines more closely.

Moved part of the chat struct out of the program's image and into the heap.
2021-12-25 13:42:22 +01:00
Cthulhu-throwaway 9e208198f2
Endianness fix for netplay_is_lan_address (#13413) 2021-12-25 04:07:55 +01:00
Cthulhu-throwaway 98bed89d6f
Netplay custom relay server to use default port (#13411)
Allow the custom server to use the default port if a port was not provided.
2021-12-25 02:30:33 +01:00
Cthulhu-throwaway 6a100272a8
Netplay spectator notification fix (#13409)
Fix double notification when the host switches to spectator.
2021-12-24 16:42:16 +01:00
Cthulhu-throwaway 736ab4c964
MSVC 2005 build fix (#13408) 2021-12-24 14:58:18 +01:00
Cthulhu-throwaway b67b93ebfe
Enable GetBestRoute for MSVC 2005 (#13407) 2021-12-24 14:15:20 +01:00
Cthulhu-throwaway ec97c86756
Attempt to fix UPnP for some Windows devices (#13402)
Yet another attempt at it.
2021-12-23 23:52:01 +01:00
Cthulhu-throwaway c6369b7861
MSVC 2005 Build Fix (#13401) 2021-12-23 22:08:13 +01:00
Cthulhu-throwaway c4049b9597
NAT and netplay Fixes (#13400)
* NAT and netplay Fixes

Fix a crash when announcing your room to the internet without being in a tunnel.

Fix improper interface for UPnP for some Windows devices.

* Final edits
2021-12-23 21:28:30 +01:00
Cthulhu-throwaway c752f9b0de
Custom relay server support (#13395)
* Custom relay server support

Add support for custom user-ran relay servers.

* snprintf NULL fix
2021-12-23 13:54:52 +01:00
Cthulhu-throwaway b9041995f0
Add asian relay server (#13393)
Replace the canadian server with an asian one.
2021-12-22 16:33:41 +01:00
Cthulhu-throwaway eff6f41a38
Netplay protocol macro (#13391)
Wrap protocol checks inside of a guard macro.
2021-12-22 03:05:35 +01:00
Jamiras 3d84a9960e
(cheevos) check netplay status when unlocking achievements (#13379)
* check netplay status when unlocking achievements instead of permanently disabling them in spectate mode

* fix c89 build

* add RARCH_NETPLAY_CTL_IS_SPECTATING
2021-12-21 15:58:42 +01:00
Cthulhu-throwaway 966335e367
Smaller Netplay Changes (#13387)
Lobby Viewer: Filter out rooms that are not running RetroArch
Lobby Viewer: Display a non-connectable tag to non-connectable rooms.
Host: Display warning if we are announcing to the internet but our room isn't connectable from there.
2021-12-21 15:58:25 +01:00
Cthulhu-throwaway 568a30380b Buildfix for some platforms
Buildfix for some platforms that do not have HAVE_TRANSLATE defined aswell as platforms that define sockaddr_storage as sockaddr/sockaddr_in.
2021-12-20 14:26:50 +01:00
Cthulhu-throwaway cae793e39f
Update netplay readme (#13380)
Fixes typos, removes outdated info and adds new commands for protocol 6.
2021-12-20 14:15:52 +01:00
Cthulhu-throwaway cda66d09c3
Netplay Stuff - Addendum (#13378)
Prevents long-term pausing from clients dishonoring allow pausing.

Missing crediting.
2021-12-19 20:43:59 +01:00
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
twinaphex bfeffb2423 Fix local header path includes 2021-12-04 16:11:02 +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
Autechre 5f49899343
Bluetooth refactor (#13266)
* Use HAVE_BLUETOOTH ifdef to strip out this code when not defined

* Split up bluetooth code into its own file
2021-11-21 20:44:08 +01:00
Autechre 71b30d7846
Split up wifi networking code - move it into separate file (#13262) 2021-11-21 12:37:39 +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 3ead1ac5df Move discord code to separate file 2021-11-05 14:00:37 +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 574b850dd7 Preparations for being able to move discord and networking code
out of retroarch.c
2021-11-04 22:50:38 +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 35543ecd91 Move defines files over to libretro-common 2021-05-18 22:15:04 +02: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
CrystalCT 64ecfe4463 Add some PSL1GHT ifdefs 2021-03-16 08:45:24 +01: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
twinaphex 870707dbe8 Remove obsolete __CELLOS_LV2__ references - use PSL1GHT instead 2020-12-19 15:32:26 +01: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
Jamiras 8bc02e2df2 don't update discord rich presence from retroachievements when paused 2020-09-27 14:45:14 -06: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
Autechre 5f607f5809
Merge pull request #10922 from jdgleaver/playlist-config
Refactor playlist struct configuration
2020-06-26 20:35:39 +02:00
twinaphex 1ae20ea17c Style nits - turn macro names into upper-case - some while style nits 2020-06-26 20:00:19 +02:00
jdgleaver 0fcfb3deda Refactor playlist struct configuration 2020-06-26 15:40:19 +01: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 7413d05705 Cleanups 2020-06-06 22:42:43 +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 543e4bca16 Merge Discord code into retroarch.c 2020-06-06 20:50:25 +02:00
twinaphex 9fda2bdebd Add TODO/FIXME comments 2020-06-04 14:09:45 +02:00
twinaphex ec35ce7fdc Add TODO/FIXME notes 2020-05-29 10:23:48 +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 6dc758a080 Move cheevos-new to cheevos/ 2020-05-21 23:23:01 +02:00
twinaphex e1e6f2db51 Fix CXX_BUILD 2020-05-21 05:10:33 +02:00
twinaphex 0fced84f93 (Netplay) Lower announce rate 2020-05-20 23:01:04 +02:00
twinaphex d9ab59cb4a Comment out function that isn't used 2020-05-20 16:29:57 +02:00
twinaphex 115e779cf0 (Discord) Comment out code that isn't being used 2020-05-20 16:03:46 +02:00
twinaphex 3387170d62 (Discord) Cleanups - get rid of discord_register.h header 2020-05-20 15:43:01 +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