Gregor Richards
ab989d7f41
More careful disconnection.
2016-12-18 19:28:43 -05:00
Gregor Richards
c8bba9a981
Simplistic builtin randomizer.
2016-12-18 19:28:43 -05:00
Gregor Richards
28e331b5fd
Remove some magic numbers
2016-12-18 19:28:43 -05:00
Gregor Richards
6e6f2bfdbe
Use a proper password hash across the line.
2016-12-18 19:28:42 -05:00
Gregor Richards
763a657f82
Terrible first cut at password (sent in plain text D-8)
2016-12-18 19:28:42 -05:00
Gregor Richards
5a0328dc09
Transfer pad configuration over netplay.
2016-12-18 19:28:42 -05:00
Gregor Richards
888e45c88b
Updates to allow the server to toggle game/watch
2016-12-18 19:28:42 -05:00
Gregor Richards
3631ff74ff
Very, very partial support for the server spectating
2016-12-18 19:28:42 -05:00
Gregor Richards
3d7f1f6575
Updating Netplay README to be more true
2016-12-18 19:28:42 -05:00
Gregor Richards
f6f9905ae3
Made remote pausing connection-specific
2016-12-18 19:28:42 -05:00
Gregor Richards
6556af1100
force_send_savestate is global again
...
We cannot send a savestate to only one player, as sending a savestate is
a synchronization event invalidating all prior input.
2016-12-18 19:28:42 -05:00
Gregor Richards
3d34c0222f
Added simple (cheesy) announcements on join/leave
2016-12-18 19:28:42 -05:00
Gregor Richards
727743aa7b
Fixing a couple FIXMEs/TODOs
2016-12-18 19:28:42 -05:00
Gregor Richards
2130fd81a5
Fixed simulation for >2 players
2016-12-18 19:28:42 -05:00
Gregor Richards
262d77546b
Adding game/watch key
...
Adding a key to toggle between playing and spectating. This key takes
the place of the previous flip key, although player flipping does
continue to work (and must be rebound if you still want it)
2016-12-18 19:28:42 -05:00
Gregor Richards
90c15fc7a6
Still need to flush input data.
2016-12-18 19:28:42 -05:00
Gregor Richards
e7ce01ad3b
More renaming
...
Now that remote_input_state isn't always remote, it should just be
called real_input_state (and is).
2016-12-18 19:28:42 -05:00
Gregor Richards
f6630ad85a
More fixups for >2 player mode. Mostly was just sending packets that
...
shouldn't have been sent.
2016-12-18 19:28:42 -05:00
Gregor Richards
479955a085
More 3-player support. The initial connection is wonky with
...
delay_frames>0
2016-12-18 19:28:42 -05:00
Gregor Richards
d373684bd5
Off-by-one
2016-12-18 19:28:42 -05:00
Gregor Richards
b51cf8be2b
Real, actual (almost) >2-player support.
2016-12-18 19:28:42 -05:00
Gregor Richards
2cc8c5c467
Removing silly foo_ names used to help migration.
2016-12-18 19:28:42 -05:00
Gregor Richards
53c46530aa
Very first tidbits of true multiplayer support (minus actual multiple
...
players so far)
2016-12-18 19:28:42 -05:00
Gregor Richards
b5cd187077
Since there's now only one mode, removing netplay_callbacks entirely.
2016-12-18 19:28:42 -05:00
Gregor Richards
9b2270f5d4
Say goodbye to spectator mode (for now)
2016-12-18 19:28:42 -05:00
Gregor Richards
4768970d52
Moving force_send_savestate from netplay to connection.
2016-12-18 19:28:42 -05:00
Gregor Richards
ea722b49c8
Move other_addr from netplay to connection.
2016-12-18 19:28:42 -05:00
Gregor Richards
d1d29143b2
Move nickname field to connections. Spectate mode officially broken.
2016-12-18 19:28:42 -05:00
Gregor Richards
189cc6e5d6
Moving socket buffers to per-connection (currently breaks
...
delay_frames=0)
2016-12-18 19:28:42 -05:00
Gregor Richards
b334f04bd5
Removing RARCH_ from Netplay stall reasons.
2016-12-18 19:28:42 -05:00
Gregor Richards
1e1abf6951
First step of multiple connections. Still only one connection actually
...
works.
2016-12-18 19:28:42 -05:00
Gregor Richards
3908e25895
Separating local mode from remote mode.
2016-12-18 19:28:42 -05:00
Gregor Richards
775584cdac
Adding more README info.
2016-12-18 19:28:42 -05:00
Gregor Richards
170b590bdb
Client now starts one frame after finishing connection, for easier sync.
2016-12-18 19:28:42 -05:00
Gregor Richards
80be19a7da
Renames for readability, merging frame and sram into sync packet.
2016-12-18 19:28:42 -05:00
Gregor Richards
f89e54fcb7
Now that we don't have to start at frame 0, use the server frame count
2016-12-18 19:28:42 -05:00
Gregor Richards
b3092f6fde
Moving things that shouldn't have been public into netplay_private.h
2016-12-18 19:28:41 -05:00
Gregor Richards
9054b51f0e
Finally, bringing back the first frame (in nonblocking mode)
2016-12-18 19:28:41 -05:00
Gregor Richards
ce7686104d
Removing dead code
2016-12-18 19:28:41 -05:00
Gregor Richards
71e5cb756a
Support for delay_frames=0 in nonblocking mode.
2016-12-18 19:28:41 -05:00
Gregor Richards
1c8f056239
Nonblocking initial connection. Haven't tested with delay_frames=0 yet
2016-12-18 19:28:41 -05:00
Gregor Richards
3f8f9761f6
Fixes particularly affecting delay_frames=0 mode
2016-12-18 19:28:41 -05:00
Gregor Richards
91e7db3eca
This semicolon broke everything!
2016-12-18 19:28:40 -05:00
Gregor Richards
ba76528b8f
A more sophisticated status variable for later making the initial
...
connection nonblocking.
2016-12-18 19:28:39 -05:00
Gregor Richards
0f5eec9987
Use zbuffer_size instead of state_size for the packet buffer
2016-12-18 19:28:39 -05:00
Gregor Richards
1214541410
Added packet buffer resizing to cope with initialization quirks.
2016-12-18 19:28:38 -05:00
Gregor Richards
36a93e5697
Fix a few bits broken by merging.
2016-12-18 19:28:38 -05:00
Gregor Richards
900e5a79ec
Use nonblocking sockets for Netplay to avoid some stalls.
2016-12-18 19:28:38 -05:00
Twinaphex
d604441cea
Merge pull request #4266 from GregorR/netplay-better-simulation
...
Better netplay input simulation
2016-12-18 07:13:52 +01:00
Gregor Richards
1245d1b5dd
Better netplay input simulation
...
In resimulation mode, we only copy the buttons. The reason for this
is nonobvious:
If we resimulated nothing, then the /duration/ with which any input
was pressed would be approximately correct, since the original
simulation came in as the input came in, but the /number of times/
the input was pressed would be wrong, as there would be an
advancing wavefront of real data overtaking the simulated data
(which is really just real data offset by some frames).
That's acceptable for arrows in most situations, since the amount
you move is tied to the duration, but unacceptable for buttons,
which will seem to jerkily be pressed numerous times with those
wavefronts.
2016-12-18 00:46:02 -05:00