Skip to content

ICAtariControllerServer (Gamepad Broadcast Server)

Compare
Choose a tag to compare
@h3rb h3rb released this 16 Feb 22:22
· 37 commits to main since this release
0f8f2b4

Pre-Built in IDE 2.3.5.589 and Ubuntu 18.04 (Atari VCS OS)

The ICAtariControllerServer is like ICAtariClassicServer except that it pushes out the entire state of all input devices across TCP/IP. The same client released previously can be used -- except that the data structure it broadcasts resembles:

{
 f: frame#,
 d: (inputcandy's list of gamepad devices),
 s: (corresponding gamepad device button/axis/hat states),
 k: (keyboard states),
 m: (mouse states)
}

Frame # will count up to 10000 and then go back to 0 and start counting up again. This is to avoid unintentional consequences of a frame number that wraps at a high number. You can use this to test if you've actually updated over the network since a previous step or not, and possibly detect skippage, though since this server is mainly to be "called from inside the house", or on a LAN, you shouldn't expect any real latency issues.

Consult InputCandy documentation for how to interpret @ https://github.com/LAGameStudio/InputCandy

Server was created on two ports, though only TCP/IP has been rigorously tested. Limits to the size of UDP packets probably renders it less than useful.

tcp_sock = network_create_server(network_socket_tcp, 1234, 2);
udp_sock = network_create_server(network_socket_udp, 1235, 2);