SceMotionDev: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
 
(12 intermediate revisions by 3 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
|-
| 3.60 || SceMotionDev || Non-secure || Kernel || 0x466A97BD
|-
| 3.65 || SceMotionDevDummy || Non-secure || Kernel || 0x30485021
|}
|}


Line 21: 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
|-
| 3.60 || [[SceMotionDev#SceMotionDev|SceMotionDev]] || Non-secure || User || 0x1F766AC7
|-
| 1.69 || [[SceMotionDev#SceMotionDevForDriver|SceMotionDevForDriver]] || Non-secure || Kernel || 0xA501409A
|-
|-
| 3.60 || [[SceMotionDev#SceMotionDevForDriver|SceMotionDevForDriver]] || Non-secure || Kernel || 0xA501409A
| 1.69-3.60 || [[SceMotionDev#SceMotionDevForDriver|SceMotionDevForDriver]] || Non-secure || Kernel || 0xA501409A
|}
|}


Line 45: Line 36:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xAF014866
| 1.69-3.60 || 0xAF014866
|-
| 3.60 || 0xAF014866
|}
|}


Line 55: Line 44:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x716C685B
| 1.69-3.60 || 0x716C685B
|-
| 3.60 || 0x716C685B
|}
|}


Line 65: Line 52:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xBDEC1E32
| 1.69-3.60 || 0xBDEC1E32
|-
| 3.60 || 0xBDEC1E32
|}
|}


Line 83: Line 68:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xAAB4B41F
| 1.69-3.60 || 0xAAB4B41F
|-
| 3.60 || 0xAAB4B41F
|}
|}
   
   
Line 93: Line 76:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x067F06D9
| 1.69-3.60 || 0x067F06D9
|-
| 3.60 || 0x067F06D9
|}
|}


Line 103: Line 84:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x1F1EFEFB
| 1.69-3.60 || 0x1F1EFEFB
|-
| 3.60 || 0x1F1EFEFB
|}
|}


Line 113: Line 92:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x5EDEA879
| 1.69-3.60 || 0x5EDEA879
|-
| 3.60 || 0x5EDEA879
|}
|}


Line 139: Line 116:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x777D57D2
| 1.69-3.60 || 0x777D57D2
|-
| 3.60 || 0x777D57D2
|}
|}
   
   
Line 157: Line 132:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x6D033072
| 1.69-3.60 || 0x6D033072
|-
| 3.60 || 0x6D033072
|}
|}


Line 175: Line 148:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x74555D91
| 1.69-3.60 || 0x74555D91
|-
| 3.60 || 0x74555D91
|}
|}


Line 193: Line 164:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xE8A3E48E
| 1.69-3.60 || 0xE8A3E48E
|-
| 3.60 || 0xE8A3E48E
|}
|}


Line 203: Line 172:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x16DD5913
| 1.69-3.60 || 0x16DD5913
|-
| 3.60 || 0x16DD5913
|}
|}


Line 213: Line 180:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xE72A35B8
| 1.69-3.60 || 0xE72A35B8
|-
| 3.60 || 0xE72A35B8
|}
|}


Line 239: Line 204:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xCC4FDA6A
| 1.69-3.60 || 0xCC4FDA6A
|-
| 3.60 || 0xCC4FDA6A
|}
|}


Line 249: Line 212:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xC0095F0F
| 1.69-3.60 || 0xC0095F0F
|-
| 3.60 || 0xC0095F0F
|}
|}


Line 267: Line 228:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x47948D9C
| 1.69-3.60 || 0x47948D9C
|-
| 3.60 || 0x47948D9C
|}
|}


Line 285: Line 244:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x56C1551E
| 1.69-3.60 || 0x56C1551E
|-
| 3.60 || 0x56C1551E
|}
|}


Line 303: Line 260:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x3EAA8A4F
| 1.69-3.60 || 0x3EAA8A4F
|-
| 3.60 || 0x3EAA8A4F
|}
|}


Line 313: Line 268:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x787384FA
| 1.69-3.60 || 0x787384FA
|-
| 3.60 || 0x787384FA
|}
|}


Line 323: Line 276:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xEC94F683
| 1.69-3.60 || 0xEC94F683
|-
| 3.60 || 0xEC94F683
|}
|}


Line 351: Line 302:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x3E4BCBC0
| 0.931.010-3.740.011 || 0x3E4BCBC0
|}
|}
 
Returns Motion device information, obtained using [[SceSyscon#sceSysconMotionGetDeviceInfoForDriver]].
 
<source lang="C">
typedef struct SceKernelMotionDeviceInfo {
  uint16_t BarkleyFwVersion;
  uint16_t BarkleyHwInfo;
} SceKernelMotionDeviceInfo;
 
int sceMotionDevGetDeviceInfoForDriver(SceKernelMotionDeviceInfo *pInfo);
</source>
 
=== sceMotionDevGetEvaInfoForDriver ===
=== sceMotionDevGetEvaInfoForDriver ===
{| class="wikitable"
{| class="wikitable"
Line 441: Line 403:
| 0.931-3.60 || 0x09918DAE
| 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">
<source lang="C">
typedef struct somestruct_0x3C { // Size is 0x3C on FW 0.931
typedef struct SceMotionDevUpdateStartTransferRequest { // Size is 0x3A on FW 0.931
   char unk[0x3C];
  uint8_t headerSize; // usually 0x10
} somestruct_0x3C;
  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 somestruct_0x40 { // Size is 0x40 on FW 0.931
typedef struct SceMotionDevUpdateResponse { // Size is 0x40 on FW 0.931
   SceUInt32 packetID;
   SceUInt32 packetID;
   SceUInt32 status;
   SceUInt32 status;
   char unk[0x38];
   char unk[0x38];
} somestruct_0x40;
} SceMotionDevUpdateResponse;


int sceMotionDevUpdateSendCommandForDriver(void *callback, somestruct_0x3C unk, somestruct_0x40 unk2, SceUID *evfId);
int sceMotionDevUpdateSendCommandForDriver(void *callback, SceMotionDevUpdateRequest *pRequest, SceMotionDevUpdateResponse *pResponse, SceUID *evfId);
</source>
</source>


Line 495: Line 485:
! Version !! NID
! Version !! NID
|-
|-
| 0.990-3.60 || 0xA75976EE
| 0.931-3.60 || 0xA75976EE
|}
|}
<source lang="C">int sceMotionDevUpdateRestartForDriver(void);</source>


=== SceMotionDevForDriver_unk_D7DA3DA7 ===
=== SceMotionDevForDriver_unk_D7DA3DA7 ===
Line 519: Line 511:
! Version !! NID
! Version !! NID
|-
|-
| 0.990-3.60 || 0xFD1C528D
| 0.931-3.60 || 0xFD1C528D
|}
|}
<source lang="C">int sceMotionDevUpdateInitForDriver(void);</source>


=== SceMotionDevForDriver_unk_FE6ECA41 ===
=== SceMotionDevForDriver_unk_FE6ECA41 ===
Line 530: Line 524:
|}
|}


 
[[Category:ARM]]
[[Category:Kernel]]
[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Library]]

Latest revision as of 00:44, 5 January 2024

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.010-3.740.011 0x3E4BCBC0

Returns Motion device information, obtained using SceSyscon#sceSysconMotionGetDeviceInfoForDriver.

typedef struct SceKernelMotionDeviceInfo {
  uint16_t BarkleyFwVersion;
  uint16_t BarkleyHwInfo;
} SceKernelMotionDeviceInfo;

int sceMotionDevGetDeviceInfoForDriver(SceKernelMotionDeviceInfo *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