Difference between revisions of "SceMotionDev"

From Vita Development Wiki
Jump to navigation Jump to search
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
== Module ==
 
== Module ==
  
=== Known NIDs ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege !! NID
+
! Version !! World !! Privilege
 
|-
 
|-
| 1.69 || SceMotionDev || Non-secure || Kernel || 0x49268560
+
| 1.69-3.60 || Non-secure || Kernel
 
|}
 
|}
  
Line 17: Line 16:
 
! Version !! Name !! World !! Visibility !! NID
 
! Version !! Name !! World !! Visibility !! NID
 
|-
 
|-
| 1.69 || [[SceMotionDev#SceMotionDev|SceMotionDev]] || Non-secure || User || 0x1F766AC7
+
| 1.69-3.60 || [[SceMotionDev#SceMotionDev|SceMotionDev]] || Non-secure || User || 0x1F766AC7
 
|-
 
|-
| 1.69 || [[SceMotionDev#SceMotionDevForDriver|SceMotionDevForDriver]] || Non-secure || Kernel || 0xA501409A
+
| 1.69-3.60 || [[SceMotionDev#SceMotionDevForDriver|SceMotionDevForDriver]] || Non-secure || Kernel || 0xA501409A
 
|}
 
|}
  
Line 37: Line 36:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xAF014866
+
| 1.69-3.60 || 0xAF014866
|-
 
| 3.60 || 0xAF014866
 
 
|}
 
|}
  
Line 47: Line 44:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x716C685B
+
| 1.69-3.60 || 0x716C685B
|-
 
| 3.60 || 0x716C685B
 
 
|}
 
|}
  
Line 57: Line 52:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xBDEC1E32
+
| 1.69-3.60 || 0xBDEC1E32
|-
 
| 3.60 || 0xBDEC1E32
 
 
|}
 
|}
  
Line 75: Line 68:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xAAB4B41F
+
| 1.69-3.60 || 0xAAB4B41F
|-
 
| 3.60 || 0xAAB4B41F
 
 
|}
 
|}
 
   
 
   
Line 85: Line 76:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x067F06D9
+
| 1.69-3.60 || 0x067F06D9
|-
 
| 3.60 || 0x067F06D9
 
 
|}
 
|}
  
Line 95: Line 84:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x1F1EFEFB
+
| 1.69-3.60 || 0x1F1EFEFB
|-
 
| 3.60 || 0x1F1EFEFB
 
 
|}
 
|}
  
Line 105: Line 92:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x5EDEA879
+
| 1.69-3.60 || 0x5EDEA879
|-
 
| 3.60 || 0x5EDEA879
 
 
|}
 
|}
  
Line 131: Line 116:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x777D57D2
+
| 1.69-3.60 || 0x777D57D2
|-
 
| 3.60 || 0x777D57D2
 
 
|}
 
|}
 
   
 
   
Line 149: Line 132:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x6D033072
+
| 1.69-3.60 || 0x6D033072
|-
 
| 3.60 || 0x6D033072
 
 
|}
 
|}
  
Line 167: Line 148:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x74555D91
+
| 1.69-3.60 || 0x74555D91
|-
 
| 3.60 || 0x74555D91
 
 
|}
 
|}
  
Line 185: Line 164:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xE8A3E48E
+
| 1.69-3.60 || 0xE8A3E48E
|-
 
| 3.60 || 0xE8A3E48E
 
 
|}
 
|}
  
Line 195: Line 172:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x16DD5913
+
| 1.69-3.60 || 0x16DD5913
|-
 
| 3.60 || 0x16DD5913
 
 
|}
 
|}
  
Line 205: Line 180:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xE72A35B8
+
| 1.69-3.60 || 0xE72A35B8
|-
 
| 3.60 || 0xE72A35B8
 
 
|}
 
|}
  
Line 231: Line 204:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xCC4FDA6A
+
| 1.69-3.60 || 0xCC4FDA6A
|-
 
| 3.60 || 0xCC4FDA6A
 
 
|}
 
|}
  
Line 241: Line 212:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xC0095F0F
+
| 1.69-3.60 || 0xC0095F0F
|-
 
| 3.60 || 0xC0095F0F
 
 
|}
 
|}
  
Line 259: Line 228:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x47948D9C
+
| 1.69-3.60 || 0x47948D9C
|-
 
| 3.60 || 0x47948D9C
 
 
|}
 
|}
  
