uOFW
Reverse engineered PSP kernel 6.60.
Data Structures | Typedefs | Enumerations | Functions
Controller Module

Data Structures

struct  SceCtrlData
struct  SceCtrlDataExt
struct  SceCtrlLatch
struct  SceCtrlInputDataTransferHandler

Typedefs

typedef void(* SceKernelButtonCallbackFunction )(u32 curButtons, u32 lastButtons, void *opt)

Enumerations

enum  SceCtrlPadButtons {
  SCE_CTRL_SELECT = 0x1, SCE_CTRL_START = 0x8, SCE_CTRL_UP = 0x10, SCE_CTRL_RIGHT = 0x20,
  SCE_CTRL_DOWN = 0x40, SCE_CTRL_LEFT = 0x80, SCE_CTRL_LTRIGGER = 0x100, SCE_CTRL_RTRIGGER = 0x200,
  SCE_CTRL_TRIANGLE = 0x1000, SCE_CTRL_CIRCLE = 0x2000, SCE_CTRL_CROSS = 0x4000, SCE_CTRL_SQUARE = 0x8000,
  SCE_CTRL_INTERCEPTED = 0x10000, SCE_CTRL_HOLD = 0x20000, SCE_CTRL_WLAN_UP = 0x40000, SCE_CTRL_REMOTE = 0x80000,
  SCE_CTRL_VOLUP = 0x100000, SCE_CTRL_VOLDOWN = 0x200000, SCE_CTRL_SCREEN = 0x400000, SCE_CTRL_NOTE = 0x800000,
  SCE_CTRL_DISC = 0x1000000, SCE_CTRL_MS = 0x2000000
}
enum  SceCtrlPadInputMode { SCE_CTRL_INPUT_DIGITAL_ONLY = 0, SCE_CTRL_INPUT_DIGITAL_ANALOG = 1 }
enum  SceCtrlPadPollMode { SCE_CTRL_POLL_INACTIVE = 0, SCE_CTRL_POLL_ACTIVE = 1 }
enum  SceCtrlExternalInputMode { SCE_CTRL_EXTERNAL_INPUT_PSP = 0, SCE_CTRL_EXTERNAL_INPUT_DUALSHOCK_3 = 1, SCE_CTRL_EXTERNAL_INPUT_UNKNOWN_2 = 2 }
enum  SceCtrlPadButtonMaskMode { SCE_CTRL_MASK_NO_MASK = 0, SCE_CTRL_MASK_IGNORE_BUTTONS = 1, SCE_CTRL_MASK_APPLY_BUTTONS = 2 }

Functions

