SPMTP
Jump to navigation
Jump to search
Packet Structure
Handshake Packets
Header
Offset | Size | Description |
---|---|---|
0x0 | 0x2 | Magic value (0x6363) |
0x2 | 0x2 | Padding |
0x4 | 0x4 | Type |
0x8 | 0x4 | Zero |
0xC | 0x4 | Content size |
Packet Types
Id | Description |
---|---|
0x41(CLIENT) / 0x42(MASTER) | Identity: original mac address, transferable id, etc. |
0x43 | Accepted peer's identity |
0x11(CLIENT) / 0x12(MASTER) | Module Filter |
0x21(CLIENT) / 0x22(MASTER) | Friend Code |
0x23(CLIENT) / 0x24(MASTER) | Friend "flag" (whether peer is in your friend list) |
0x31(CLIENT) / 0x32(MASTER) | Message Box Metadata List |
0x33(CLIENT) / 0x34(MASTER) | Message Box Metadata List parsed by peer |
0x81 | TMP Box Metadata List |
Identity Packet (0x41/0x42)
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | Transferable ID |
0x8 | 0x8 | Zero |
0x10 | 0x4 | Session ID (randomly generated for each new session) |
0x14 | 0x6 | Original MAC address (the one used for continuous scan is half-randomized) |
0x1A | 0x2 | Padding |
0x1C | 0xC | Date & Time |
Identity Accept Packet (0x43)
Offset | Size | Description |
---|---|---|
0x0 | 0x10 | Garbage |
Module Filter Packet (0x11/0x12)
Offset | Size | Description |
---|---|---|
0x0 | Module Filter size | Module Filter |
Friend Code Packet (0x21/0x22)
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | Friend Code |
Friend Flag Packet (0x23/0x24)
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | Friend flag |
Message Box Metadata List Packet (0x31-0x34)
Offset | Size | Description |
---|---|---|
0x0 | 0x2 | Magic value (0x6565) |
0x2 | 0x2 | Padding |
0x4 | 0x4 | Length of the list |
0x8 | 0x4 | Count |
0xC | 0x20 | Unused/reserved |
0x2C | 0x20 * count | Entries |
Message Box Metadata Entry
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | Title ID |
0x4 | 0x1 | Send mode |
0x5 | 0x1 | Flag |
0x6 | 0x2 | Send state (field modified by peer when sent back in packets 0x33/0x34) |
0x8 | 0x4 | Send size (sum of the size of all the messages you intend to send for this specific title) |
0xC | 0x4 | Message count (number of messages you intend to send for this specific title) |
0x10 | 0x10 | Unused/reserved |
TMP Box Metadata List Packet (0x81)
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | Count |
0x4 | 0x4 * count | Entries |
TMP Box Metadata Entry
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | Title ID |
0x4 | 0x4 | Size of the TMP Box which will be sent for this specific title |