Line 277: Line 244:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x56C1551E
+
| 1.69-3.60 || 0x56C1551E
|-
 
| 3.60 || 0x56C1551E
 
 
|}
 
|}
  
Line 295: Line 260:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x3EAA8A4F
+
| 1.69-3.60 || 0x3EAA8A4F
|-
 
| 3.60 || 0x3EAA8A4F
 
 
|}
 
|}
  
Line 305: Line 268:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x787384FA
+
| 1.69-3.60 || 0x787384FA
|-
 
| 3.60 || 0x787384FA
 
 
|}
 
|}
  
Line 315: Line 276:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xEC94F683
+
| 1.69-3.60 || 0xEC94F683
|-
 
| 3.60 || 0xEC94F683
 
 
|}
 
|}
  
Line 343: Line 302:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x3E4BCBC0
+
| 0.931-3.60 || 0x3E4BCBC0
 
|}
 
|}
+
 
 +
<source lang="C">
 +
typedef struct SceKernelDeviceInfo {
 +
  uint16_t fwver;
 +
  uint8_t unk;
 +
  uint8_t hwinfo;
 +
} SceKernelDeviceInfo;
 +
 
 +
int sceMotionDevGetDeviceInfoForDriver(SceKernelDeviceInfo *pInfo);
 +
</source>
 +
 
 
=== sceMotionDevGetEvaInfoForDriver ===
 
=== sceMotionDevGetEvaInfoForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
Line 409: Line 378:
 
| 3.60 || 0xDBAF611A
 
| 3.60 || 0xDBAF611A
 
|}
 
|}
 +
 +
=== SceMotionDevForDriver_unk_031AF7A1 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x031AF7A1
 +
|}
 +
 +
=== SceMotionDevForDriver_unk_0808D77D ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x0808D77D
 +
|}
 +
 +
=== sceMotionDevUpdateSendCommandForDriver ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-3.60 || 0x09918DAE
 +
|}
 +
 +
Requests:
 +
* 0x80 0x2: Download Mode Request
 +
* 0x81 0x12: Start Transfer Request
 +
* 0x82 0x26: Transfer Program Data
 +
* 0x83 0x2: Flash Write Request
 +
* 0x84 0x2: Download Finish Request
 +
 +
<source lang="C">
 +
typedef struct SceMotionDevUpdateStartTransferRequest { // Size is 0x3A on FW 0.931
 +
  uint8_t headerSize; // usually 0x10
 +
  uint8_t hwInfo;
 +
  uint8_t dataType;
 +
  uint8_t padding_0x7;
 +
  uint16_t dataVersion;
 +
  uint16_t padding_0xE;
 +
  uint32_t dataSize;
 +
  uint32_t address;
 +
  uint16_t check_sum; // checksum of the header (0x10 bytes)
 +
  uint8_t padding[0x26];
 +
} SceMotionDevUpdateStartTransferRequest;
 +
 +
typedef struct SceMotionDevUpdateTransferProgramDataRequest { // Size is 0x3A on FW 0.931
 +
  uint32_t offset;
 +
  uint8_t programData[0x20];
 +
  uint8_t padding[0x16];
 +
} SceMotionDevUpdateTransferProgramDataRequest;
 +
 +
typedef struct SceMotionDevUpdateRequest { // Size is 0x3C on FW 0.931
 +
  uint8_t type; // ex: 0x80, 0x81, 0x82, 0x83, 0x84
 +
  uint8_t size; // ex: 2, 0x12, 0x26
 +
  uint8_t data[0x3A];
 +
} SceMotionDevUpdateRequest;
 +
 +
typedef struct SceMotionDevUpdateResponse { // Size is 0x40 on FW 0.931
 +
  SceUInt32 packetID;
 +
  SceUInt32 status;
 +
  char unk[0x38];
 +
} SceMotionDevUpdateResponse;
 +
 +
int sceMotionDevUpdateSendCommandForDriver(void *callback, SceMotionDevUpdateRequest *pRequest, SceMotionDevUpdateResponse *pResponse, SceUID *evfId);
 +
</source>
 +
 +
=== sceMotionDevSetActiveProcessForDriver ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.990-3.60 || 0x22CD6DCA
 +
|}
 +
 +
<source lang="C">int sceMotionDevSetActiveProcessForDriver(SceUID pid);</source>
 +
 +
=== SceMotionDevForDriver_unk_3CD0CE14 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x3CD0CE14
 +
|}
 +
 +
=== SceMotionDevForDriver_unk_77BA3A04 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x77BA3A04
 +