s32 sceCtrlInit (void)
s32 sceCtrlEnd (void)
s32 sceCtrlSuspend (void)
s32 sceCtrlResume (void)
u32 sceCtrlSetPollingMode (u8 pollMode)
u32 sceCtrlGetSamplingMode (u8 *mode)
s32 sceCtrlSetSamplingMode (u8 mode)
u32 sceCtrlGetSamplingCycle (u32 *cycle)
s32 sceCtrlSetSamplingCycle (u32 cycle)
u32 sceCtrlGetIdleCancelKey (u32 *oneTimeResetButtons, u32 *allTimeResetButtons, u32 *oneTimeHoldResetButtons, u32 *allTimeHoldResetButtons)
u32 sceCtrlSetIdleCancelKey (u32 oneTimeResetButtons, u32 allTimeResetButtons, u32 oneTimeHoldResetButtons, u32 allTimeHoldResetButtons)
s32 sceCtrlGetIdleCancelThreshold (s32 *iUnHoldThreshold, s32 *iHoldThreshold)
s32 sceCtrlSetIdleCancelThreshold (s32 iUnHoldThreshold, s32 iHoldThreshold)
s16 sceCtrlGetSuspendingExtraSamples (void)
s32 sceCtrlSetSuspendingExtraSamples (s16 suspendSamples)
s32 sceCtrlExtendInternalCtrlBuffers (u8 inputMode, SceCtrlInputDataTransferHandler *transferHandler, void *inputSource)
s32 sceCtrlPeekLatch (SceCtrlLatch *latch)
s32 sceCtrlReadLatch (SceCtrlLatch *latch)
s32 sceCtrlPeekBufferPositive (SceCtrlData *data, u8 nBufs)
s32 sceCtrlPeekBufferNegative (SceCtrlData *data, u8 nBufs)
s32 sceCtrlReadBufferPositive (SceCtrlData *data, u8 nBufs)
s32 sceCtrlReadBufferNegative (SceCtrlData *data, u8 nBufs)
s32 sceCtrlPeekBufferPositiveExtra (u32 inputMode, SceCtrlDataExt *data, u8 nBufs)
s32 sceCtrlPeekBufferNegativeExtra (u32 inputMode, SceCtrlDataExt *data, u8 nBufs)
s32 sceCtrlReadBufferPositiveExtra (u32 inputMode, SceCtrlDataExt *data, u8 nBufs)
s32 sceCtrlReadBufferNegativeExtra (u32 inputMode, SceCtrlDataExt *data, u8 nBufs)
s32 sceCtrlClearRapidFire (u8 slot)
s32 sceCtrlSetRapidFire (u8 slot, u32 uiMask, u32 uiTrigger, u32 uiTarget, u8 uiDelay, u8 uiMake, u8 uiBreak)
s32 sceCtrlSetAnalogEmulation (u8 slot, u8 aX, u8 aY, u32 uiMake)
s32 sceCtrlSetButtonEmulation (u8 slot, u32 userButtons, u32 kernelButtons, u32 uiMake)
u32 sceCtrlGetButtonIntercept (u32 buttons)
u32 sceCtrlSetButtonIntercept (u32 buttons, u32 buttonMaskMode)
s32 sceCtrlSetSpecialButtonCallback (u32 slot, u32 buttonMask, SceKernelButtonCallbackFunction callback, void *opt)
u32 sceCtrl_driver_6C86AF22 (s32 arg1)
u32 sceCtrl_driver_5886194C (s8 arg1)
u32 sceCtrlUpdateCableTypeReq (void)

Detailed Description

Copyright (C) 2011 - 2015 The uOFW team See the file COPYING for copying permission. Controller (joystick) management.


Typedef Documentation

typedef void(* SceKernelButtonCallbackFunction)(u32 curButtons, u32 lastButtons, void *opt)

The callback function used by sceCtrlSetSpecialButtonCallback().


Enumeration Type Documentation

Enumeration for the digital controller buttons in positive logic.

Note:
SCE_CTRL_INTERCEPTED, SCE_CTRL_WLAN_UP, SCE_CTRL_REMOTE, SCE_CTRL_VOLUP, SCE_CTRL_VOLDOWN, SCE_CTRL_SCREEN, SCE_CTRL_NOTE, SCE_CTRL_DISC, SCE_CTRL_MS can only be read in kernel mode.
Enumerator:
SCE_CTRL_SELECT 

Select button.

SCE_CTRL_START 

Start button.

SCE_CTRL_UP 

Up D-Pad button.

SCE_CTRL_RIGHT 

Right D-Pad button.

SCE_CTRL_DOWN 

Down D-Pad button.

SCE_CTRL_LEFT 

Left D-Pad button.

SCE_CTRL_LTRIGGER 

Left trigger.

SCE_CTRL_RTRIGGER 

Right trigger.

SCE_CTRL_TRIANGLE 

Triangle button.

SCE_CTRL_CIRCLE 

Circle button.

SCE_CTRL_CROSS 

Cross button.

SCE_CTRL_SQUARE 

Square button.

SCE_CTRL_INTERCEPTED 

If this bit is set, then controller input is being intercepted by the system software or another application. For example, this is the case when the PSP's HOME menu is being shown.

SCE_CTRL_HOLD 

Hold button.

SCE_CTRL_WLAN_UP 

W-LAN switch up.

SCE_CTRL_REMOTE 

Remote hold position.

SCE_CTRL_VOLUP 

Volume up button.

