Packet 0x88
There are two vastly different packets with type 0x88. The most common use is from all versions of PSO after PSOv1.
PSO Network Trial Edition (Dreamcast)
In the Network Trial Edition of PSO for the Dreamcast, the client sends Packet 0x88 to log on initially to the login server. This is the first packet sent in response to Packet 0x17. The client then expects the server to respond with its own Packet 0x88. Note that the Network Trial Edition of PSO shares a bug with the Japanese release of PSOv1 where packets can be sizes that are not multiples of 4. This is one such example. The server is expected to pad the packet -- the client only sends 0x26 bytes.
Dreamcast NTE Packet Format (Client -> Server)
Bytes | Meaning |
---|---|
0x00 | Packet Type (0x88) |
0x01 | Unused |
0x02-0x03 | Packet Size (0x0026) |
0x04-0x13 | Serial Number |
0x14 | NUL terminator for Serial Number (0x00) |
0x15-0x24 | Access Key |
0x25 | NUL terminator for Access Key (0x00) |
Dreamcast NTE Packet Format (Server -> Client)
Bytes | Meaning |
---|---|
0x00 | Packet Type (0x88) |
0x01 | Response Code |
0x02-0x03 | Packet Size (0x0004) |
A zero response code means that the client is not recognized by the server, causing it to send Packet 0x8A in response. A non-zero response code means that the client is recognized by the server, causing it to send Packet 0x8B in response.
PSOv2 and later
For PSOv2 and later, the server sends out Packet 0x88 to clients to inform them of the colors of arrows of all players in the lobby. This is typically brought on when a client sends a Packet 0x89 to the server to change their arrow color, but is also sent when a client initially joins if anyone has arrows above their heads.
If this packet is sent while a player is loading into a lobby, some versions of PSO will ignore it, so the server must wait a couple of seconds before sending this packet to a player who just entered a lobby.
Dreamcast Packet Format
Bytes | Meaning |
---|---|
0x00 | Packet Type (0x88) |
0x01 | Flags (Number of entries) |
0x02-0x03 | Packet Size (Variable) |
0x04... | Arrow entries (see below for format) |
Arrow color entry format
Bytes | Meaning |
---|---|
0x00-0x03 | Player Tag (0x00010000) |
0x04-0x07 | Player Guildcard Number |
0x08 | Player Arrow Color |
0x09-0x0B | Padding (all zeroes) |