|}
 +
 +
=== SceMotionDevForDriver_unk_85E3C678 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x85E3C678
 +
|}
 +
 +
=== sceMotionDevUpdateRestartForDriver ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-3.60 || 0xA75976EE
 +
|}
 +
 +
<source lang="C">int sceMotionDevUpdateRestartForDriver(void);</source>
 +
 +
=== SceMotionDevForDriver_unk_D7DA3DA7 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xD7DA3DA7
 +
|}
 +
 +
=== SceMotionDevForDriver_unk_DB89D1BF ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xDB89D1BF
 +
|}
 +
 +
=== sceMotionDevUpdateInitForDriver ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-3.60 || 0xFD1C528D
 +
|}
 +
 +
<source lang="C">int sceMotionDevUpdateInitForDriver(void);</source>
 +
 +
=== SceMotionDevForDriver_unk_FE6ECA41 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xFE6ECA41
 +
|}
 +
  
 
[[Category:Modules]]
 
[[Category:Modules]]
 
[[Category:Kernel]]
 
[[Category:Kernel]]

Revision as of 16:08, 23 February 2021

Module

Version World Privilege
1.69-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceMotionDev Non-secure User 0x1F766AC7
1.69-3.60 SceMotionDevForDriver Non-secure Kernel 0xA501409A

SceMotionDev

sceMotionDevGetAccCalibData2

Version NID
3.60 0xD582B628

sceMotionDevGetAccCalibData

Version NID
1.69-3.60 0xAF014866

sceMotionDevGetCalibrationData

Version NID
1.69-3.60 0x716C685B

sceMotionDevGetCalibrationHeader

Version NID
1.69-3.60 0xBDEC1E32

sceMotionDevGetControllerType

Version NID
3.60 0xA2CD11F6

sceMotionDevGetCurrentMagnCalibData

Version NID
1.69-3.60 0xAAB4B41F

sceMotionDevGetCurrentMagnStabilityLevel

Version NID
1.69-3.60 0x067F06D9

sceMotionDevGetDeviceInfo

Version NID
1.69-3.60 0x1F1EFEFB

sceMotionDevGetDeviceLocation

Version NID
1.69-3.60 0x5EDEA879

sceMotionDevGetDs3CalibData

Version NID
3.60 0x1FD76B5E

sceMotionDevGetEvaInfo

Version NID
3.60 0xE6955280

sceMotionDevGetFactoryMagnCalibData

Version NID
1.69-3.60 0x777D57D2

sceMotionDevGetGyroBias2

Version NID
3.60 0x12B9F05E

sceMotionDevGetGyroBias

Version NID
1.69-3.60 0x6D033072

sceMotionDevGetGyroCalibData2

Version NID
3.60 0x160E8DE9

sceMotionDevGetGyroCalibData

Version NID
1.69-3.60 0x74555D91

sceMotionDevGetMeasMode

Version NID
3.60 0xEA95D3C9

sceMotionDevIsReady

Version NID
1.69-3.60 0xE8A3E48E

sceMotionDevMagnSamplingStart

Version NID
1.69-3.60 0x16DD5913

sceMotionDevMagnSamplingStop

Version NID
1.69-3.60 0xE72A35B8

sceMotionDevRead2

Version NID
3.60 0xFB87948E

sceMotionDevRead3

Version NID
3.60 0x27954BC7

sceMotionDevReadForMagnCalib

Version NID
1.69-3.60 0xCC4FDA6A

sceMotionDevRead

Version NID
1.69-3.60 0xC0095F0F

sceMotionDevSamplingStart2

Version NID
3.60 0xB51E02E8

sceMotionDevSamplingStart

Version NID
1.69-3.60 0x47948D9C

sceMotionDevSamplingStop2

Version NID
3.60 0x9E868205

sceMotionDevSamplingStop

Version NID
1.69-3.60 0x56C1551E

sceMotionDevSetGyroFeedBack

Version NID
3.60 0xCCAEBF59

sceMotionDevSetSamplingMode

Version NID
1.69-3.60 0x3EAA8A4F

sceMotionDevUpdateMagnCalibData

Version NID
1.69-3.60 0x787384FA

sceMotionDevUpdateMagnStabilityLevel

Version NID
1.69-3.60 0xEC94F683

SceMotionDevForDriver

sceMotionDevGetCalibrationDataForDriver

Version NID
3.60 0xF0251700

