networking – Structure of in-game StarCraft Broodwar UDP packets

I’m exploring the network traffic sent in-game by StarCraft Broodwar 1.16. The game clients run in lockstep and transmit inputs via UDP packets. Clients exchange packets 8 to 24 times per second based on the network turn rate. I observed 12 per second, and I’m not sure if 1.16 used a variable turn rate.

The packets exchanged when no player inputs are issued contain 19 bytes of data. I haven’t been able to find information about how this data is structured. I assume that it includes acknowledgement and time synchronization. I’d love to know more about exactly how this is implemented.

When inputs are issued, the next UDP packet still contains the 19 bytes noted above, but also includes a list of inputs. I haven’t been able to locate information about exactly how inputs are transmitted, but they appear to be represented on the wire in the same way they are implemented in saved replays, so I should be able to figure those out.

I’ve found various resources covering the client-server packets in detail, but I haven’t been able to find much detail about the client to client data transmitted in game. Does anyone have more information about how the first 19 bytes of these packets are structured?