SPMTP: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
 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  | |||
|}  | |}  | ||
Revision as of 14:49, 30 December 2019
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 |