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" |
| |- | | |- |