Changes

616 bytes added ,  18:57, 10 April 2016
Line 59: Line 59:  
|}
 
|}
   −
Total_frames is at least 0x4 normally. When a sysupdate is included, total_frames is 0x4+<total frames required for the titlelist(normally 0x1)>.
+
Total_frames is at least 0x4 normally. When a sysupdate is included, total_frames is 0x4+<total frames required for the titlelist(normally 0x1)>. Total_frames should be <=0x20, but the code doesn't check for this specific value.
   −
Frames:
+
==== Checksum ====
 +
The checksum seed is the 4-byte output from [[PS:EncryptDecryptAes|encrypting]] zeros with AES-CTR using [[PSPXI:EncryptDecryptAes|keytype5]]. The CTR is the output from this: "for(i=0; i<0x10; i++)ctr[i] = ctrseed[i] ^ host_macaddress[i % 6];" This ctrseed is a fixed 0x10-byte random-data block stored in DLP-sysmodule .rodata.
 +
This seed is initialized after connecting to/creating the DLP network.
 +
 
 +
The checksum stored in the above data frame header is then calculated using this checksum seed.
 +
 
 +
==== Frames ====
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 83: Line 89:  
The structure of each spectator frame relative to "frame-specific payload" is described below.
 
The structure of each spectator frame relative to "frame-specific payload" is described below.
   −
==== Metadata frame ====
+
===== Metadata frame =====
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 185: Line 191:  
If the u16 at frameheader+0x6 is less than 0x101, the 8-bytes at outptr are cleared to all-zero, instead of copying the data from offset 0x2E8.
 
If the u16 at frameheader+0x6 is less than 0x101, the 8-bytes at outptr are cleared to all-zero, instead of copying the data from offset 0x2E8.
   −
==== Icon gfx frame ====
+
===== Icon gfx frame =====
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 197: Line 203:  
|}
 
|}
   −
==== Sysupdate titlelist frame ====
+
===== Sysupdate titlelist frame =====
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-