SCE_CTRL_VOLDOWN 

Volume down button.

SCE_CTRL_SCREEN 

Screen button.

SCE_CTRL_NOTE 

Music Note button.

SCE_CTRL_DISC 

Disc present.

SCE_CTRL_MS 

Memory stick present.

Controller input modes.

Enumerator:
SCE_CTRL_INPUT_DIGITAL_ONLY 

Digital input only. No recognizing of analog input.

SCE_CTRL_INPUT_DIGITAL_ANALOG 

Recognizing of both digital and analog input.

Controller input poll modes.

Enumerator:
SCE_CTRL_POLL_INACTIVE 

No controller input is recognized.

SCE_CTRL_POLL_ACTIVE 

Controller input is recognized.

External input data sources.

Enumerator:
SCE_CTRL_EXTERNAL_INPUT_PSP 

No external input data.

SCE_CTRL_EXTERNAL_INPUT_DUALSHOCK_3 

Input data of the PS3's DUALSHOCKŪ3 controller is used.

SCE_CTRL_EXTERNAL_INPUT_UNKNOWN_2 

Unknown.

Button mask settings.

Enumerator:
SCE_CTRL_MASK_NO_MASK 

No mask for the specified buttons. Button input is normally recognized.

SCE_CTRL_MASK_IGNORE_BUTTONS 

The specified buttons are ignored, that means even if these buttons are pressed by the user they won't be shown as pressed internally. You can only block user buttons for applications running in User Mode.

SCE_CTRL_MASK_APPLY_BUTTONS 

The specified buttons show up as being pressed, even if the user does not press them. You can only turn ON user buttons for applications running in User Mode.


Function Documentation

s32 sceCtrlInit ( void  )

Initialize the controller device. Bind the controller driver to the controller device.

Returns:
0 on success.
s32 sceCtrlEnd ( void  )

Terminate the controller device. Unbind the controller driver from the controller device.

Returns:
0.
s32 sceCtrlSuspend ( void  )

Suspend the controller driver and put the controller device into a low-power state.

Returns:
0.
s32 sceCtrlResume ( void  )

Resume the controller driver after and bring the controller device back from a low-power state.

Returns:
0.
u32 sceCtrlSetPollingMode ( u8  pollMode)

Enable/disable controller device input.

Parameters:
pollModeOne of SceCtrlPadPollMode. If set to 0, no button/analog input is recognized. Set to 1 to enable button/analog input.
Returns:
0.
u32 sceCtrlGetSamplingMode ( u8 *  mode)

Get the current controller device input mode.

Parameters:
modeReceiving the current controller mode. One of SceCtrlPadInputMode.
Returns:
0.
s32 sceCtrlSetSamplingMode ( u8  mode)

Set the controller device input mode.

Parameters:
modeThe new controller input mode. One of SceCtrlPadInputMode.
Returns:
The previous input mode on success.
u32 sceCtrlGetSamplingCycle ( u32 *  cycle)

Get the current update interval of the internal controller data buffers.

Parameters:
cycleReceiving the current update interval (in microseconds).
Returns:
0.
s32 sceCtrlSetSamplingCycle ( u32  cycle)

Set the update frequency of the internal controller buffer. Default update interval is the VBlank interrupt (approximately 60 times per second).

Parameters:
cycleThe new interval between two samplings of controller attributes in microseconds. Setting to 0 enables the VBlank-Interrupt-Update process. If you want to set an own interval for updating the internal controller buffers, cycle has to in the range of 5555 - 20000 (the range from about 180 Hz to 50 Hz). This will disable the VBlank-Interrupt-Update process.
Returns:
The previous cycle on success.
u32 sceCtrlGetIdleCancelKey ( u32 *  oneTimeResetButtons,
u32 *  allTimeResetButtons,
u32 *  oneTimeHoldResetButtons,
u32 *  allTimeHoldResetButtons 
)

Obtain the different cancel-idle-timer buttons.

