SPMTP: Difference between revisions
Created page with "= Packet Structure = == Handshake Packets == === Header === {| class="wikitable" border="1" |- ! Offset ! Size ! Description |- | 0x0 | 0x2 | Magic value (0x6363) |- | 0x2..." |
Packets |
||
Line 58: | Line 58: | ||
| 0x81 | | 0x81 | ||
| TMP Box Metadata List | | TMP Box Metadata List | ||
|} | |||
=== Identity Packet (0x41/0x42) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! 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) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x10 | |||
| Garbage | |||
|} | |||
=== Module Filter Packet (0x11/0x12) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| Module Filter size | |||
| Module Filter | |||
|} | |||
=== Friend Code Packet (0x21/0x22) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| Friend Code | |||
|} | |||
=== Friend Flag Packet (0x23/0x24) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Friend flag | |||
|} | |||
=== Message Box Metadata List Packet (0x31-0x34) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! 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 ==== | |||
{| class="wikitable" border="1" | |||
|- | |||
! 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) === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Count | |||
|- | |||
| 0x4 | |||
| 0x4 * count | |||
| Entries | |||
|} | |||
==== TMP Box Metadata Entry ==== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Title ID | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Size of the TMP Box which will be sent for this specific title | |||
|} | |} |