mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	implement GyroscopeCalibrateParam
This commit is contained in:
		
							parent
							
								
									db151efd0a
								
							
						
					
					
						commit
						1d2070d0d3
					
				
					 2 changed files with 20 additions and 9 deletions
				
			
		|  | @ -251,14 +251,13 @@ void GetGyroscopeLowCalibrateParam(Service::Interface* self) { | |||
| 
 | ||||
|     cmd_buff[1] = RESULT_SUCCESS.raw; | ||||
| 
 | ||||
|     // currently don't understand the meaning of return value,
 | ||||
|     // so stubbed these with value from a real console.
 | ||||
|     // TODO(wwylele): implement this correctly
 | ||||
|     cmd_buff[2] = 0x19DDFFDC; | ||||
|     cmd_buff[3] = 0x0002E5DA; | ||||
|     cmd_buff[4] = 0xE5CE1A2D; | ||||
|     cmd_buff[5] = 0x19C6FFF3; | ||||
|     cmd_buff[6] = 0x001CE61E; | ||||
|     const s16 param_unit = 6700; // an approximate value taken from hw
 | ||||
|     GyroscopeCalibrateParam param = { | ||||
|         { 0, param_unit, -param_unit }, | ||||
|         { 0, param_unit, -param_unit }, | ||||
|         { 0, param_unit, -param_unit }, | ||||
|     }; | ||||
|     memcpy(&cmd_buff[2], ¶m, sizeof(param)); | ||||
| 
 | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
| } | ||||
|  |  | |||
|  | @ -160,6 +160,18 @@ struct SharedMem { | |||
|     } gyroscope; | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * Structure of calibrate params that GetGyroscopeLowCalibrateParam returns | ||||
|  */ | ||||
| struct GyroscopeCalibrateParam { | ||||
|     struct { | ||||
|         // TODO (wwylele): figure out the exact meaning of these params
 | ||||
|         s16 zero_point; | ||||
|         s16 positive_unit_point; | ||||
|         s16 negative_unit_point; | ||||
|     } x, y, z; | ||||
| }; | ||||
| 
 | ||||
| // TODO: MSVC does not support using offsetof() on non-static data members even though this
 | ||||
| //       is technically allowed since C++11. This macro should be enabled once MSVC adds
 | ||||
| //       support for that.
 | ||||
|  | @ -284,7 +296,7 @@ void GetGyroscopeLowRawToDpsCoefficient(Service::Interface* self); | |||
|  *      None | ||||
|  *  Outputs: | ||||
|  *      1 : Result of function, 0 on success, otherwise error code | ||||
|  *      2~6 : CalibrateParam? | ||||
|  *      2~6 (18 bytes) : struct GyroscopeCalibrateParam | ||||
|  */ | ||||
| void GetGyroscopeLowCalibrateParam(Service::Interface* self); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue