Fix netplay when using core netpacket interface after a recent change made for cheevos #17619
+10
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds a fix for a recent change in netplay #17416 made for cheevos. The fix is for the core netpacket interface as was introduced by #15413.
The necessary fix avoids forced exchange of the savestate when the core has enabled the core netpacket interface.
Since the netpacket interface was introduced, RetroArch's netplay implementation can operate in 2 different ways. The default is the original netplay implementation generally used for console emulators which has the frontend synchronize the complete state of the emulated hardware and controller input is exchanged among players. Instead of that, a core can now tell the frontend that it handles networking on its own by activating the netpacket interface (via environment call
RETRO_ENVIRONMENT_SET_NETPACKET_INTERFACE
). The frontend still handles connecting players together but after connection is established, the core running on the server and clients can communicate to each other. This is generally used to emulate LAN and internet communication via netplay. For example the DOSBox Pure core uses it to emulate DOS multiplayer games which used modem or IPX LAN networking to now work over RetroArch's netplay. So when netplay operates in this way, no state needs to be synchronized, the cores run independent and the multiplayer is started within the emulated game.Related Issues
Related Pull Requests
#17416
#15413
Reviewers
@Jamiras maybe?