Parameters:
oneTimeResetButtonsPointer retrieving the buttons reseting the timer when being pressed a new time (not being pressed immediately before).
allTimeResetButtonsPointer retrieving the buttons reseting the timer when being pressed.
oneTimeHoldResetButtonsPointer retrieving the buttons reseting the timer when being pressed a new time (not being pressed immediately before). These buttons are checked for when HOLD mode is active.
allTimeHoldResetButtonsPointer retrieving the buttons reseting the timer when being pressed a new time. These buttons are checked for when HOLD mode is active.
Returns:
0 on success.
u32 sceCtrlSetIdleCancelKey ( u32  oneTimeResetButtons,
u32  allTimeResetButtons,
u32  oneTimeHoldResetButtons,
u32  allTimeHoldResetButtons 
)

Specify the buttons which, when being pressed, reset the idle timer. It is satisfying to press only one button of the specified buttons to reset it.

Parameters:
oneTimeResetButtonsThe buttons needed to be pressed to reset the timer. One or more of SceCtrlPadButtons. If you keep pressing these buttons after resetting the timer, they will not reset the timer anymore. You will have to release the buttons first, before they can reset it again. In case HOLD mode is active, pressing these buttons will not reset the timer.
allTimeResetButtonsThe buttons needed to be pressed to reset the timer. One or more of SceCtrlPadButtons. As long as you press one of these buttons, the timer is reset. In case HOLD mode is active, pressing these buttons will not reset the timer.
oneTimeHoldResetButtonsThe buttons needed to be pressed to reset the timer when HOLD mode is active. One or more of SceCtrlPadButtons. If you keep pressing these buttons after resetting the timer, they will not reset it anymore. You will have to release the buttons first, before they can reset the timer again.
allTimeHoldResetButtonsThe buttons needed to be pressed to reset the timer when HOLD mode is active. One or more of SceCtrlPadButtons. As long as you press one of these buttons, the timer is reset.
Returns:
0 on success.
Example:
 // Pressing the select will reset the idle timer. No other button will reset it.
 sceCtrlSetIdleCancelKey(0, SCE_CTRL_SELECT, 0, 0);
s32 sceCtrlGetIdleCancelThreshold ( s32 *  iUnHoldThreshold,
s32 *  iHoldThreshold 
)

Get the idle timer cancel threshold values for the analog stick.

Parameters:
iUnHoldThresholdMovement needed by the analog stick to reset the idle timer. Used when HOLD mode is inactive. -1 is obtained when the analog stick cannot cancel the idle timer, otherwise the movement needed by the analog stick (between 0 - 128) to cancel the idle timer.
iHoldThresholdMovement needed by the analog stick to reset the idle timer. Used when HOLD mode is active. -1 is obtained when the analog stick cannot cancel the idle timer, otherwise the movement needed by the analog stick (between 0 - 128) to cancel the idle timer.
Returns:
0 on success.
s32 sceCtrlSetIdleCancelThreshold ( s32  iUnHoldThreshold,
s32  iHoldThreshold 
)

Set analog stick threshold values for cancelling the idle timer. In case SCE_CTRL_INPUT_DIGITAL_ONLY is set as the input mode for the controller, analog stick movements will not result in cancelling the idle timer.

Parameters:
iUnHoldThresholdMovement needed by the analog stick to reset the idle timer. Used when HOLD mode is inactive. Set between 1 - 128 to specify the movement on either axis. Set to 0 for idle timer to be canceled even if the analog stick is not moved (that is, the idle timer itself stops running). Set to -1 for analog stick to not cancel the idle timer (although it is moved).
iHoldThresholdMovement needed by the analog stick to reset the idle timer. Used when HOLD mode is active. Set between 1 - 128 to specify the movement on either axis. Set to 0 for idle timer to be canceled even if the analog stick is not moved (that is, the idle timer itself stops running). Set to -1 for analog stick to not cancel the idle timer (although it is moved).
Returns:
0 on success.

Get the number of VBlanks which will be waited for when the PSP device is being suspended.

Returns:
The number of VBlanks to wait for.
s32 sceCtrlSetSuspendingExtraSamples ( s16  suspendSamples)

