Releases: LAGameStudio/AtariVCSGML
AtariVCS Gamepad Server Oneshot Versions
This "one shot version" is a server that can be connected to exactly once. It was built in GameMaker IDE 589 Ubuntu 18.04 for use only on the AtariVCS.
Once any connected client disconnects, it shuts down. GameMaker users should download the GameMaker version as it adds a small bit of authentication to limit its use just to GameMaker games. Godot4 users should download the "Raw" version that bypasses this security layer.
The server runs on port 1234.
The source code is almost identical to previous server versions, except that it counts up the number of concurrent users and, when no other users are connected, if it has already seen a user that is no longer connected, the server quits. This is to avoid needing to do script-fu in Linux and handle a bunch of corner cases regarding game exits, fuji buttons, whatnot.
Use the Dev-Staging version when you are doing input testing because it shows diagnostics on the screen.
Use the Production version when you are ready to publish. It plays a sound and shows the Lost Astronaut logo and the InputCandy logo.
#!/bin/sh
cd /where/your/game/root/is/
export LD_LIBRARY_PATH=./usr/lib:${LD_LIBRARY_PATH}
# put the server in the background, choose Dev-Staging until you are satisified, then choose Production
./server/AtariControllerServer &
# let the logo show and the server start up
sleep 3
# launch your game
./YourGame.x86_64
exit 0
Raw TCP/IP Servers for Classic-only and all Controllers, prebuilt 589, for any engine not just GameMaker
Written to help Godot 4 users, but can help any engine get data on the VCS. Source included, but also pre-built 589 versions of each server available in the other releases.
These versions use the network_send_raw and related functions, that don't filter out connections from non-gamemaker clients. Port 1234 is the TCP/IP and 1235 is the UPD version.
Basically, connect TCP/IP to the port and read the buffer, it's JSON describing the connected classics, or all of the connected devices, and their current states, as described in the Readme and in the other releases in this repo.
As always, please return the favor by mentioning LostAstronaut.com, Lost Astronaut Studios, Apolune 2 (the game) and Ettinsoft's Circus Interstellar.
ICAtariControllerServer (Gamepad Broadcast Server)
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);
Atari Classic Client and Server Source Code
Source code for the Server (to be built in back-ported IDE 2.3.5.589) and the Client, which demonstrates TCP/IP connecting and getting the data from the localhost port 1234, to be used alongside your existing controller code. Contains two projects written in GameMakerStudio 2.3.5.589
Atari Classic Server Native Built with 589
This is a pre-built version of the ICAtariClassicServer that serves TCP/IP state information for Atari Classic Controllers on port 1234 built with back-port IDE 589. You would run this alongside your game on the VCS and connect to it.
Libs that made EttinSoft's game work 1/17/2024
Example script and the libs that made Circus Interstellar work, provided by Ettinsoft
It's not recommended to use these files because you really should be using the ones you copied from the Ubuntu build machine you used to build your game. However, these were generated by Ubuntu 22.04 running on the Atari VCS, on 1-17-2024 and worked fine with GameMaker IDE: v2023.11.1.129 and Runtime: v2023.11.1.160
WARNING: Using the libs contained herein may cause undefined or unexpected behavior going forward as GameMaker evolves in the future.