Commit Graph

799 Commits

Author SHA1 Message Date
Eric Warmenhoven 79e43e2bd4 Fix many warnings (#16180)
Also change iOS/tvOS to use system zlib instead of compiling it in
2024-01-31 09:15:14 -08:00
Bernhard Schelling e796716f57 Netplay netpacket interface fix "Sort Save States into Folders" settings (#16019)
Before this fix with the folder setting enabled a core using the netpacket interface would append the sort folder name twice thus breaking existing save states
2023-12-20 16:23:28 -08:00
Bernhard Schelling f029b41a74 Netplay netpacket connection flow improvements (#15986)
- Allow starting netplay host while a netpacket core is running without restart
- Allow connecting to a host while a netpacket core is running without restart
- Avoid clients getting stuck in connection loop if the host has the content paused while a client connects by automatically unpausing
2023-12-09 04:48:36 -08:00
Jamiras bbe7afcd82 (cheevos) use rc_client for state management (#15912)
* use rc_client for achievement processing

* log disconnect/reconnect messages

* address compiler warnings

* address c89 warning

* address c89 warning
2023-11-15 13:18:20 -08:00
Bernhard Schelling 107283edc8 Updates to the netplay netpacket interface (#15887)
* Updates to the netplay netpacket interface
- Switch environment call number from 76 to 78 (retire 76 as it was never used by any core)
- Simplify broadcasts by removing the option to send to all but one client
- Separate explicit flushing and querying of incoming packet into two operations (RETRO_NETPACKET_FLUSH_HINT and retro_netpacket_poll_receive_t)
- Enable a core to specify a protocol version string which can get used instead of core version to determine compatibility between two players
- Log and notify a separate message when there is a content crc mismsatch to convey it being less severe (as different games may be able to do network communication with each other)

* C89 compile fix
2023-11-09 16:36:08 -08:00
Bernhard Schelling d096effe7f When using the new core netpacket interface for netplay, don't synchronize the host SRAM to a joining client (#15797)
Fix netplay connection not getting marked as reusable while the new core netpacket interface is enabled
2023-10-13 10:53:22 -07:00
libretroadmin 94accbb6ef Nits 2023-08-30 06:36:38 +02:00
libretroadmin 5f94f36204 Explicit typecasts to bool 2023-08-16 17:10:59 +02:00
libretroadmin c8e6506687 Fix --disable-menu errors 2023-08-14 23:36:19 +02:00
libretroadmin bd090dea71 Replace more strlcat calls 2023-07-16 18:07:49 +02:00
libretroadmin 74959de48e Silence warning 'rv might be uninitialized' 2023-07-15 09:28:21 +02:00
Eric Warmenhoven b1fdbb9a37 netplay discovery through bonjour/mdns 2023-07-15 08:25:27 +02:00
libretroadmin cd8fffe5d3 Rename all local variables for retro_system_info to sysinfo 2023-07-15 07:45:20 +02:00
Bernhard Schelling 4d8f0215d1 Fix netplay default modus
Also add optional assertion code that can be enabled to validate the netplay frontend logic
2023-06-29 18:38:58 +02:00
Bernhard Schelling 67836c144e Do nothing if the same interface gets set twice 2023-06-29 13:55:14 +02:00
Bernhard Schelling 5b1e28843e C90 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling 5342d4ff63 Remove invalid test assert macro 2023-06-29 13:55:14 +02:00
Bernhard Schelling e8283363fb Enhance netpacket interface
- Enable core host to refuse connecting new players to limit the number of connected players
- Enable a core to flush outgoing packets and read incoming packets without waiting for the next frame (can be used for lower latency or blocking reads)
2023-06-29 13:55:14 +02:00
Bernhard Schelling 2546ac6bbc Change tab to spaces 2023-06-29 13:55:14 +02:00
Bernhard Schelling 6ccef38fea Enable clients to send netpackets to other clients 2023-06-29 13:55:14 +02:00
Bernhard Schelling eceb712ca9 C89 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling e2621a8474 Add enum netplay_modus 2023-06-29 13:55:14 +02:00
Bernhard Schelling 9de805c9b1 Clarify netpacket interface handling code
Reduce access to networking_driver_st global variable
2023-06-29 13:55:14 +02:00
Bernhard Schelling 20bb335017 C90 fix 2023-06-29 13:55:14 +02:00
Bernhard Schelling c60878a10d Add netpacket interface
Adds a new libretro interface for a core to send and receive custom network packets for implementing a communication based multiplayer system instead of using the default state serialization based multiplayer. Connection management is still done by the frontend while a core gains the ability to easily support tunneling of multi-console data communication traffic.
2023-06-29 13:55:14 +02:00