Set a number of VBlanks which will be waited for when the PSP device is being suspended.

Parameters:
suspendSamplesThe number of VBlanks. Between 0 - 300.
Returns:
0 on success.
s32 sceCtrlExtendInternalCtrlBuffers ( u8  inputMode,
SceCtrlInputDataTransferHandler transferHandler,
void *  inputSource 
)

Set up internal controller buffers to receive external input data. Each input mode has its own set of buffers. These buffers are of type SceCtrlDataExt. Note: This function has to be called initially in order to obtain external input data via the corresponding Peek/Read functions.

Parameters:
inputModePass a valid element of SceCtrlExternalInputMode (either 1 or 2).
transferHandlerPointer to a SceCtrlInputDataTransferHandler containing a function to copy the <inputSource> into the PSP's controller buffers.
inputSourcePointer to buffer containing the Controller input data to copy to the PSP's controller buffers. It is passed as the source argument to the given transfer function.
Returns:
0 on success.
s32 sceCtrlPeekLatch ( SceCtrlLatch latch)

Obtain button latch data stored in the internal latch controller buffers. The following button states can be obtained: Button is pressed, button is not pressed, button has been newly pressed and button has been newly released. Once a button has been, for example, pressed, its value is stored into the specific latch member (buttonMake in this case) until you manually reset the specific latch buffer field.

Parameters:
latchPointer to a SceCtrlLatch structure retrieving the current button latch data.
Returns:
The number of reads of the internal latch buffer, without being reset, on success.
Example:
 SceCtrlLatch latch;
 
 sceCtrlPeekLatch(&latch);
 while (1) {
        // Cross button pressed
        if (latch.buttonPress & SCE_CTRL_CROSS) {
            // do something
        }
 }
s32 sceCtrlReadLatch ( SceCtrlLatch latch)

Obtain button latch data stored in the internal latch controller buffers. The following button states can be obtained: Button is pressed, button is not pressed, button has been newly pressed and button has been newly released. After the internal latch data has been read, it will be reset to zero again.

Parameters:
latchPointer to a SceCtrlLatch structure retrieving the current button latch data.
Returns:
The number of reads of the internal latch buffer, without being reset, (typically 1) on success.
s32 sceCtrlPeekBufferPositive ( SceCtrlData data,
u8  nBufs 
)

Obtain button data stored in the internal controller buffers. Does not wait for the next update interval to be performed. The obtained data will be the latest transfered button data into the internal controller buffers.

Parameters:
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in positive logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
Example:
 SceCtrlData data;

 sceCtrlSetSamplingCycle(0);
 sceCtrlSetSamplingMode(SCE_CTRL_INPUT_DIGITAL_ANALOG);
 
 while (1) {
        sceCtrlPeekBufferPositive(&data, 1); 
        // Cross button pressed
        if (data.buttons & SCE_CTRL_CROSS) {
            // do something
        }
 }
s32 sceCtrlPeekBufferNegative ( SceCtrlData data,
u8  nBufs 
)

Obtain button data stored in the internal controller buffers. Does not wait for the next update interval to be performed. The obtained data will be the latest transfered button data into the internal controller buffers.

Parameters:
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in negative logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
Example:
 SceCtrlData data;

 sceCtrlSetSamplingCycle(0);
 sceCtrlSetSamplingMode(SCE_CTRL_INPUT_DIGITAL_ANALOG);
 
 while (1) {
        sceCtrlPeekBufferNegative(&data, 1); 
        // Cross button pressed
        if (data.buttons & ~SCE_CTRL_CROSS) {
            // do something
        }
 }
s32 sceCtrlReadBufferPositive ( SceCtrlData data,
u8  nBufs 
)

Obtain button data stored in the internal controller buffers. Waits for the next update interval before obtaining the data. The read data is the newest transfered data into the internal controller buffers.

Parameters:
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in positive logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlReadBufferNegative ( SceCtrlData data,
u8  nBufs 
)

Obtain button data stored in the internal controller buffers. Waits for the next update interval before obtaining the data. The read data is the newest transfered data into the internal controller buffers.