sceMotionDevGetCalibrationHeaderForDriver

Version NID
3.60 0x3B23DF55

sceMotionDevGetDeviceInfoForDriver

Version NID
0.931-3.60 0x3E4BCBC0
typedef struct SceKernelDeviceInfo {
  uint16_t fwver;
  uint8_t unk;
  uint8_t hwinfo;
} SceKernelDeviceInfo;

int sceMotionDevGetDeviceInfoForDriver(SceKernelDeviceInfo *pInfo);

sceMotionDevGetEvaInfoForDriver

Version NID
3.60 0x5B53AC26

sceMotionDevIsReadyForDriver

Version NID
3.60 0x10AAC8EA

sceMotionDevNoiseFilterIsAvailableForDriver

Version NID
3.60 0x11A17A96

sceMotionDevReadForDriver

Version NID
3.60 0x3A3407B5

sceMotionDevRegisterVirtualMotionDriverForDriver

Version NID
3.60 0x7FD06731

sceMotionDevSamplingStartForDriver

Version NID
3.60 0xC02C85AB

sceMotionDevSamplingStopForDriver

Version NID
3.60 0xFD0B0785

sceMotionDevSetSamplingModeForDriver

Version NID
3.60 0xDBAF611A

SceMotionDevForDriver_unk_031AF7A1

Version NID
3.60 0x031AF7A1

SceMotionDevForDriver_unk_0808D77D

Version NID
3.60 0x0808D77D

sceMotionDevUpdateSendCommandForDriver

Version NID
0.931-3.60 0x09918DAE

Requests:

  • 0x80 0x2: Download Mode Request
  • 0x81 0x12: Start Transfer Request
  • 0x82 0x26: Transfer Program Data
  • 0x83 0x2: Flash Write Request
  • 0x84 0x2: Download Finish Request
typedef struct SceMotionDevUpdateStartTransferRequest { // Size is 0x3A on FW 0.931
  uint8_t headerSize; // usually 0x10
  uint8_t hwInfo;
  uint8_t dataType;
  uint8_t padding_0x7;
  uint16_t dataVersion;
  uint16_t padding_0xE;
  uint32_t dataSize;
  uint32_t address;
  uint16_t check_sum; // checksum of the header (0x10 bytes)
  uint8_t padding[0x26];
} SceMotionDevUpdateStartTransferRequest;

typedef struct SceMotionDevUpdateTransferProgramDataRequest { // Size is 0x3A on FW 0.931
  uint32_t offset;
  uint8_t programData[0x20];
  uint8_t padding[0x16];
} SceMotionDevUpdateTransferProgramDataRequest;

typedef struct SceMotionDevUpdateRequest { // Size is 0x3C on FW 0.931
  uint8_t type; // ex: 0x80, 0x81, 0x82, 0x83, 0x84
  uint8_t size; // ex: 2, 0x12, 0x26
  uint8_t data[0x3A];
} SceMotionDevUpdateRequest;

typedef struct SceMotionDevUpdateResponse { // Size is 0x40 on FW 0.931
  SceUInt32 packetID;
  SceUInt32 status;
  char unk[0x38];
} SceMotionDevUpdateResponse;

int sceMotionDevUpdateSendCommandForDriver(void *callback, SceMotionDevUpdateRequest *pRequest, SceMotionDevUpdateResponse *pResponse, SceUID *evfId);

sceMotionDevSetActiveProcessForDriver

Version NID
0.990-3.60 0x22CD6DCA
int sceMotionDevSetActiveProcessForDriver(SceUID pid);

SceMotionDevForDriver_unk_3CD0CE14

Version NID
3.60 0x3CD0CE14

SceMotionDevForDriver_unk_77BA3A04

Version NID
3.60 0x77BA3A04

SceMotionDevForDriver_unk_85E3C678

Version NID
3.60 0x85E3C678

sceMotionDevUpdateRestartForDriver

Version NID
0.931-3.60 0xA75976EE
int sceMotionDevUpdateRestartForDriver(void);

SceMotionDevForDriver_unk_D7DA3DA7

Version NID
3.60 0xD7DA3DA7

SceMotionDevForDriver_unk_DB89D1BF

Version NID
3.60 0xDB89D1BF

sceMotionDevUpdateInitForDriver

Version NID
0.931-3.60 0xFD1C528D
int sceMotionDevUpdateInitForDriver(void);

SceMotionDevForDriver_unk_FE6ECA41

Version NID
3.60 0xFE6ECA41