|
|
Line 104: |
Line 104: |
|
| |
|
| <source lang="C">int sceCtrlGetMaskForAllForDriver(uint32_t *mask);</source> | | <source lang="C">int sceCtrlGetMaskForAllForDriver(uint32_t *mask);</source> |
|
| |
| === SceCtrlForDriver_FF9D4DD4 ===
| |
| {| class="wikitable"
| |
| |-
| |
| ! Version !! NID
| |
| |-
| |
| | 3.60 || 0xFF9D4DD4
| |
| |}
| |
|
| |
| Register some callback and get current hold button
| |
|
| |
| Using by ScePower
| |
|
| |
| <source lang="C">
| |
| /*
| |
| * param[in] some_button - The SceCtrlButtons type value
| |
| * param[in] cb - The callback function pointer
| |
| * param[in] a2 - Unknown, set zero
| |
| * param[out] button - The current hold button
| |
| */
| |
|
| |
| int SceCtrlForDriver_FF9D4DD4(int some_button, const void *cb, int a2, uint32_t *button)
| |
| </source>
| |
|
| |
|
| === sceCtrlGetCurrentProcessIdForDriver === | | === sceCtrlGetCurrentProcessIdForDriver === |
Line 181: |
Line 158: |
|
| |
|
| <source lang="C">int SceCtrlForDriver_69E45836(void);</source> | | <source lang="C">int SceCtrlForDriver_69E45836(void);</source> |
| | |
| | === SceCtrlForDriver_FF9D4DD4 === |
| | {| class="wikitable" |
| | |- |
| | ! Version !! NID |
| | |- |
| | | 3.60 || 0xFF9D4DD4 |
| | |} |
| | |
| | Register some callback and get current hold button |
| | |
| | Using by ScePower |
| | |
| | <source lang="C"> |
| | /* |
| | * param[in] some_button - The SceCtrlButtons type value |
| | * param[in] cb - The callback function pointer |
| | * param[in] a2 - Unknown, set zero |
| | * param[out] button - The current hold button |
| | */ |
| | |
| | int SceCtrlForDriver_FF9D4DD4(int some_button, const void *cb, int a2, uint32_t *button) |
| | </source> |
| | |
| | === SceCtrlForDriver_4CCB2153 === |
| | {| class="wikitable" |
| | |- |
| | ! Version !! NID |
| | |- |
| | | 3.60 || 0x4CCB2153 |
| | |} |
| | |
| | Clears the information set in SceCtrlForDriver_FF9D4DD4 |
| | |
| | <source lang="C"> |
| | /* |
| | * param[in] port - pass 0~3 |
| | */ |
| | int SceCtrlForDriver_4CCB2153(int port); |
| | </source> |
|
| |
|
| === Unknown functions === | | === Unknown functions === |
|
| |
|
| SceCtrlForDriver_02081494: 0x02081494 | | SceCtrlForDriver_02081494: 0x02081494 |
| SceCtrlForDriver_4CCB2153: 0x4CCB2153
| |
|
| |
|
| == SceCtrl == | | == SceCtrl == |
Revision as of 15:11, 22 January 2021
Module
Version |
World |
Privilege
|
1.69-3.65 |
Non-secure |
Kernel
|
Libraries
Known NIDs
Version |
Name |
World |
Visibility |
NID
|
1.69 |
SceCtrlForDriver |
Non-secure |
Kernel |
0x7823A5D1
|
1.69 |
SceCtrl |
Non-secure |
User |
0xD197E3C7
|
SceCtrlForDriver
sceCtrlRegisterVirtualControllerDriverForDriver
Version |
NID
|
3.60 |
0x18823EEA
|
typedef struct SceCtrlVirtualControllerDriver {
int (*readButtons)(int port, SceCtrlData *pad_data, int count);
int (*setActuator)(int port, const SceCtrlActuator* pState);
int (*getBatteryInfo)(int port, SceUInt8 *batt);
int (*disconnect)(int port);
int (*setTurnOffInterval)(int port);
int (*getActiveControllerPort)(void);
int (*changePortAssign)(int port1, int port2);
int (*unk0)(void); // SceCtrlForDriver_69E45836 equivalent
int (*getControllerPortInfo)(SceCtrlPortInfo *info);
int (*setLightBar)(int port, SceUInt8 r, SceUInt8 g, SceUInt8 b);
int (*resetLightBar)(int port);
int (*unk1)(int pid); // sceCtrlSetActiveProcessForDriver equivalent
int (*singleControllerMode)(int port);
} SceCtrlVirtualControllerDriver; /* size 0x34 */
int sceCtrlRegisterVirtualControllerDriverForDriver(SceCtrlVirtualControllerDriver *driver);
On the PSTV, the SceDS3 module calls this function to register the DS3/DS4 USB/Bluetooth driver.
Only one virtual controller driver can be registered (the new one replaces the previous one).
sceCtrlSetActiveProcessForDriver
Version |
NID
|
0.990-3.60 |
0xB26C2231
|
int sceCtrlSetActiveProcessForDriver(SceUID pid);
sceCtrlUpdateMaskForNonShellForDriver
Version |
NID
|
3.60 |
0x03777131
|
int sceCtrlUpdateMaskForNonShellForDriver(int clear_mask, int set_mask);
sceCtrlUpdateMaskForAllForDriver
Version |
NID
|
3.60 |
0x12C13A72
|
int sceCtrlUpdateMaskForAllForDriver(int clear_mask, int set_mask);
sceCtrlGetMaskForNonShellForDriver
Version |
NID
|
3.60 |
0xB25BD8FD
|
int sceCtrlGetMaskForNonShellForDriver(uint32_t *mask);
sceCtrlGetMaskForAllForDriver
Version |
NID
|
3.60 |
0x46ABDDE8
|
int sceCtrlGetMaskForAllForDriver(uint32_t *mask);
sceCtrlGetCurrentProcessIdForDriver
Version |
NID
|
3.60 |
0xDA07E970
|
int sceCtrlGetCurrentProcessIdForDriver(SceUID *pid);
sceCtrlSetInhibitFlagForDriver
Version |
NID
|
3.60 |
0xC8CE3E43
|
/*
* param[in] flag - if pass to not value one, all operations are inhibit.
*/
int sceCtrlSetInhibitFlagForDriver(int flag);
sceCtrlSetInhibitFlagProcForDriver
Version |
NID
|
3.60 |
0x5B708A15
|
/*
* param[in] flag - if pass to value one, all operations are inhibit in target process(PS button is not disabled)
*
* note - This flag is reset when the ctrl process is switched
*/
int sceCtrlSetInhibitFlagProcForDriver(SceUID pid, int flag);
SceCtrlForDriver_69E45836
Version |
NID
|
3.60 |
0x69E45836
|
maybe disconnect device
int SceCtrlForDriver_69E45836(void);
SceCtrlForDriver_FF9D4DD4
Version |
NID
|
3.60 |
0xFF9D4DD4
|
Register some callback and get current hold button
Using by ScePower
/*
* param[in] some_button - The SceCtrlButtons type value
* param[in] cb - The callback function pointer
* param[in] a2 - Unknown, set zero
* param[out] button - The current hold button
*/
int SceCtrlForDriver_FF9D4DD4(int some_button, const void *cb, int a2, uint32_t *button)
SceCtrlForDriver_4CCB2153
Version |
NID
|
3.60 |
0x4CCB2153
|
Clears the information set in SceCtrlForDriver_FF9D4DD4
/*
* param[in] port - pass 0~3
*/
int SceCtrlForDriver_4CCB2153(int port);
Unknown functions
SceCtrlForDriver_02081494: 0x02081494
SceCtrl
sceCtrlPeekBufferNegative
Version |
NID
|
1.69 |
0x104ED1A7
|
sceCtrlReadBufferNegative
Version |
NID
|
1.69 |
0x15F96FB0
|
sceCtrlSetButtonIntercept
Version |
NID
|
1.69 |
0x433D71F4
|
sceCtrlReadBufferPositive
Version |
NID
|
1.69 |
0x67E7AB83
|
sceCtrlGetButtonIntercept
Version |
NID
|
1.69 |
0x6FAFAD05
|
sceCtrlSetSamplingMode
Version |
NID
|
1.69 |
0xA497B150
|
sceCtrlPeekBufferPositiveExt
Version |
NID
|
1.69 |
0xA59454D3
|
sceCtrlPeekBufferPositive
Version |
NID
|
1.69 |
0xA9C3CED6
|
sceCtrlSetSamplingModeExt
Version |
NID
|
1.69 |
0xB1DC4378
|
sceCtrlGetSamplingModeExt
Version |
NID
|
1.69 |
0xBD27F830
|
sceCtrlClearRapidFire
Version |
NID
|
1.69 |
0xD8294C9C
|
sceCtrlReadBufferPositiveExt
Version |
NID
|
1.69 |
0xE2D99296
|
sceCtrlSetRapidFire
Version |
NID
|
1.69 |
0xE9CB69C8
|
sceCtrlGetSamplingMode
Version |
NID
|
1.69 |
0xEC752AAF
|