Parameters:
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in negative logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlPeekBufferPositiveExtra ( u32  inputMode,
SceCtrlDataExt data,
u8  nBufs 
)

Extended sceCtrlPeekBufferPositive(). See description for more info. You need to call ::SceCtrlExtendInternalCtrlBuffers() before use.

Parameters:
inputModePass a valid element of SceCtrlExternalInputMode (either 1 or 2).
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in positive logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlPeekBufferNegativeExtra ( u32  inputMode,
SceCtrlDataExt data,
u8  nBufs 
)

Extended sceCtrlPeekBufferNegative(). See description for more info. You need to call sceCtrlExtendInternalCtrlBuffers() before use.

Parameters:
inputModePass a valid element of SceCtrlExternalInputMode (either 1 or 2).
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in negative logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlReadBufferPositiveExtra ( u32  inputMode,
SceCtrlDataExt data,
u8  nBufs 
)

Extended sceCtrlReadBufferPositive(). See description for more info. You need to call sceCtrlExtendInternalCtrlBuffers() before use.

Parameters:
inputModePass a valid element of SceCtrlExternalInputMode (either 1 or 2).
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in positive logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlReadBufferNegativeExtra ( u32  inputMode,
SceCtrlDataExt data,
u8  nBufs 
)

Extended sceCtrlReadBufferNegative(). See description for more info. You need to call sceCtrlExtendInternalCtrlBuffers() before use.

Parameters:
inputModePass a valid element of SceCtrlExternalInputMode (either 1 or 2).
dataPointer to controller data structure in which button information is stored. The obtained button data is represented in negative logic.
nBufsThe number of internal controller buffers to read. There are 64 internal controller buffers which can be read. Has to be set to a value in the range of 1 - 64.
Returns:
The number of read internal controller buffers on success.
s32 sceCtrlClearRapidFire ( u8  slot)

Disable a rapid-fire button event.

Parameters:
slotThe slot of the event to clear. Between 0 - 15.
Returns:
0 on success.
s32 sceCtrlSetRapidFire ( u8  slot,
u32  uiMask,
u32  uiTrigger,
u32  uiTarget,
u8  uiDelay,
u8  uiMake,
u8  uiBreak 
)

Specify a rapid-fire event for one or more buttons.

Parameters:
slotThe slot used to set the custom values. Between 0 - 15. Up to 16 slots can be used.
uiMaskComparison mask of the button operation for rapid-fire trigger. In order for the <uiTrigger> buttons to trigger the event, they need to be included in these buttons. One or more buttons of SceCtrlPadButtons.
uiTriggerThe buttons which will start the rapid fire event for the specified <uiTarget> buttons when being pressed.
uiTargetThe buttons for which the rapid-fire event will be applied to. User mode buttons only. <uiMake> and <uiBreak> define the rapid-fire cycle.
uiDelayDead time of rapid-fire trigger (sampling count). Specifies the rapid-fire start timing. It will only be applied for the first ON period of a (not cancelled) rapid-fire event. Set to 0 - 63.
uiMakeThe press time for the <uiTarget> buttons. This "ON-time" is set after <uiDelay> was applied and the <uiTrigger> buttons were turned OFF. It will be applied for as long as the same rapid fire event is called without a break (i.e. pressing of a different PSP button). Set to 0 - 63. If set to 0, the <uiTarget> button(s) will be turned ON for one sampling count.
uiBreakThe release time for <uiTarget> buttons. This "OFF-time" is set after <uiDelay> was applied. It will be applied as long as the same rapid fire event is called without a break (i.e. the pressing of a different PSP button). Set to 0 - 63. If set to 0, the <uiTarget> button will be turned OFF for 64 consecutive sampling counts.
Returns:
0 on success.
Example:
 // A rapid fire event for the R-button while the D-Pad-Up button is being pressed.
 // R-button will be turned ON and OFF for 64 internal controller buffer updates in both cases 
 // (as long as D-Pad-Up is pressed).
 sceCtrlSetRapidFire(0, SCE_CTRL_UP, SCE_CTRL_UP, SCE_CTRL_RTRIGGER, 63, 63, 63);
 
 // A rapid fire event for the R-button while the D-Pad-Up button is being pressed.
 // R-button will be turned OFF and ON for 40 internal controller buffer updates in both cases 
 // (as long as D-Pad-Up is pressed).
 sceCtrlSetRapidFire(0, SCE_CTRL_UP, SCE_CTRL_UP, SCE_CTRL_RTRIGGER, 0, 40, 40);
