Changes

Jump to navigation Jump to search
723 bytes added ,  03:32, 15 March 2020
Line 155: Line 155:     
Then, if any of the 16bit output fields in output_struct are set to 0xCAFE, a flag is set to 0x2 (same field used for invalid-CRC, which uses value 0x1 for that). Then this returns 0.
 
Then, if any of the 16bit output fields in output_struct are set to 0xCAFE, a flag is set to 0x2 (same field used for invalid-CRC, which uses value 0x1 for that). Then this returns 0.
 +
 +
This reads the user calibration.
    
Reply:
 
Reply:
Line 162: Line 164:  
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x4 || 0x2 || 16bit value copied to output_struct+0x0.
+
| 0x4 || 0x2 || "os_max". s16 value copied to output_struct+0x0.
 
|-
 
|-
 
| 0x6 || 0x1 || [[#CRC]] over the previous 0x2-bytes.
 
| 0x6 || 0x1 || [[#CRC]] over the previous 0x2-bytes.
Line 168: Line 170:  
| 0x7 || 0x1 || Padding.
 
| 0x7 || 0x1 || Padding.
 
|-
 
|-
| 0x8 || 0x2 || 16bit value copied to output_struct+0x2.
+
| 0x8 || 0x2 || "hk_max". s16 value copied to output_struct+0x2.
 
|-
 
|-
 
| 0xA || 0x1 || [[#CRC]] over the previous 0x2-bytes.
 
| 0xA || 0x1 || [[#CRC]] over the previous 0x2-bytes.
Line 174: Line 176:  
| 0xB || 0x1 || Padding.
 
| 0xB || 0x1 || Padding.
 
|-
 
|-
| 0xC || 0x2 || 16bit value copied to output_struct+0x4.
+
| 0xC || 0x2 || "zero". s16 value copied to output_struct+0x4.
 
|-
 
|-
 
| 0xE || 0x1 || [[#CRC]] over the previous 0x2-bytes.
 
| 0xE || 0x1 || [[#CRC]] over the previous 0x2-bytes.
Line 224: Line 226:     
The app doesn't use reply data here besides the status, and the output_size is not checked.
 
The app doesn't use reply data here besides the status, and the output_size is not checked.
 +
 +
The code calling this func saves PlayReports with EventId "write_user_cal". This is the Write version of [[#0x00021A04]], the s16s here are the same as [[#0x00021A04]].
 +
 +
The code calling this func will first call this func, then on success a PlayReport is saved. Then [[#0x00021A04]] is used, on success if the output matches the data used for 0x10011A04 and the is_valid flag is 0, this returns 0. Otherwise: the func for 0x10011A04 is used again, handling error on failure. Then a PlayReport is saved again. [[#0x00021A04]] is used, with error handling on failure. Then the same validation checks run again. If it didn't return at this point, error handling runs.
    
Cmd:
 
Cmd:

Navigation menu