Changes

425 bytes added ,  13:49, 30 October 2018
→‎Data payload: details on how data payload is formed
Line 262: Line 262:  
! Word || Description
 
! Word || Description
 
|-
 
|-
| 0 || Magic ("SFCI" for requests, "SFCO" for responses) as u64.
+
| 0 || Magic ("SFCI" for requests, "SFCO" for responses) as u32.
 +
|-
 +
| 1 || Version as u32. 1 for NewRequest, 0 for Request.
 
|-
 
|-
 
| 2 || Command id as u64 for requests, [[Error_codes|error code]] as u64 for responses.
 
| 2 || Command id as u64 for requests, [[Error_codes|error code]] as u64 for responses.
Line 271: Line 273:  
|}
 
|}
   −
[5.0.0+] A token value was introduced into raw_data+12 (regardless of domain or not, in either case it overlaps with padding).
+
[5.0.0+] Version was incremented from 0 to 1, and a token value was introduced into raw_data+12 (regardless of domain or not, in either case it overlaps with padding).
 +
 
 +
The input rawdata struct is generated by stable-sorting function parameters by alignment, from low to high. It is likely this is a mistake, as it generates structs with the maximum possible padding -- Nintendo probably meant to sort from high to low, but couldn't/can't change this without breaking backwards compatibility.
    
== Official marshalling code ==
 
== Official marshalling code ==