s32 sceCtrlSetAnalogEmulation ( u8  slot,
u8  aX,
u8  aY,
u32  uiMake 
)

Emulate values for the analog pad's X- and Y-axis.

Parameters:
slotThe slot used to set the custom values. Between 0 - 3. If multiple slots are used, their settings are combined.
aXNew emulated value for the X-axis. Between 0 - 0xFF.
aYNew emulate value for the Y-axis. Between 0 - 0xFF.
uiMakeSpecifies the duration of the emulation. Meassured in sampling counts.
Returns:
0 on success.
s32 sceCtrlSetButtonEmulation ( u8  slot,
u32  userButtons,
u32  kernelButtons,
u32  uiMake 
)

Emulate buttons for the digital pad.

Parameters:
slotThe slot used to set the custom values. Between 0 - 3. If multiple slots are used, their settings are combined.
userButtonsEmulated user buttons of SceCtrlPadButtons. You cannot emulate kernel buttons and the emulated buttons will only be applied for applications running in user mode.
kernelButtonsEmulated buttons of SceCtrlPadButtons (you can emulate both user and kernel buttons). The emulated buttons will only be applied for applications running in kernel mode.
uiMakeSpecifies the duration of the emulation. Meassured in sampling counts.
Returns:
0 on success.
u32 sceCtrlGetButtonIntercept ( u32  buttons)

Get the button mask settings applied to PSP buttons.

Parameters:
buttonsThe buttons to check for. One or more buttons of SceCtrlPadButtons.
Returns:
The button mask mode for the given buttons. One of SceCtrlPadButtonMaskMode.
u32 sceCtrlSetButtonIntercept ( u32  buttons,
u32  buttonMaskMode 
)

Set a button mask mode for one or more buttons. You can only mask user mode buttons in user applications. Masking of kernel mode buttons is ignored as well as buttons used in kernel mode applications.

Parameters:
buttonsThe button value for which the button mask mode will be applied for. One or more buttons of SceCtrlPadButtons.
buttonMaskModeSpecifies the type of the button mask. One of SceCtrlPadButtonMaskMode.
Returns:
The previous button mask type for the given buttons. One of SceCtrlPadButtonMaskMode.
Example:
 // Block user mode buttons for User mode applications
 sceCtrlSetButtonIntercept(0xFFFF, SCE_CTRL_MASK_IGNORE_BUTTONS);
 // Do something
 
 // Remove block from user mode buttons for User mode applications
 sceCtrlSetButtonIntercept(0xFFFF, SCE_CTRL_MASK_NO_MASK);
s32 sceCtrlSetSpecialButtonCallback ( u32  slot,
u32  buttonMask,
SceKernelButtonCallbackFunction  callback,
void *  opt 
)

Register a button callback.

Parameters:
slotThe slot used to register the callback. Between 0 - 3.
buttonMaskBitwise OR'ed button values which will be checked for being pressed. One or more buttons of SceCtrlPadButtons.
callbackPointer to the callback function handling the button callbacks.
optOptional user argument. Passed to the callback function as its third argument.
Returns:
0 on success.
u32 sceCtrl_driver_6C86AF22 ( s32  arg1)

Unknown purpose.

Parameters:
arg1Unknown argument.
Returns:
0.
u32 sceCtrl_driver_5886194C ( s8  arg1)

Unknown purpose.

Parameters:
arg1Unknown argument.
Returns:
0.
u32 sceCtrlUpdateCableTypeReq ( void  )

Unknown purpose.

Returns:
0.
 All Data Structures Files Variables