Network Protocol/HEADER

From Custom Mario Kart
Jump to navigation Jump to search

Overview

This article describes the record type HEADER of the Network Protocol. It contains a magic and a CRC32 checksum. This checksum does not include the additional records.

Race Packet Sections
Name Amount Size Description
SLOT 0-1 0x08 Only used for redirected data via a proxy. The record identifies the original client by its slot number.
HEADER 1 0x10 A header for a race packet.
RACEHEADER_1 1 0x28 A record with basic race data.
RACEHEADER_2 0-1 0x28 A record with game-mode specific race data (not present in live view).
ROOM 0-1 0x04 A record containing a friend room message (not present outside friend room lobbies).
SELECT 0-1 0x38 A record containing data to set up a match (not present during races).
RACEDATA 1-2 0x40 A record containing race data for each player, such as positions or inputs.
USER 0-1 0xC0 A record containing user data such as Miis and friend codes.
ITEM 1-2 0x08 A record containing information about players' items.
EVENT 1 ≥ 0x18 A record transmitting item events.


Offset Size Description
0x00 4 bytes Magic. Always 0x0000 0000.
0x04 4 bytes CRC32 checksum of the packet.
0x08 1 byte Header length. Always 0x10.
0x09 1 byte RACEHEADER_1 record length. Either 0x28 or 0x00 if not present.
0x0A 1 byte RACEHEADER_2 record length. Either 0x28 or 0x00 if not present.
0x0B 1 byte ROOM or SELECT record length. Either 0x04 (if ROOM), 0x38 (if SELECT), or 0x00 if not present.
0x0C 1 byte RACEDATA record length. Either 0x40 (per player) or 0x00 if not present.
0x0D 1 byte USER record length. Either 0xC0 or 0x00 if not present.
0x0E 1 byte ITEM record length. Either 0x08 per player or 0x00 if not present.
0x0F 1 byte EVENT record length. Either variable length or 0x00 if not present.