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