Packet 0x88

From Sylverant
Jump to navigationJump to search

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)