ScePower: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
 
(83 intermediate revisions by 2 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 || ScePower || Non-secure || Kernel || 0xF0ADE873
|-
|-
| 3.60 || ScePower || Non-secure || Kernel || 0x5EAE6AEC
| 1.69-3.60 || Non-secure || Kernel
|}
|}


Line 19: Line 16:
! Version !! Name !! World !! Visibility !! NID
! Version !! Name !! World !! Visibility !! NID
|-
|-
| 1.69-3.60 || [[ScePower#ScePower|ScePower]] || Non-secure || User || 0x1082DA7F
| 1.000.071-3.740.011 || [[ScePower#ScePower|ScePower]] || Non-secure || User || 0x1082DA7F
|-
| 0.990.000-3.740.011 || [[ScePower#ScePowerForDriver|ScePowerForDriver]] || Non-secure || Kernel || 0x1590166F
|-
|-
| 1.69-3.60 || [[ScePower#ScePowerForDriver|ScePowerForDriver]] || Non-secure || Kernel || 0x1590166F
| 0.990.000-0.996.090 || [[ScePower#SceLedForDriver|SceLedForDriver]] || Non-secure || Kernel || not present. Present in [[SceLed]].
|-
|-
| 1.69-3.60 || [[ScePower#SceLedForDriver|SceLedForDriver]] || Non-secure || Kernel || 0x282C1323
| 1.000.071-3.740.011 || [[ScePower#SceLedForDriver|SceLedForDriver]] || Non-secure || Kernel || 0x282C1323
|}
|}


== ScePower ==
== Clocks ==
 
=== Default (in Shell) ===
 
<source lang="C">
Arm          : 333
Gpu(Proc)    : 41
GpuXbar      : 111
Bus          : 222
Compat        : 0
Venezia      : 166
Dmac5        : 166
Vip          : 0
Sys          : 190
CameraBus    : 0
Gpu(Internal) : 41, 41
</source>
 
== Power callbacks ==
 
See also [[SceSyscon#Callbacks]].
 
Power callback notifyArg allowed mask are listed in the table below.


=== scePowerGetBatteryCycleCount ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Process !! Mask
|-
| Kernel || 0xFCF71F80
|-
|-
| 1.69 || 0x008A54B9
| System || 0xFCF71F80
|-
|-
| 3.60 || 0x008A54B9
| Non-System || 0x361180
|}
|}


=== scePowerRequestColdReset ===
== ScePowerMain event flag ==
 
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Value !! Function
|-
| 1 || SceCtrl callback subroutines
|-
| 4 || scePowerRequestDisplayOn
|-
| 8 || scePowerRequestDisplayOff
|-
| 0x10 || scePowerRequestSuspend, scePowerRequestStandby
|-
| 0x20 || scePowerRequestSuspend
|-
| 0x40 || scePowerRequestSoftReset
|-
| 0x80 || scePowerRequestColdReset
|-
| 0x200 || ScePowerAlarm0 subroutines
|-
|-
| 1.69 || 0x0442D852
| 0x400 || scePowerRequestHibernate
|-
|-
| 3.60 || 0x0442D852
| 0x800 || HDMI callback subroutines
|}
|}


=== scePowerRegisterCallback ===
== Types ==
 
<source lang="C">
typedef enum ScePowerCallbackType {
SCE_POWER_CB_AFTER_SYSTEM_RESUME  = 0x00000080, /* TODO: confirm */
SCE_POWER_CB_BATTERY_ONLINE        = 0x00000100,
SCE_POWER_CB_THERMAL_SUSPEND      = 0x00000200, /* TODO: confirm */
SCE_POWER_CB_LOW_BATTERY_SUSPEND  = 0x00000400, /* TODO: confirm */
SCE_POWER_CB_LOW_BATTERY          = 0x00000800,
SCE_POWER_CB_POWER_ONLINE          = 0x00001000,
SCE_POWER_CB_SYSTEM_SUSPEND        = 0x00010000,
SCE_POWER_CB_SYSTEM_RESUMING      = 0x00020000,
SCE_POWER_CB_SYSTEM_RESUME        = 0x00040000,
SCE_POWER_CB_UNK_0x100000          = 0x00100000, /* Related to proc_event::display_switch */
SCE_POWER_CB_APP_RESUME            = 0x00200000,
SCE_POWER_CB_APP_SUSPEND          = 0x00400000,
SCE_POWER_CB_APP_RESUMING          = 0x00800000, /* TODO: confirm */
SCE_POWER_CB_SCREENSHOT_TRIGGER    = 0x04000000,
SCE_POWER_CB_UNK_0x8000000        = 0x08000000, /* Triggered by a special button combo (PS + Power) on the event of ScePowerMain */
SCE_POWER_CB_PS_BUTTON_HOLD        = 0x10000000,
SCE_POWER_CB_PS_BUTTON_PRESS      = 0x20000000,
SCE_POWER_CB_POWER_BUTTON_HOLD    = 0x40000000,
SCE_POWER_CB_POWER_BUTTON_PRESS    = 0x80000000,
SCE_POWER_CB_VALID_MASK_KERNEL    = 0xFCF71F80,
SCE_POWER_CB_VALID_MASK_SYSTEM    = 0xFCF71F80,
SCE_POWER_CB_VALID_MASK_NON_SYSTEM = 0x00361180
} ScePowerCallbackType;
 
#define SCE_CLOCK_FREQ_GPU_41MHZ  (41)
#define SCE_CLOCK_FREQ_GPU_55MHZ  (55)
#define SCE_CLOCK_FREQ_GPU_83MHZ  (83)
#define SCE_CLOCK_FREQ_GPU_111MHZ (111)
#define SCE_CLOCK_FREQ_GPU_166MHZ (166)
#define SCE_CLOCK_FREQ_GPU_222MHZ (222)
 
#define SCE_CLOCK_FREQ_GPU_XBAR_111MHZ (111)
#define SCE_CLOCK_FREQ_GPU_XBAR_166MHZ (166)
 
#define SCE_CLOCK_FREQ_DMAC5_41MHZ  (41)
#define SCE_CLOCK_FREQ_DMAC5_83MHZ  (83)
#define SCE_CLOCK_FREQ_DMAC5_133MHZ (133)
#define SCE_CLOCK_FREQ_DMAC5_166MHZ (166)
 
#define SCE_CLOCK_FREQ_BUS_55MHZ  (55)
#define SCE_CLOCK_FREQ_BUS_83MHZ  (83)
#define SCE_CLOCK_FREQ_BUS_111MHZ (111)
#define SCE_CLOCK_FREQ_BUS_166MHZ (166)
#define SCE_CLOCK_FREQ_BUS_222MHZ (222)
 
#define SCE_CLOCK_FREQ_COMPAT_0MHZ  (0)
#define SCE_CLOCK_FREQ_COMPAT_222MHZ (222)
#define SCE_CLOCK_FREQ_COMPAT_333MHZ (333)
 
#define SCE_CLOCK_FREQ_VENEZIA_41MHZ  (41)
#define SCE_CLOCK_FREQ_VENEZIA_55MHZ  (55)
#define SCE_CLOCK_FREQ_VENEZIA_83MHZ  (83)
#define SCE_CLOCK_FREQ_VENEZIA_111MHZ (111)
#define SCE_CLOCK_FREQ_VENEZIA_166MHZ (166)
#define SCE_CLOCK_FREQ_VENEZIA_222MHZ (222)
#define SCE_CLOCK_FREQ_VENEZIA_333MHZ (333)
 
#define SCE_CLOCK_FREQ_VIP_0MHZ  (0)
#define SCE_CLOCK_FREQ_VIP_41MHZ  (41)
#define SCE_CLOCK_FREQ_VIP_55MHZ  (55)
#define SCE_CLOCK_FREQ_VIP_83MHZ  (83)
#define SCE_CLOCK_FREQ_VIP_111MHZ (111)
#define SCE_CLOCK_FREQ_VIP_166MHZ (166)
#define SCE_CLOCK_FREQ_VIP_222MHZ (222)
 
#define SCE_CLOCK_FREQ_SYS_190MHZ (190)
#define SCE_CLOCK_FREQ_SYS_222MHZ (222)
 
#define SCE_CLOCK_FREQ_CAMERA_BUS_0MHZ  (0)
#define SCE_CLOCK_FREQ_CAMERA_BUS_41MHZ  (41)
#define SCE_CLOCK_FREQ_CAMERA_BUS_67MHZ  (67)
#define SCE_CLOCK_FREQ_CAMERA_BUS_83MHZ  (83)
#define SCE_CLOCK_FREQ_CAMERA_BUS_131MHZ (131)
#define SCE_CLOCK_FREQ_CAMERA_BUS_166MHZ (166)
</source>
 
== ScePower ==
 
=== scePowerGetBatteryCycleCount ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x04B7766E
| 0.931.010-1.06 || not present
|-
|-
| 3.60 || 0x04B7766E
| 1.500.151-3.740.011 || 0x008A54B9
|}
|}


=== scePowerGetGpuXbarClockFrequency ===
=== scePowerRequestColdReset ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x0A750DEE
| 1.000.071-3.740.011 || 0x0442D852
|-
| 3.60 || 0x0A750DEE
|}
|}


=== scePowerIsBatteryExist ===
=== scePowerRegisterCallback ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x0AFD0D8B
| 1.000.071-3.740.011 || 0x04B7766E
|-
| 3.60 || 0x0AFD0D8B
|}
|}


=== scePowerRequestDisplayOff ===
=== scePowerGetGpuXbarClockFrequency ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x160EB506
| 1.000.071-3.740.011 || 0x0A750DEE
|}
|}


=== scePowerGetGpuClockFrequency ===
=== scePowerIsBatteryExist ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x1B04A1D6
| 1.000.071-3.740.011 || 0x0AFD0D8B
|-
| 3.60 || 0x1B04A1D6
|}
|}


=== scePowerGetBatteryRemainMaxLevel ===
=== scePowerGetGpuClockFrequency ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x1DB00F10
| 0.931.010-3.740.011 || 0x1B04A1D6
|}
|}


Line 109: Line 224:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x1E490401
| 1.000.071-3.740.011 || 0x1E490401
|-
| 3.60 || 0x1E490401
|}
|}


Line 119: Line 232:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x2085D15D
| 1.000.071-3.740.011 || 0x2085D15D
|-
| 3.60 || 0x2085D15D
|}
|}


Line 129: Line 240:
! Version !! NID
! Version !! NID
|-
|-
| 0.990-3.60 || 0x27F3292C
| 0.990.030-3.740.011 || 0x27F3292C
|}
|}


Line 137: Line 248:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x28E12023
| 1.000.071-3.740.011 || 0x28E12023
|-
| 3.60 || 0x28E12023
|}
|}


Line 147: Line 256:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x2B7C7CF4
| 1.000.071-3.740.011 || 0x2B7C7CF4
|-
| 3.60 || 0x2B7C7CF4
|}
|}


Line 157: Line 264:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x3CE187B6
| 1.000.071-3.740.011 || 0x3CE187B6
|-
| 3.60 || 0x3CE187B6
|}
 
=== scePowerRequestDisplayOn ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x3EA75C88
|}
 
=== scePowerGetBusClockFrequency ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x478FE6F5
|}
|}


Line 183: Line 272:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x483CE86B
| 1.000.071-3.740.011 || 0x483CE86B
|-
| 3.60 || 0x483CE86B
|}
|}


Line 193: Line 280:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x4D695C1F
| 1.000.071-3.740.011 || 0x4D695C1F
|-
| 3.60 || 0x4D695C1F
|}
|}


Line 203: Line 288:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x525592E4
| 1.000.071-3.740.011 || 0x525592E4
|-
| 3.60 || 0x525592E4
|}
|}


Line 213: Line 296:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x717DB06C
| 1.000.071-3.740.011 || 0x717DB06C
|-
| 3.60 || 0x717DB06C
|}
|}


Line 223: Line 304:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x74DB5AE5
| 1.000.071-3.740.011 || 0x74DB5AE5
|-
| 3.60 || 0x74DB5AE5
|}
|}


Line 233: Line 312:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x78A1A796
| 1.000.071-3.740.011 || 0x78A1A796
|-
| 3.60 || 0x78A1A796
|}
|}


Line 243: Line 320:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x7FA406DD
| 1.000.071-3.740.011 || 0x7FA406DD
|-
| 3.60 || 0x7FA406DD
|}
|}


Line 253: Line 328:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x862AE1A6
| 1.000.071-3.740.011 || 0x862AE1A6
|-
| 3.60 || 0x862AE1A6
|}
|}


Line 263: Line 336:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x87440F5E
| 1.000.071-3.740.011 || 0x87440F5E
|-
| 3.60 || 0x87440F5E
|}
|}


Line 273: Line 344:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x8EFB3FA2
| 1.000.071-3.740.011 || 0x8EFB3FA2
|-
| 3.60 || 0x8EFB3FA2
|}
|}


Line 283: Line 352:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x94F5A53F
| 1.000.071-3.740.011 || 0x94F5A53F
|}
 
=== scePowerSetGpuXbarClockFrequency ===
{| class="wikitable"
|-
! Version !! NID
|-
|-
| 3.60 || 0x94F5A53F
| 1.000.071-3.740.011 || 0xA7739DBE
|}
|}


=== scePowerIsLowBatteryInhibitUpdateReboot ===
=== scePowerGetBatterySOH ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9AA05A48
| 1.000.071-3.740.011 || 0xA88A2B65
|}
|}


=== scePowerSetGpuXbarClockFrequency ===
=== scePowerGetArmClockFrequency ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xA7739DBE
| 1.000.071-3.740.011 || 0xABC6F88F
|}
 
=== scePowerRequestSuspend ===
{| class="wikitable"
|-
! Version !! NID
|-
|-
| 3.60 || 0xA7739DBE
| 1.000.071-3.740.011 || 0xAC32C9CC
|}
|}


=== scePowerGetBatterySOH ===
=== scePowerSetIdleTimerCount ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xA88A2B65
| 1.000.071-3.740.011 || 0xB11EF149
|}
 
=== scePowerGetBatteryChargingStatus ===
{| class="wikitable"
|-
! Version !! NID
|-
|-
| 3.60 || 0xA88A2B65
| 1.000.071-3.740.011 || 0xB4432BC8
|}
|}


=== scePowerGetArmClockFrequency ===
=== scePowerIsLowBattery ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xABC6F88F
| 1.000.071-3.740.011 || 0xD3075926
|}
 
=== scePowerGetUsingWireless ===
{| class="wikitable"
|-
! Version !! NID
|-
|-
| 3.60 || 0xABC6F88F
| 1.000.071-3.740.011 || 0xD541FF03
|}
|}


=== scePowerRequestSuspend ===
=== scePowerCancelRequest ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xAC32C9CC
| 1.000.071-3.740.011 || 0xDB62C9CF
|-
| 3.60 || 0xAC32C9CC
|}
|}


=== scePowerSetIdleTimerCount ===
=== scePowerUnregisterCallback ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xB11EF149
| 1.000.071-3.740.011 || 0xDFA8BAF8
|-
| 3.60 || 0xB11EF149
|}
|}


=== scePowerGetBatteryChargingStatus ===
=== scePowerGetBatteryFullCapacity ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xB4432BC8
| 1.000.071-3.740.011 || 0xFD18A0FF
|-
| 3.60 || 0xB4432BC8
|}
|}


=== scePowerSetBusClockFrequency ===
=== scePowerGetBusClockFrequency ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xB8D7B3FB
| 0.931.010-1.692.000 || not present
|-
| 1.800.071-3.740.011 || 0x478FE6F5
|}
|}


=== scePowerIsLowBattery ===
=== scePowerSetBusClockFrequency ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xD3075926
| 0.931.010-1.692.000 || not present
|-
|-
| 3.60 || 0xD3075926
| 1.800.071-3.740.011 || 0xB8D7B3FB
|}
|}


=== scePowerGetUsingWireless ===
=== scePowerRequestDisplayOff ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xD541FF03
| 0.931.010-2.12 || not present
|-
|-
| 3.60 || 0xD541FF03
| 2.500.071-3.740.011 || 0x160EB506
|}
|}


=== scePowerCancelRequest ===
This function was probably added for PS TV support. Indeed, the screen of a PS TV is a HDMI device not an embedded screen like on PS Vita handled consoles.
 
=== scePowerRequestDisplayOn ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xDB62C9CF
| 0.931.010-2.12 || not present
|-
|-
| 3.60|| 0xDB62C9CF
| 2.500.071-3.740.011 || 0x3EA75C88
|}
|}


=== scePowerUnregisterCallback ===
This function was probably added for PS TV support. Indeed, the screen of a PS TV is a HDMI device not an embedded screen like on PS Vita handled consoles.
 
=== scePowerIsLowBatteryInhibitUpdateDownload ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xDFA8BAF8
| 0.931.010-3.18 || not present
|-
|-
| 3.60 || 0xDFA8BAF8
| 3.300.041-3.740.011 || 0xE3E45636
|}
|}


=== scePowerIsLowBatteryInhibitUpdateDownload ===
This function was added along with [[SceSyscon#sceSysconIsLowBatteryInhibitUpdateDownloadForDriver]].
 
=== scePowerIsLowBatteryInhibitUpdateReboot ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xE3E45636
| 0.931.010-3.18 || not present
|-
| 3.300.041-3.740.011 || 0x9AA05A48
|}
|}
This function was added along with [[SceSyscon#sceSysconIsLowBatteryInhibitUpdateRebootForDriver]].


=== scePowerGetBatteryRemainLevel ===
=== scePowerGetBatteryRemainLevel ===
Line 417: Line 516:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xEA3E3715
| 0.931.010-3.18 || not present
|-
| 3.300.041-3.740.011 || 0xEA3E3715
|}
|}


=== scePowerGetBatteryFullCapacity ===
This function was added along with [[SceSyscon#sceSysconGetBatteryRemainLevelForDriver]].
 
=== scePowerGetBatteryRemainMaxLevel ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xFD18A0FF
| 0.931.010-3.18 || not present
|-
|-
| 3.60 || 0xFD18A0FF
| 3.300.041-3.740.011 || 0x1DB00F10
|}
|}


Line 451: Line 554:
<source lang="C">int scePowerSetArmClockFrequencyForDriver(int clock);</source>
<source lang="C">int scePowerSetArmClockFrequencyForDriver(int clock);</source>


=== scePowerGetProcArmClockFrequencyForDriver ===
=== scePowerGetArmClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 458: Line 561:
|}
|}


this function is temp name
<source lang="C">int scePowerGetArmClockFrequencyProcForDriver(SceUID pid);</source>
 
<source lang="C">int scePowerGetProcArmClockFrequencyForDriver(SceUID pid);</source>


=== scePowerSetProcArmClockFrequencyForDriver ===
=== scePowerSetArmClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 469: Line 570:
|}
|}


this function is temp name
<source lang="C">int scePowerSetArmClockFrequencyProcForDriver(SceUID pid, int clock);</source>
 
<source lang="C">int scePowerSetProcArmClockFrequencyForDriver(SceUID pid, int clock);</source>


=== scePowerGetGpuClockFrequencyForDriver ===
=== scePowerGetGpuClockFrequencyForDriver ===
Line 478: Line 577:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x1B04A1D6
| 0.931.010-1.692.000 || 0x1B04A1D6
|-
|-
| 3.60 || not present
| 1.800.071-3.740.011 || not present
|}
|}


<source lang="C">int scePowerGetGpuClockFrequencyForDriver(void)</source>
<source lang="C">int scePowerGetGpuClockFrequencyForDriver(void);</source>


=== scePowerSetGpuClockFrequencyForDriver ===
=== scePowerSetGpuClockFrequencyForDriver ===
Line 490: Line 589:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 - 3.60 || 0x717DB06C
| 0.931.010-1.692.000 || 0x717DB06C
|-
| 1.800.071-3.740.011 || not present
|}
|}


<source lang="C">int scePowerSetGpuClockFrequencyForDriver(int clock)</source>
<source lang="C">int scePowerSetGpuClockFrequencyForDriver(int clock);</source>


=== scePowerGetProcGpuClockFrequencyForDriver ===
=== scePowerGetGpuClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x642E0AF2
| 0.931.010-0.990.000 || not present
|-
| 0.996.090-3.740.011 || 0x642E0AF2
|}
|}


this function is temp name
<source lang="C">int scePowerGetGpuClockFrequencyProcForDriver(SceUID pid);</source>


<source lang="C">int scePowerGetProcGpuClockFrequencyForDriver(SceUID pid);</source>
=== scePowerSetGpuClockFrequencyProcForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-0.990.000 || not present
|-
| 0.996.090-3.740.011 || 0xB104EFE2
|}
 
<source lang="C">int scePowerSetGpuClockFrequencyProcForDriver(SceUID pid, int clock);</source>
 
=== scePowerGetGpuClockFrequencyInternalForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 3.60 || 0x475BCC82
|}
 
Temp name was scePowerGetGpuEs4ClockFrequencyForDriver, scePowerGetDeviceCountForDriver.
 
<source lang="C">int scePowerGetGpuClockFrequencyInternalForDriver(SceInt32 *corefreq, SceInt32 *mpfreq);</source>
 
=== scePowerSetGpuClockFrequencyInternalForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x264C24FC
|}
 
Temp name was scePowerSetGpuEs4ClockFrequencyForDriver
 
<source lang="C">int scePowerSetGpuClockFrequencyInternalForDriver(SceInt32 corefreq, SceInt32 mpfreq);</source>


=== scePowerGetGpuXbarClockFrequencyForDriver ===
=== scePowerGetGpuXbarClockFrequencyForDriver ===
Line 511: Line 646:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 - 3.60 || 0x0A750DEE
| 1.69-3.60 || 0x0A750DEE
|}
|}


Line 520: Line 655:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 - 3.60 || 0xA7739DBE
| 1.69-3.60 || 0xA7739DBE
|}
|}


<source lang="C">int scePowerSetGpuXbarClockFrequencyForDriver(int clock);</source>
<source lang="C">int scePowerSetGpuXbarClockFrequencyForDriver(int clock);</source>


=== scePowerGetProcGpuXbarClockFrequencyForDriver ===
=== scePowerGetGpuXbarClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 532: Line 667:
|}
|}


this function is temp name
<source lang="C">int scePowerGetGpuXbarClockFrequencyProcForDriver(SceUID pid);</source>


<source lang="C">int scePowerGetProcGpuXbarClockFrequencyForDriver(SceUID pid);</source>
=== scePowerSetGpuXbarClockFrequencyProcForDriver ===
 
=== scePowerSetProcGpuXbarClockFrequencyForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 543: Line 676:
|}
|}


this function is temp name
<source lang="C">int scePowerSetGpuXbarClockFrequencyProcForDriver(SceUID pid, int clock);</source>
 
<source lang="C">int scePowerSetProcGpuXbarClockFrequencyForDriver(SceUID pid, int clock);</source>


=== scePowerGetBusClockFrequencyForDriver ===
=== scePowerGetBusClockFrequencyForDriver ===
Line 567: Line 698:
<source lang="C">int scePowerSetBusClockFrequencyForDriver(int clock);</source>
<source lang="C">int scePowerSetBusClockFrequencyForDriver(int clock);</source>


=== scePowerGetProcBusClockFrequencyForDriver ===
=== scePowerGetBusClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 574: Line 705:
|}
|}


this function is temp name
<source lang="C">int scePowerGetBusClockFrequencyProcForDriver(SceUID pid);</source>
 
<source lang="C">int scePowerGetProcBusClockFrequencyForDriver(SceUID pid);</source>


=== scePowerSetProcBusClockFrequencyForDriver ===
=== scePowerSetBusClockFrequencyProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 585: Line 714:
|}
|}


this function is temp name
<source lang="C">int scePowerSetBusClockFrequencyProcForDriver(SceUID pid, int clock);</source>
 
<source lang="C">int scePowerSetProcBusClockFrequencyForDriver(SceUID pid, int clock);</source>


=== scePowerGetCompatClockFrequencyForDriver ===
=== scePowerGetCompatClockFrequencyForDriver ===
Line 622: Line 749:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x621BD8FD
| 0.990.000-3.740.011 || 0x621BD8FD
|}
|}


Line 633: Line 760:
| 3.60 || 0xF1E14EA9
| 3.60 || 0xF1E14EA9
|}
|}
this function is temp name


<source lang="C">int scePowerGetDmac5ClockFrequencyForDriver(void);</source>
<source lang="C">int scePowerGetDmac5ClockFrequencyForDriver(void);</source>
Line 653: Line 778:
| 3.60 || 0x0E58FCDF
| 3.60 || 0x0E58FCDF
|}
|}
Temp name was scePowerGetVeneziaForDriver.


<source lang="C">int scePowerGetVipClockFrequencyForDriver(void);</source>
<source lang="C">int scePowerGetVipClockFrequencyForDriver(void);</source>
Line 662: Line 789:
| 3.60 || 0xE5573571
| 3.60 || 0xE5573571
|}
|}
Temp name was scePowerSetVeneziaForDriver.
VIP is set to ?222MHz? by system when video is played back, even in PspEmu. ?The two clocks it sets are 55MHz and 83MHz.?
Related to [[Venezia]].


<source lang="C">int scePowerSetVipClockFrequencyForDriver(int clock);</source>
<source lang="C">int scePowerSetVipClockFrequencyForDriver(int clock);</source>
Line 678: Line 811:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0E333BEC
| 0.931 || not present
|-
| 0.990-3.60 || 0x0E333BEC
|}
|}
[[Hardware_Timers]] Clock.


<source lang="C">int scePowerSetSysClockFrequencyForDriver(int clock);</source>
<source lang="C">int scePowerSetSysClockFrequencyForDriver(int clock);</source>


=== ScePowerForDriver_668F01D4 ===
=== scePowerGetCameraBusClockFrequencyForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 690: Line 827:
|}
|}


<source lang="C">int ScePowerForDriver_668F01D4(void);</source>
<source lang="C">int scePowerGetCameraBusClockFrequencyForDriver(void);</source>


=== ScePowerForDriver_C743E392 ===
=== scePowerSetCameraBusClockFrequencyForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 699: Line 836:
|}
|}


<source lang="C">int ScePowerForDriver_C743E392(int clock);</source>
<source lang="C">int scePowerSetCameraBusClockFrequencyForDriver(int clock);</source>
 
=== scePowerGetGpuEs4ClockFrequencyForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 3.60 || 0x475BCC82
|}
 
this function is temp name
 
<source lang="C">int scePowerGetGpuEs4ClockFrequencyForDriver(int *clock1, int *a2);</source>
 
=== scePowerSetGpuEs4ClockFrequencyForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x264C24FC
|}
 
this function is temp name
 
<source lang="C">int scePowerSetGpuEs4ClockFrequencyForDriver(int clock1, int clock2);</source>


=== scePowerSetCallbackStateForDriver ===
=== scePowerSetCallbackStateForDriver ===
Line 729: Line 843:
|-
|-
| 3.60 || 0xA6FF5997
| 3.60 || 0xA6FF5997
|}
=== ScePowerForDriver_2B51FE2F ===
{| class="wikitable"
! Version !! NID
|-
| 1.69-3.60 || 0x2B51FE2F
|}
|}


Line 768: Line 875:
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
| 0.931-0.990 || not present
|-
|-
| 3.60 || 0x43D5CE1D
| 3.60 || 0x43D5CE1D
Line 775: Line 884:
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
| 0.931-0.990 || not present
|-
|-
| 3.60 || 0xEFD3C963
| 3.60 || 0xEFD3C963
|}
|}
Generate a power tick, preventing unit from powering off and turning off display.
<source lang="C">int scePowerTickForDriver(SceUInt32 type);</source>
=== ScePowerForDriver_394DE492 ===
{| class="wikitable"
! Version !! NID
|-
| 3.60 || 0x394DE492
|}
Returns a global boolean variable indicating if display brightness change is allowed.
<source lang="C">int ScePowerForDriver_394DE492(void);</source>


=== scePowerSetStandbyButtonPushTimeForDriver ===
=== scePowerSetStandbyButtonPushTimeForDriver ===
Line 819: Line 945:
|}
|}


<source lang="C">int scePowerGetPowerSwModeForDriver(void);</source>
Derived from PSP NID.
 
<source lang="C">
/**
* Unknow, get ??? something
*
* @returns On PSP, 0 or 1 or 2 or 3, default to 2, on PS Vita, 4 is a possible value
*/
int scePowerGetPowerSwModeForDriver(void);</source>


=== scePowerSetPowerSwModeForDriver ===
=== scePowerSetPowerSwModeForDriver ===
Line 825: Line 959:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xC1853BA7
| 3.60 || 0x0CD21B1F
|}
|}


derived from [[SceVshBridge#vshPowerSetPowerSwMode|vshPowerSetPowerSwMode]]
Derived from PSP NID.


<source lang="C">int scePowerSetPowerSwModeForDriver(int power_sw_mode);</source>
<source lang="C">int scePowerSetPowerSwModeForDriver(int mode);</source>


=== scePowerSetPowerSwMode2ForDriver ===
=== scePowerSetPowerSwMode2ForDriver ===
Line 836: Line 970:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0CD21B1F
| 3.60 || 0xC1853BA7
|}
|}


Derived from PSP NID.
This is guessed name.
 
derived from [[SceVshBridge#vshPowerSetPowerSwMode|vshPowerSetPowerSwMode]]


<source lang="C">int scePowerSetPowerSwMode2ForDriver(int power_sw_mode);</source>
<source lang="C">int scePowerSetPowerSwMode2ForDriver(int power_sw_mode);</source>
Line 854: Line 990:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0074EF9B
| 0.931.010-3.36 || 0x0074EF9B
|-
| 3.500.011-3.740.011 || 0x0074EF9B
|}
|}


Line 901: Line 1,039:
| 1.69-3.60 || 0x0442D852
| 1.69-3.60 || 0x0442D852
|}
|}
<source lang="C">
/**
* Requests PS Vita to do a cold reset
*
* @return always 0
*/
int scePowerRequestColdResetForDriver(void);
</source>


=== scePowerRequestHibernateForDriver ===
=== scePowerRequestHibernateForDriver ===
Line 911: Line 1,058:


derived from [[SceVshBridge#vshPowerRequestHibernate|vshPowerRequestHibernate]]
derived from [[SceVshBridge#vshPowerRequestHibernate|vshPowerRequestHibernate]]
<source lang="C">
/**
* Requests PS Vita to enter hibernate mode
*
* @return always 0
*/
int scePowerRequestHibernateForDriver(void);
</source>


=== scePowerRequestSuspendForDriver ===
=== scePowerRequestSuspendForDriver ===
Line 918: Line 1,074:
| 1.69-3.60 || 0xAC32C9CC
| 1.69-3.60 || 0xAC32C9CC
|}
|}
<source lang="C">
/**
* Requests PS Vita to enter suspend mode
*
* @return always 0
*/
int scePowerRequestSuspendForDriver(void);
</source>


=== scePowerRequestStandbyForDriver ===
=== scePowerRequestStandbyForDriver ===
Line 926: Line 1,091:
| 1.69-3.60 || 0x2B7C7CF4
| 1.69-3.60 || 0x2B7C7CF4
|}
|}
<source lang="C">
/**
* Requests PS Vita to enter standby mode
*
* @return always 0
*/
int scePowerRequestStandbyForDriver(void);
</source>


=== scePowerRequestResumeForDriver ===
=== scePowerRequestResumeForDriver ===
Line 934: Line 1,108:
| 3.60 || 0x02DB1035
| 3.60 || 0x02DB1035
|}
|}
<source lang="C">
/**
* Requests PS Vita to resume
*
* @return always 0
*/
int scePowerRequestResumeForDriver(void);
</source>


=== scePowerRequestDisplayOffForDriver ===
=== scePowerRequestDisplayOffForDriver ===
Line 942: Line 1,125:
| 3.60 || 0x160EB506
| 3.60 || 0x160EB506
|}
|}
<source lang="C">
/**
* Requests PS Vita to turn off display
*
* @return always 0
*/
int scePowerRequestDisplayOffForDriver(void);
</source>


=== scePowerRequestDisplayOnForDriver ===
=== scePowerRequestDisplayOnForDriver ===
Line 950: Line 1,142:
| 3.60 || 0x3EA75C88
| 3.60 || 0x3EA75C88
|}
|}
<source lang="C">
/**
* Requests PS Vita to turn on display
*
* @return always 0
*/
int scePowerRequestDisplayOnForDriver(void);
</source>


=== scePowerIsSuspendRequiredForDriver ===
=== scePowerIsSuspendRequiredForDriver ===
Line 968: Line 1,169:
=== scePowerUnregisterCallbackForDriver ===
=== scePowerUnregisterCallbackForDriver ===
{| class="wikitable"
{| class="wikitable"
|-
! Version !! NID
! Version !! NID
|-
|-
Line 987: Line 1,189:
|-
|-
| 3.60 || 0x6BC26FC7
| 3.60 || 0x6BC26FC7
|}
=== scePowerSetIdleTimerCountProcForDriver ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xFB5C3C75
|}
|}


Line 994: Line 1,204:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x1BA2FCAE
| 0.990-3.60 || 0x1BA2FCAE
|}
|}
<source lang="C">
// idx: 0-7
int scePowerSetIdleCallbackForDriver(SceUInt32 idx, int maybe_flags, SceUInt64 duration, void *cb_func, int idle_cb_info_5);
</source>
{| class="wikitable"
|-
! Index !! By !! Description
|-
| 0 || ScePower || scePowerRequestSuspend
|-
| 1 || ScePower || Ctrl
|-
| 2 || ScePower || Ctrl
|-
| 3 || unknown || -
|-
| 4 || SceMsif || -
|-
| 5 || unknown || -
|-
| 6 || unknown || -
|-
| 7 || unknown || -
|}
=== ScePowerForDriver_660D5AB4 ===
{| class="wikitable"
! Version !! NID
|-
| 0.931 || not present
|-
| 0.990-3.60 || 0x660D5AB4
|}
Set some value of the selected Idle Callback to 2.
<source lang="C">
// idx: 0-7
int ScePowerForDriver_660D5AB4(SceUInt32 idx);
</source>


=== scePowerSetProcessIdleCallbackForDriver ===
=== scePowerSetProcessIdleCallbackForDriver ===
Line 1,004: Line 1,256:
| 3.60 || 0x0856FD0A
| 3.60 || 0x0856FD0A
|}
|}
<source lang="C">int scePowerSetProcessIdleCallbackForDriver(int idle_cb_info_1, int idle_cb_info_2);</source>


=== scePowerGetCaseTempForDriver ===
=== scePowerGetCaseTempForDriver ===
Line 1,010: Line 1,264:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0x525592E4
| 0.990.000-3.740.011 || 0x525592E4
|}
|}
Exact same code as [[#scePowerGetBatteryTempForDriver]].


=== scePowerIsBatteryExistForDriver ===
=== scePowerIsBatteryExistForDriver ===
Line 1,021: Line 1,277:
|}
|}


=== scePowerEncodeUBatteryForDriver ===
=== scePowerWaitRequestCompletionForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
Line 1,028: Line 1,284:
|}
|}


According to PSP NID, it should be scePowerWaitRequestCompletionForDriver.
Temp name was scePowerEncodeUBattery (PSP NID wrong bruteforce).


=== scePowerSetBatteryFakeStatusForDriver ===
=== scePowerSetBatteryFakeStatusForDriver ===
Line 1,034: Line 1,290:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0C6973B8
| 0.996.090-3.740.011 || 0x0C6973B8
|}
|}


derived from [[SceVshBridge#_vshPowerSetBatteryFakeStatus|_vshPowerSetBatteryFakeStatus]]
Derived from [[SceVshBridge#_vshPowerSetBatteryFakeStatus|_vshPowerSetBatteryFakeStatus]].


<source lang="C">int scePowerSetBatteryFakeStatusForDriver(int status);</source>
<source lang="C">int scePowerSetBatteryFakeStatusForDriver(int status);</source>
Line 1,077: Line 1,333:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0x28E12023
| 0.990.000-3.740.011 || 0x28E12023
|}
|}
Exact same code as [[#scePowerGetCaseTempForDriver]].


=== scePowerGetBatteryVoltForDriver ===
=== scePowerGetBatteryVoltForDriver ===
Line 1,106: Line 1,364:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0x94F5A53F
| 0.990.000-3.740.011 || 0x94F5A53F
|}
|}
To document: in which unit is the remaining capacity.
<source lang="C">int scePowerGetBatteryRemainCapacityForDriver(void);</source>


=== scePowerGetBatteryRemainLevelForDriver ===
=== scePowerGetBatteryRemainLevelForDriver ===
Line 1,113: Line 1,375:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xEA3E3715
| 0.931.010-3.18 || not present
|-
| 3.300.041-3.740.011 || 0xEA3E3715
|}
|}
If Syscon version < 0x1040105, returns the remaining battery level, else returns 0 (SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID).
<source lang="C">
#define SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID 0
#define SCE_POWER_BATTERY_REMAIN_LEVEL_0_25_PERCENTS 1
#define SCE_POWER_BATTERY_REMAIN_LEVEL_25_50_PERCENTS 2
#define SCE_POWER_BATTERY_REMAIN_LEVEL_50_75_PERCENTS 3
#define SCE_POWER_BATTERY_REMAIN_LEVEL_75_100_PERCENTS 4
int scePowerGetBatteryRemainLevelForDriver(void);
</source>


=== scePowerGetBatteryRemainMaxLevelForDriver ===
=== scePowerGetBatteryRemainMaxLevelForDriver ===
Line 1,120: Line 1,396:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x1DB00F10
| 0.931.010-3.18 || not present
|-
| 3.300.041-3.740.011 || 0x1DB00F10
|}
|}
If Syscon version < 0x1040105, returns 4 (SCE_POWER_BATTERY_REMAIN_LEVEL_75_100_PERCENTS), else returns 0 (SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID).
<source lang="C">int scePowerGetBatteryRemainLevelForDriver(void);</source>


=== scePowerGetBatterySOHForDriver ===
=== scePowerGetBatterySOHForDriver ===
Line 1,127: Line 1,409:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0xA88A2B65
| 0.990.000-3.740.011 || 0xA88A2B65
|}
|}


Line 1,134: Line 1,416:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0xB4432BC8
| 0.990.000-3.740.011 || 0xB4432BC8
|}
|}
Returns battery charging status.
<source lang="C">
// To verify
#define SCE_POWER_ERROR_BATTERY_NOT_CONNECTED 0x802B0100
#define SCE_POWER_ERROR_BATTERY_NOT_WORKING 0x802B0101
#define SCE_BATTERY_STATUS_POWER_OFFLINE 0
#define SCE_BATTERY_STATUS_CHARGING_NORMAL 1
#define SCE_BATTERY_STATUS_CHARGE_FORBIDDEN 2
#define SCE_BATTERY_STATUS_CHARGING_USB 3
int scePowerGetBatteryChargingStatusForDriver(void);
</source>


=== scePowerIsLowBatteryForDriver ===
=== scePowerIsLowBatteryForDriver ===
Line 1,141: Line 1,438:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0xD3075926
| 0.990.000-3.740.011 || 0xD3075926
|}
|}


Line 1,148: Line 1,445:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0D56C601
| 0.996.090-3.740.011 || 0x0D56C601
|}
|}


return SceSysconForDriver_ACEE1C70
Returns value from [[#SceSysconForDriver_ACEE1C70]].


=== scePowerIsSomethingBattery2ForDriver ===
=== scePowerIsSomethingBattery2ForDriver ===
Line 1,157: Line 1,454:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x627A89C6
| 0.996.090-3.740.011 || 0x627A89C6
|}
|}


Line 1,166: Line 1,463:
! Version !! NID
! Version !! NID
|-
|-
| 1.69-3.60 || 0xFD18A0FF
| 0.990.000-3.740.011 || 0xFD18A0FF
|}
|}


Line 1,173: Line 1,470:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x90285886
| 0.990.000-3.740.011 || 0x90285886
|}
|}


Line 1,182: Line 1,479:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x733F973B
| 0.990.000-3.740.011 || 0x733F973B
|}
|}


Line 1,191: Line 1,488:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x166922EC
| 0.990.000-3.740.011 || 0x166922EC
|}
|}


Line 1,200: Line 1,497:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xDD3D4DAC
| 0.990.000-3.740.011 || 0xDD3D4DAC
|}
|}


Line 1,209: Line 1,506:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xACC857A4
| 0.996.090-3.740.011 || 0xACC857A4
|}
|}


Line 1,218: Line 1,515:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xE4E3C316
| 0.990.000-3.740.011 || 0xE4E3C316
|}
|}


<source lang="c">int scePowerBatterySetUsbStatusForDriver(unk);</source>
<source lang="c">int scePowerBatterySetUsbStatusForDriver(int unk);</source>


=== scePowerSetWakeupConditionForDriver ===
=== scePowerSetWakeupConditionForDriver ===
Line 1,227: Line 1,524:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xF535D928
| 0.990-3.60 || 0xF535D928
|}
|}
Enable/disable USB charge.


<source lang="c">
<source lang="c">
// ex: scePowerSetWakeupConditionForDriver(0x8000, 0);
// cond: 4: WlanBt related, 0x20: WlanBt related, 0x8000: USB charge
// ex: scePowerSetWakeupConditionForDriver(0x8000, 1);
int scePowerSetWakeupConditionForDriver(int cond, SceBool enable);
int scePowerSetWakeupConditionForDriver(int unk, int unk2);
</source>
</source>


Line 1,242: Line 1,536:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x6D2CA84B
| 0.931-3.60 || 0x6D2CA84B
|}
|}
<source lang="C">int scePowerWlanActivateForDriver(void);</source>


=== scePowerWlanDeactivateForDriver ===
=== scePowerWlanDeactivateForDriver ===
Line 1,249: Line 1,545:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x23BB0A60
| 0.931-3.60 || 0x23BB0A60
|}
|}


=== scePowerIsWlanActivateForDriver ===
<source lang="C">int scePowerWlanDeactivateForDriver(void);</source>
 
=== ScePowerForDriver_2B51FE2F ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x2B51FE2F
| 0.931.010-3.740.011 || 0x2B51FE2F
|}
|}


this function is temp name
A good name might be scePowerIsWlanActivatedForDriver, but it does not match NID using ScePowerForDriver NID suffix.


<source lang="C">int scePowerIsWlanActivateForDriver(void);</source>
<source lang="C">int ScePowerForDriver_2B51FE2F(void);</source>


=== set_some_battery_info ===
=== ScePowerForDriver_C62B6164 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xC62B6164
| 0.990.000-3.740.011 || 0xC62B6164
|}
|}


=== set_udcd_state ===
Gets some information about battery.
 
=== ScePowerForDriver_8C0D2051 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x8C0D2051
| 0.931.010-3.740.011 || 0x8C0D2051
|}
|}
Gets the battery status obtained using [[SceSyscon#SceSysconForDriver_A2FE9BF9]].


Called by [[SceUdcd]] when SceUdcdAlarmTickTimer is triggered.
Called by [[SceUdcd]] when SceUdcdAlarmTickTimer is triggered.


=== scePowerGetProcUsingWirelessForDriver ===
<source lang="C">int ScePowerForDriver_8C0D2051(SceUInt32 *pResult);</source>
 
=== scePowerGetUsingWirelessProcForDriver ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x06AF03DB
| 0.996.090-3.740.011 || 0x06AF03DB
|}
|}


this function is temp name
<source lang="C">int scePowerGetUsingWirelessProcForDriver(SceUID pid);</source>


<source lang="C">int scePowerGetProcUsingWireless(SceUID pid);</source>
=== scePowerSetUsingWlanProcForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x4A69163A
|}
 
=== scePowerGetUsingWlanProcForDriver ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x2784A6BD
|}
 
<source lang="C">int scePowerGetUsingWlanProcForDriver(SceUID pid);</source>


=== ScePowerForDriver_0D80B917 ===
=== ScePowerForDriver_0D80B917 ===
Line 1,294: Line 1,616:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0D80B917
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x0D80B917
|}
|}


Related to scePowerGetProcUsingWireless?
Maybe related to [[#scePowerGetUsingWirelessProcForDriver]].


<source lang="C">int ScePowerForDriver_0D80B917(SceUID pid);</source>
<source lang="C">int ScePowerForDriver_0D80B917(SceUID pid);</source>


=== ScePowerForDriver_660D5AB4 ===
=== ScePowerForDriver_4159E0D9 ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x4159E0D9
|}
 
=== ScePowerForDriver_5210A6FE ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x5210A6FE
|}
 
=== ScePowerForDriver_661D670D ===
{| class="wikitable"
! Version !! NID
|-
| 0.931.010-3.36 || not present
|-
| 3.500.011-3.740.011 || 0x661D670D
|}
 
=== ScePowerForDriver_991BDEAF ===
{| class="wikitable"
! Version !! NID
|-
| 1.03-3.60 || 0x991BDEAF
|}
 
<source lang="C">
// idx: 0-7
int ScePowerForDriver_991BDEAF(SceSize idx, SceUInt32 value);
</source>
 
=== ScePowerForDriver_38415146 ===
{| class="wikitable"
{| class="wikitable"
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x660D5AB4
| 1.03-3.60 || 0x38415146
|}
|}


idx - 1~7
Sets a global variable and sets global event flag 0x2000.
 
Related to LED.


<source lang="C">int ScePowerForDriver_660D5AB4(SceSize idx);</source>
<source lang="C">int ScePowerForDriver_38415146(SceBool enable);</source>


== SceLedForDriver ==
== SceLedForDriver ==
Line 1,319: Line 1,684:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xEA24BE03
| 0.990.000-3.740.011 || 0xEA24BE03
|}
|}


<source lang="c">int sceLedSetModeForDriver(int led, int mode, void *led_configuration);</source>
Maybe concerns DevKit LEDs as there are 8 LEDs, or maybe led=2 is PS button LED.
 
<source lang="c">
typedef struct SceLedConfiguration { // size is 0x14 on FW 3.60
  SceSize size; // Size of this structure
  SceUInt32 maybe_onTime; // ex: 2 (2 seconds)
  SceUInt32 maybe_offTime; // ex: 3 (3 seconds)
  SceInt32 timeLimit; // ex: 60 (60 seconds), -1 (infinite)
  SceUInt32 maybe_endOrStartBlinkState; // ex: 0 (OFF), 1 (ON)
} SceLedConfiguration;
 
#define SCE_LED_MODE_OFF 0 // Turn a LED OFF.
#define SCE_LED_MODE_ON 1 // Turn a LED ON.
#define SCE_LED_MODE_BLINK 2 // Set a blink event for a LED.
#define SCE_LED_MODE_SELECTIVE_EXEC 3 // Register LED configuration commands and execute them. Still not completely known how that mode works.
#define SCE_LED_MODE_UNK_4 4 // Only works with led = 2
 
// ex:
// uint32_t config_1[5] = {0x14, 2, 3, 0x3C, 0};
// uint32_t config_2[5] = {0x14, 2, 3, -1, 0};
// sceLedSetModeForDriver(1, 2, (SceLedConfiguration *)&config);
// sceLedSetModeForDriver(3, 2, (SceLedConfiguration *)&config);
 
// led: valid values are 0-7, 0: used in SceCamera, 1: used when sdstor read/write from SD, 3: used when sdstor read/write from MMC
// mode: valid values are 0-4


int sceLedSetModeForDriver(int led, int mode, SceLedConfiguration *pConfig);
</source>


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

Latest revision as of 19:42, 25 March 2024

Module

Version World Privilege
1.69-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
1.000.071-3.740.011 ScePower Non-secure User 0x1082DA7F
0.990.000-3.740.011 ScePowerForDriver Non-secure Kernel 0x1590166F
0.990.000-0.996.090 SceLedForDriver Non-secure Kernel not present. Present in SceLed.
1.000.071-3.740.011 SceLedForDriver Non-secure Kernel 0x282C1323

Clocks

Default (in Shell)

Arm           : 333
Gpu(Proc)     : 41
GpuXbar       : 111
Bus           : 222
Compat        : 0
Venezia       : 166
Dmac5         : 166
Vip           : 0
Sys           : 190
CameraBus     : 0
Gpu(Internal) : 41, 41

Power callbacks

See also SceSyscon#Callbacks.

Power callback notifyArg allowed mask are listed in the table below.

Process Mask
Kernel 0xFCF71F80
System 0xFCF71F80
Non-System 0x361180

ScePowerMain event flag

Value Function
1 SceCtrl callback subroutines
4 scePowerRequestDisplayOn
8 scePowerRequestDisplayOff
0x10 scePowerRequestSuspend, scePowerRequestStandby
0x20 scePowerRequestSuspend
0x40 scePowerRequestSoftReset
0x80 scePowerRequestColdReset
0x200 ScePowerAlarm0 subroutines
0x400 scePowerRequestHibernate
0x800 HDMI callback subroutines

Types

typedef enum ScePowerCallbackType {
	SCE_POWER_CB_AFTER_SYSTEM_RESUME   = 0x00000080, /* TODO: confirm */
	SCE_POWER_CB_BATTERY_ONLINE        = 0x00000100,
	SCE_POWER_CB_THERMAL_SUSPEND       = 0x00000200, /* TODO: confirm */
	SCE_POWER_CB_LOW_BATTERY_SUSPEND   = 0x00000400, /* TODO: confirm */
	SCE_POWER_CB_LOW_BATTERY           = 0x00000800,
	SCE_POWER_CB_POWER_ONLINE          = 0x00001000,
	SCE_POWER_CB_SYSTEM_SUSPEND        = 0x00010000,
	SCE_POWER_CB_SYSTEM_RESUMING       = 0x00020000,
	SCE_POWER_CB_SYSTEM_RESUME         = 0x00040000,
	SCE_POWER_CB_UNK_0x100000          = 0x00100000, /* Related to proc_event::display_switch */
	SCE_POWER_CB_APP_RESUME            = 0x00200000,
	SCE_POWER_CB_APP_SUSPEND           = 0x00400000,
	SCE_POWER_CB_APP_RESUMING          = 0x00800000, /* TODO: confirm */
	SCE_POWER_CB_SCREENSHOT_TRIGGER    = 0x04000000,
	SCE_POWER_CB_UNK_0x8000000         = 0x08000000, /* Triggered by a special button combo (PS + Power) on the event of ScePowerMain */
	SCE_POWER_CB_PS_BUTTON_HOLD        = 0x10000000,
	SCE_POWER_CB_PS_BUTTON_PRESS       = 0x20000000,
	SCE_POWER_CB_POWER_BUTTON_HOLD     = 0x40000000,
	SCE_POWER_CB_POWER_BUTTON_PRESS    = 0x80000000,
	SCE_POWER_CB_VALID_MASK_KERNEL     = 0xFCF71F80,
	SCE_POWER_CB_VALID_MASK_SYSTEM     = 0xFCF71F80,
	SCE_POWER_CB_VALID_MASK_NON_SYSTEM = 0x00361180
} ScePowerCallbackType;

#define SCE_CLOCK_FREQ_GPU_41MHZ  (41)
#define SCE_CLOCK_FREQ_GPU_55MHZ  (55)
#define SCE_CLOCK_FREQ_GPU_83MHZ  (83)
#define SCE_CLOCK_FREQ_GPU_111MHZ (111)
#define SCE_CLOCK_FREQ_GPU_166MHZ (166)
#define SCE_CLOCK_FREQ_GPU_222MHZ (222)

#define SCE_CLOCK_FREQ_GPU_XBAR_111MHZ (111)
#define SCE_CLOCK_FREQ_GPU_XBAR_166MHZ (166)

#define SCE_CLOCK_FREQ_DMAC5_41MHZ  (41)
#define SCE_CLOCK_FREQ_DMAC5_83MHZ  (83)
#define SCE_CLOCK_FREQ_DMAC5_133MHZ (133)
#define SCE_CLOCK_FREQ_DMAC5_166MHZ (166)

#define SCE_CLOCK_FREQ_BUS_55MHZ  (55)
#define SCE_CLOCK_FREQ_BUS_83MHZ  (83)
#define SCE_CLOCK_FREQ_BUS_111MHZ (111)
#define SCE_CLOCK_FREQ_BUS_166MHZ (166)
#define SCE_CLOCK_FREQ_BUS_222MHZ (222)

#define SCE_CLOCK_FREQ_COMPAT_0MHZ   (0)
#define SCE_CLOCK_FREQ_COMPAT_222MHZ (222)
#define SCE_CLOCK_FREQ_COMPAT_333MHZ (333)

#define SCE_CLOCK_FREQ_VENEZIA_41MHZ  (41)
#define SCE_CLOCK_FREQ_VENEZIA_55MHZ  (55)
#define SCE_CLOCK_FREQ_VENEZIA_83MHZ  (83)
#define SCE_CLOCK_FREQ_VENEZIA_111MHZ (111)
#define SCE_CLOCK_FREQ_VENEZIA_166MHZ (166)
#define SCE_CLOCK_FREQ_VENEZIA_222MHZ (222)
#define SCE_CLOCK_FREQ_VENEZIA_333MHZ (333)

#define SCE_CLOCK_FREQ_VIP_0MHZ   (0)
#define SCE_CLOCK_FREQ_VIP_41MHZ  (41)
#define SCE_CLOCK_FREQ_VIP_55MHZ  (55)
#define SCE_CLOCK_FREQ_VIP_83MHZ  (83)
#define SCE_CLOCK_FREQ_VIP_111MHZ (111)
#define SCE_CLOCK_FREQ_VIP_166MHZ (166)
#define SCE_CLOCK_FREQ_VIP_222MHZ (222)

#define SCE_CLOCK_FREQ_SYS_190MHZ (190)
#define SCE_CLOCK_FREQ_SYS_222MHZ (222)

#define SCE_CLOCK_FREQ_CAMERA_BUS_0MHZ   (0)
#define SCE_CLOCK_FREQ_CAMERA_BUS_41MHZ  (41)
#define SCE_CLOCK_FREQ_CAMERA_BUS_67MHZ  (67)
#define SCE_CLOCK_FREQ_CAMERA_BUS_83MHZ  (83)
#define SCE_CLOCK_FREQ_CAMERA_BUS_131MHZ (131)
#define SCE_CLOCK_FREQ_CAMERA_BUS_166MHZ (166)

ScePower

scePowerGetBatteryCycleCount

Version NID
0.931.010-1.06 not present
1.500.151-3.740.011 0x008A54B9

scePowerRequestColdReset

Version NID
1.000.071-3.740.011 0x0442D852

scePowerRegisterCallback

Version NID
1.000.071-3.740.011 0x04B7766E

scePowerGetGpuXbarClockFrequency

Version NID
1.000.071-3.740.011 0x0A750DEE

scePowerIsBatteryExist

Version NID
1.000.071-3.740.011 0x0AFD0D8B

scePowerGetGpuClockFrequency

Version NID
0.931.010-3.740.011 0x1B04A1D6

scePowerIsBatteryCharging

Version NID
1.000.071-3.740.011 0x1E490401

scePowerGetBatteryLifePercent

Version NID
1.000.071-3.740.011 0x2085D15D

scePowerBatteryUpdateInfo

Version NID
0.990.030-3.740.011 0x27F3292C

scePowerGetBatteryTemp

Version NID
1.000.071-3.740.011 0x28E12023

scePowerRequestStandby

Version NID
1.000.071-3.740.011 0x2B7C7CF4

scePowerSetConfigurationMode

Version NID
1.000.071-3.740.011 0x3CE187B6

scePowerGetBatteryVolt

Version NID
1.000.071-3.740.011 0x483CE86B

scePowerSetUsingWireless

Version NID
1.000.071-3.740.011 0x4D695C1F

scePowerGetCaseTemp

Version NID
1.000.071-3.740.011 0x525592E4

scePowerSetGpuClockFrequency

Version NID
1.000.071-3.740.011 0x717DB06C

scePowerSetArmClockFrequency

Version NID
1.000.071-3.740.011 0x74DB5AE5

scePowerIsSuspendRequired

Version NID
1.000.071-3.740.011 0x78A1A796

scePowerIsRequest

Version NID
1.000.071-3.740.011 0x7FA406DD

scePowerGetBatteryElec

Version NID
1.000.071-3.740.011 0x862AE1A6

scePowerIsPowerOnline

Version NID
1.000.071-3.740.011 0x87440F5E

scePowerGetBatteryLifeTime

Version NID
1.000.071-3.740.011 0x8EFB3FA2

scePowerGetBatteryRemainCapacity

Version NID
1.000.071-3.740.011 0x94F5A53F

scePowerSetGpuXbarClockFrequency

Version NID
1.000.071-3.740.011 0xA7739DBE

scePowerGetBatterySOH

Version NID
1.000.071-3.740.011 0xA88A2B65

scePowerGetArmClockFrequency

Version NID
1.000.071-3.740.011 0xABC6F88F

scePowerRequestSuspend

Version NID
1.000.071-3.740.011 0xAC32C9CC

scePowerSetIdleTimerCount

Version NID
1.000.071-3.740.011 0xB11EF149

scePowerGetBatteryChargingStatus

Version NID
1.000.071-3.740.011 0xB4432BC8

scePowerIsLowBattery

Version NID
1.000.071-3.740.011 0xD3075926

scePowerGetUsingWireless

Version NID
1.000.071-3.740.011 0xD541FF03

scePowerCancelRequest

Version NID
1.000.071-3.740.011 0xDB62C9CF

scePowerUnregisterCallback

Version NID
1.000.071-3.740.011 0xDFA8BAF8

scePowerGetBatteryFullCapacity

Version NID
1.000.071-3.740.011 0xFD18A0FF

scePowerGetBusClockFrequency

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0x478FE6F5

scePowerSetBusClockFrequency

Version NID
0.931.010-1.692.000 not present
1.800.071-3.740.011 0xB8D7B3FB

scePowerRequestDisplayOff

Version NID
0.931.010-2.12 not present
2.500.071-3.740.011 0x160EB506

This function was probably added for PS TV support. Indeed, the screen of a PS TV is a HDMI device not an embedded screen like on PS Vita handled consoles.

scePowerRequestDisplayOn

Version NID
0.931.010-2.12 not present
2.500.071-3.740.011 0x3EA75C88

This function was probably added for PS TV support. Indeed, the screen of a PS TV is a HDMI device not an embedded screen like on PS Vita handled consoles.

scePowerIsLowBatteryInhibitUpdateDownload

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0xE3E45636

This function was added along with SceSyscon#sceSysconIsLowBatteryInhibitUpdateDownloadForDriver.

scePowerIsLowBatteryInhibitUpdateReboot

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x9AA05A48

This function was added along with SceSyscon#sceSysconIsLowBatteryInhibitUpdateRebootForDriver.

scePowerGetBatteryRemainLevel

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0xEA3E3715

This function was added along with SceSyscon#sceSysconGetBatteryRemainLevelForDriver.

scePowerGetBatteryRemainMaxLevel

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x1DB00F10

ScePowerForDriver

scePowerGetArmClockFrequencyForDriver

Version NID
1.69-3.60 0xABC6F88F
int scePowerGetArmClockFrequencyForDriver(void);

scePowerSetArmClockFrequencyForDriver

Version NID
1.69-3.60 0x74DB5AE5
int scePowerSetArmClockFrequencyForDriver(int clock);

scePowerGetArmClockFrequencyProcForDriver

Version NID
3.60 0x2E9000F7
int scePowerGetArmClockFrequencyProcForDriver(SceUID pid);

scePowerSetArmClockFrequencyProcForDriver

Version NID
3.60 0x86CB5218
int scePowerSetArmClockFrequencyProcForDriver(SceUID pid, int clock);

scePowerGetGpuClockFrequencyForDriver

Version NID
0.931.010-1.692.000 0x1B04A1D6
1.800.071-3.740.011 not present
int scePowerGetGpuClockFrequencyForDriver(void);

scePowerSetGpuClockFrequencyForDriver

Version NID
0.931.010-1.692.000 0x717DB06C
1.800.071-3.740.011 not present
int scePowerSetGpuClockFrequencyForDriver(int clock);

scePowerGetGpuClockFrequencyProcForDriver

Version NID
0.931.010-0.990.000 not present
0.996.090-3.740.011 0x642E0AF2
int scePowerGetGpuClockFrequencyProcForDriver(SceUID pid);

scePowerSetGpuClockFrequencyProcForDriver

Version NID
0.931.010-0.990.000 not present
0.996.090-3.740.011 0xB104EFE2
int scePowerSetGpuClockFrequencyProcForDriver(SceUID pid, int clock);

scePowerGetGpuClockFrequencyInternalForDriver

Version NID
3.60 0x475BCC82

Temp name was scePowerGetGpuEs4ClockFrequencyForDriver, scePowerGetDeviceCountForDriver.

int scePowerGetGpuClockFrequencyInternalForDriver(SceInt32 *corefreq, SceInt32 *mpfreq);

scePowerSetGpuClockFrequencyInternalForDriver

Version NID
3.60 0x264C24FC

Temp name was scePowerSetGpuEs4ClockFrequencyForDriver

int scePowerSetGpuClockFrequencyInternalForDriver(SceInt32 corefreq, SceInt32 mpfreq);

scePowerGetGpuXbarClockFrequencyForDriver

Version NID
1.69-3.60 0x0A750DEE
int scePowerGetGpuXbarClockFrequencyForDriver(void);

scePowerSetGpuXbarClockFrequencyForDriver

Version NID
1.69-3.60 0xA7739DBE
int scePowerSetGpuXbarClockFrequencyForDriver(int clock);

scePowerGetGpuXbarClockFrequencyProcForDriver

Version NID
3.60 0x62C5406C
int scePowerGetGpuXbarClockFrequencyProcForDriver(SceUID pid);

scePowerSetGpuXbarClockFrequencyProcForDriver

Version NID
3.60 0x8D18F728
int scePowerSetGpuXbarClockFrequencyProcForDriver(SceUID pid, int clock);

scePowerGetBusClockFrequencyForDriver

Version NID
3.60 0x478FE6F5
int scePowerGetBusClockFrequencyForDriver(void);

scePowerSetBusClockFrequencyForDriver

Version NID
3.60 0xB8D7B3FB
int scePowerSetBusClockFrequencyForDriver(int clock);

scePowerGetBusClockFrequencyProcForDriver

Version NID
3.60 0x2777A517
int scePowerGetBusClockFrequencyProcForDriver(SceUID pid);

scePowerSetBusClockFrequencyProcForDriver

Version NID
3.60 0x20A33D58
int scePowerSetBusClockFrequencyProcForDriver(SceUID pid, int clock);

scePowerGetCompatClockFrequencyForDriver

Version NID
3.60 0xCBCC11CC
int scePowerGetCompatClockFrequencyForDriver(void);

scePowerSetCompatClockFrequencyForDriver

Version NID
3.60 0xFFC84E69
int scePowerSetCompatClockFrequencyForDriver(int clock);

scePowerGetVeneziaClockFrequencyForDriver

Version NID
3.60 0x64641E6A
int scePowerGetVeneziaClockFrequencyForDriver(void);

scePowerSetVeneziaClockFrequencyForDriver

Version NID
0.990.000-3.740.011 0x621BD8FD
int scePowerSetVeneziaClockFrequencyForDriver(int clock);

scePowerGetDmac5ClockFrequencyForDriver

Version NID
3.60 0xF1E14EA9
int scePowerGetDmac5ClockFrequencyForDriver(void);

scePowerSetDmac5ClockFrequencyForDriver

Version NID
3.60 0xA902CDDF
int scePowerSetDmac5ClockFrequencyForDriver(int clock);

scePowerGetVipClockFrequencyForDriver

Version NID
3.60 0x0E58FCDF

Temp name was scePowerGetVeneziaForDriver.

int scePowerGetVipClockFrequencyForDriver(void);

scePowerSetVipClockFrequencyForDriver

Version NID
3.60 0xE5573571

Temp name was scePowerSetVeneziaForDriver.

VIP is set to ?222MHz? by system when video is played back, even in PspEmu. ?The two clocks it sets are 55MHz and 83MHz.?

Related to Venezia.

int scePowerSetVipClockFrequencyForDriver(int clock);

scePowerGetSysClockFrequencyForDriver

Version NID
3.60 0xC63DACD5
int scePowerGetSysClockFrequencyForDriver(void);

scePowerSetSysClockFrequencyForDriver

Version NID
0.931 not present
0.990-3.60 0x0E333BEC

Hardware_Timers Clock.

int scePowerSetSysClockFrequencyForDriver(int clock);

scePowerGetCameraBusClockFrequencyForDriver

Version NID
3.60 0x668F01D4
int scePowerGetCameraBusClockFrequencyForDriver(void);

scePowerSetCameraBusClockFrequencyForDriver

Version NID
3.60 0xC743E392
int scePowerSetCameraBusClockFrequencyForDriver(int clock);

scePowerSetCallbackStateForDriver

Version NID
3.60 0xA6FF5997

scePowerSetDisplayBrightnessForDriver

Version NID
3.60 0x43D5CE1D

scePowerGetDisplayMaxBrightnessForDriver

Version NID
3.60 0xD8759B55

scePowerSetDisplayMaxBrightnessForDriver

Version NID
3.60 0x77027B6B
// ex: scePowerSetDisplayMaxBrightnessForDriver(0x10000);
// ex: scePowerSetDisplayMaxBrightnessForDriver(0xC4EC);
int scePowerSetDisplayMaxBrightnessForDriver(int unk);

scePowerSetDisplayBrightnessForDriver

Version NID
0.931-0.990 not present
3.60 0x43D5CE1D

scePowerTickForDriver

Version NID
0.931-0.990 not present
3.60 0xEFD3C963

Generate a power tick, preventing unit from powering off and turning off display.

int scePowerTickForDriver(SceUInt32 type);

ScePowerForDriver_394DE492

Version NID
3.60 0x394DE492

Returns a global boolean variable indicating if display brightness change is allowed.

int ScePowerForDriver_394DE492(void);

scePowerSetStandbyButtonPushTimeForDriver

Version NID
3.60 0x675A84ED

derived from vshPowerSetStandbyButtonPushTime

int scePowerSetStandbyButtonPushTimeForDriver(int a1);

scePowerSetPsButtonPushTimeForDriver

Version NID
3.60 0xCF8F0529

derived from vshPowerSetPsButtonPushTime

int scePowerSetPsButtonPushTimeForDriver(int a1);

scePowerGetWakeupFactorForDriver

Version NID
3.60 0x9F26222A

derived from vshPowerGetWakeupFactor

int scePowerGetWakeupFactorForDriver(void);

scePowerGetPowerSwModeForDriver

Version NID
3.60 0x165CE085

Derived from PSP NID.

/**
 * Unknow, get ??? something
 *
 * @returns On PSP, 0 or 1 or 2 or 3, default to 2, on PS Vita, 4 is a possible value
 */
int scePowerGetPowerSwModeForDriver(void);

scePowerSetPowerSwModeForDriver

Version NID
3.60 0x0CD21B1F

Derived from PSP NID.

int scePowerSetPowerSwModeForDriver(int mode);

scePowerSetPowerSwMode2ForDriver

Version NID
3.60 0xC1853BA7

This is guessed name.

derived from vshPowerSetPowerSwMode

int scePowerSetPowerSwMode2ForDriver(int power_sw_mode);

scePowerGetBatteryCycleCountForDriver

Version NID
1.69-3.60 0x008A54B9

scePowerGetResumeCountForDriver

Version NID
0.931.010-3.36 0x0074EF9B
3.500.011-3.740.011 0x0074EF9B

scePowerIsRequestForDriver

Version NID
1.69-3.60 0x7FA406DD

scePowerCancelRequestForDriver

Version NID
1.69-3.60 0xDB62C9CF

scePowerRequestShutdownForDriver

Version NID
0.990-3.60 0x8921A7A0

scePowerRequestSoftResetForDriver

Version NID
1.69-3.60 0x2875994B
/**
 * Requests PS Vita to do a soft reset
 *
 * @return always 0
 */
int scePowerRequestSoftResetForDriver(void);

scePowerRequestColdResetForDriver

Version NID
1.69-3.60 0x0442D852
/**
 * Requests PS Vita to do a cold reset
 *
 * @return always 0
 */
int scePowerRequestColdResetForDriver(void);

scePowerRequestHibernateForDriver

Version NID
3.60 0x08951418

derived from vshPowerRequestHibernate

/**
 * Requests PS Vita to enter hibernate mode
 *
 * @return always 0
 */
int scePowerRequestHibernateForDriver(void);

scePowerRequestSuspendForDriver

Version NID
1.69-3.60 0xAC32C9CC
/**
 * Requests PS Vita to enter suspend mode
 *
 * @return always 0
 */
int scePowerRequestSuspendForDriver(void);

scePowerRequestStandbyForDriver

Version NID
1.69-3.60 0x2B7C7CF4
/**
 * Requests PS Vita to enter standby mode
 *
 * @return always 0
 */
int scePowerRequestStandbyForDriver(void);

scePowerRequestResumeForDriver

Version NID
3.60 0x02DB1035
/**
 * Requests PS Vita to resume
 *
 * @return always 0
 */
int scePowerRequestResumeForDriver(void);

scePowerRequestDisplayOffForDriver

Version NID
3.60 0x160EB506
/**
 * Requests PS Vita to turn off display
 *
 * @return always 0
 */
int scePowerRequestDisplayOffForDriver(void);

scePowerRequestDisplayOnForDriver

Version NID
3.60 0x3EA75C88
/**
 * Requests PS Vita to turn on display
 *
 * @return always 0
 */
int scePowerRequestDisplayOnForDriver(void);

scePowerIsSuspendRequiredForDriver

Version NID
1.69-3.60 0x78A1A796

scePowerRegisterCallbackForDriver

Version NID
1.69-3.60 0x04B7766E

scePowerUnregisterCallbackForDriver

Version NID
1.69-3.60 0xDFA8BAF8

scePowerGetIdleTimerForDriver

Version NID
3.60 0xEDC13FE5

scePowerSetIdleTimerForDriver

Version NID
3.60 0x6BC26FC7

scePowerSetIdleTimerCountProcForDriver

Version NID
3.60 0xFB5C3C75

scePowerSetIdleCallbackForDriver

Version NID
0.990-3.60 0x1BA2FCAE
// idx: 0-7
int scePowerSetIdleCallbackForDriver(SceUInt32 idx, int maybe_flags, SceUInt64 duration, void *cb_func, int idle_cb_info_5);
Index By Description
0 ScePower scePowerRequestSuspend
1 ScePower Ctrl
2 ScePower Ctrl
3 unknown -
4 SceMsif -
5 unknown -
6 unknown -
7 unknown -

ScePowerForDriver_660D5AB4

Version NID
0.931 not present
0.990-3.60 0x660D5AB4

Set some value of the selected Idle Callback to 2.

// idx: 0-7
int ScePowerForDriver_660D5AB4(SceUInt32 idx);

scePowerSetProcessIdleCallbackForDriver

Version NID
3.60 0x0856FD0A
int scePowerSetProcessIdleCallbackForDriver(int idle_cb_info_1, int idle_cb_info_2);

scePowerGetCaseTempForDriver

Version NID
0.990.000-3.740.011 0x525592E4

Exact same code as #scePowerGetBatteryTempForDriver.

scePowerIsBatteryExistForDriver

Version NID
1.69-3.60 0x0AFD0D8B

scePowerWaitRequestCompletionForDriver

Version NID
3.60 0x3951AF53

Temp name was scePowerEncodeUBattery (PSP NID wrong bruteforce).

scePowerSetBatteryFakeStatusForDriver

Version NID
0.996.090-3.740.011 0x0C6973B8

Derived from _vshPowerSetBatteryFakeStatus.

int scePowerSetBatteryFakeStatusForDriver(int status);

scePowerIsPowerOnlineForDriver

Version NID
1.69-3.60 0x87440F5E

scePowerIsBatteryChargingForDriver

Version NID
1.69-3.60 0x1E490401

scePowerGetBatteryLifePercentForDriver

Version NID
1.69-3.60 0x2085D15D

scePowerBatteryUpdateInfoForDriver

Version NID
0.990-3.60 0x27F3292C

scePowerGetBatteryTempForDriver

Version NID
0.990.000-3.740.011 0x28E12023

Exact same code as #scePowerGetCaseTempForDriver.

scePowerGetBatteryVoltForDriver

Version NID
1.69-3.60 0x483CE86B

scePowerGetBatteryElecForDriver

Version NID
1.69-3.60 0x862AE1A6

scePowerGetBatteryLifeTimeForDriver

Version NID
1.69-3.60 0x8EFB3FA2

scePowerGetBatteryRemainCapacityForDriver

Version NID
0.990.000-3.740.011 0x94F5A53F

To document: in which unit is the remaining capacity.

int scePowerGetBatteryRemainCapacityForDriver(void);

scePowerGetBatteryRemainLevelForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0xEA3E3715

If Syscon version < 0x1040105, returns the remaining battery level, else returns 0 (SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID).

#define SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID 0
#define SCE_POWER_BATTERY_REMAIN_LEVEL_0_25_PERCENTS 1
#define SCE_POWER_BATTERY_REMAIN_LEVEL_25_50_PERCENTS 2
#define SCE_POWER_BATTERY_REMAIN_LEVEL_50_75_PERCENTS 3
#define SCE_POWER_BATTERY_REMAIN_LEVEL_75_100_PERCENTS 4

int scePowerGetBatteryRemainLevelForDriver(void);

scePowerGetBatteryRemainMaxLevelForDriver

Version NID
0.931.010-3.18 not present
3.300.041-3.740.011 0x1DB00F10

If Syscon version < 0x1040105, returns 4 (SCE_POWER_BATTERY_REMAIN_LEVEL_75_100_PERCENTS), else returns 0 (SCE_POWER_BATTERY_REMAIN_LEVEL_INVALID).

int scePowerGetBatteryRemainLevelForDriver(void);

scePowerGetBatterySOHForDriver

Version NID
0.990.000-3.740.011 0xA88A2B65

scePowerGetBatteryChargingStatusForDriver

Version NID
0.990.000-3.740.011 0xB4432BC8

Returns battery charging status.

// To verify
#define SCE_POWER_ERROR_BATTERY_NOT_CONNECTED 0x802B0100
#define SCE_POWER_ERROR_BATTERY_NOT_WORKING 0x802B0101

#define SCE_BATTERY_STATUS_POWER_OFFLINE 0
#define SCE_BATTERY_STATUS_CHARGING_NORMAL 1
#define SCE_BATTERY_STATUS_CHARGE_FORBIDDEN 2
#define SCE_BATTERY_STATUS_CHARGING_USB 3

int scePowerGetBatteryChargingStatusForDriver(void);

scePowerIsLowBatteryForDriver

Version NID
0.990.000-3.740.011 0xD3075926

scePowerIsSomethingBatteryForDriver

Version NID
0.996.090-3.740.011 0x0D56C601

Returns value from #SceSysconForDriver_ACEE1C70.

scePowerIsSomethingBattery2ForDriver

Version NID
0.996.090-3.740.011 0x627A89C6

return SceSysconForDriver_4A184B7C

scePowerGetBatteryFullCapacityForDriver

Version NID
0.990.000-3.740.011 0xFD18A0FF

scePowerBatteryDisableUsbChargingForDriver

Version NID
0.990.000-3.740.011 0x90285886
int scePowerBatteryDisableUsbChargingForDriver(void);

scePowerBatteryEnableUsbChargingForDriver

Version NID
0.990.000-3.740.011 0x733F973B
int scePowerBatteryEnableUsbChargingForDriver(void);

scePowerBatteryForbidChargingForDriver

Version NID
0.990.000-3.740.011 0x166922EC
int scePowerBatteryForbidChargingForDriver(void);

scePowerBatteryPermitChargingForDriver

Version NID
0.990.000-3.740.011 0xDD3D4DAC
int scePowerBatteryPermitChargingForDriver(void);

scePowerBatteryStopUsbChargingForDriver

Version NID
0.996.090-3.740.011 0xACC857A4
int scePowerBatteryStopUsbChargingForDriver(void);

scePowerBatterySetUsbStatusForDriver

Version NID
0.990.000-3.740.011 0xE4E3C316
int scePowerBatterySetUsbStatusForDriver(int unk);

scePowerSetWakeupConditionForDriver

Version NID
0.990-3.60 0xF535D928
// cond: 4: WlanBt related, 0x20: WlanBt related, 0x8000: USB charge
int scePowerSetWakeupConditionForDriver(int cond, SceBool enable);

scePowerWlanActivateForDriver

Version NID
0.931-3.60 0x6D2CA84B
int scePowerWlanActivateForDriver(void);

scePowerWlanDeactivateForDriver

Version NID
0.931-3.60 0x23BB0A60
int scePowerWlanDeactivateForDriver(void);

ScePowerForDriver_2B51FE2F

Version NID
0.931.010-3.740.011 0x2B51FE2F

A good name might be scePowerIsWlanActivatedForDriver, but it does not match NID using ScePowerForDriver NID suffix.

int ScePowerForDriver_2B51FE2F(void);

ScePowerForDriver_C62B6164

Version NID
0.990.000-3.740.011 0xC62B6164

Gets some information about battery.

ScePowerForDriver_8C0D2051

Version NID
0.931.010-3.740.011 0x8C0D2051

Gets the battery status obtained using SceSyscon#SceSysconForDriver_A2FE9BF9.

Called by SceUdcd when SceUdcdAlarmTickTimer is triggered.

int ScePowerForDriver_8C0D2051(SceUInt32 *pResult);

scePowerGetUsingWirelessProcForDriver

Version NID
0.996.090-3.740.011 0x06AF03DB
int scePowerGetUsingWirelessProcForDriver(SceUID pid);

scePowerSetUsingWlanProcForDriver

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x4A69163A

scePowerGetUsingWlanProcForDriver

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x2784A6BD
int scePowerGetUsingWlanProcForDriver(SceUID pid);

ScePowerForDriver_0D80B917

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x0D80B917

Maybe related to #scePowerGetUsingWirelessProcForDriver.

int ScePowerForDriver_0D80B917(SceUID pid);

ScePowerForDriver_4159E0D9

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x4159E0D9

ScePowerForDriver_5210A6FE

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x5210A6FE

ScePowerForDriver_661D670D

Version NID
0.931.010-3.36 not present
3.500.011-3.740.011 0x661D670D

ScePowerForDriver_991BDEAF

Version NID
1.03-3.60 0x991BDEAF
// idx: 0-7
int ScePowerForDriver_991BDEAF(SceSize idx, SceUInt32 value);

ScePowerForDriver_38415146

Version NID
1.03-3.60 0x38415146

Sets a global variable and sets global event flag 0x2000.

Related to LED.

int ScePowerForDriver_38415146(SceBool enable);

SceLedForDriver

sceLedSetModeForDriver

Version NID
0.990.000-3.740.011 0xEA24BE03

Maybe concerns DevKit LEDs as there are 8 LEDs, or maybe led=2 is PS button LED.

typedef struct SceLedConfiguration { // size is 0x14 on FW 3.60
   SceSize size; // Size of this structure
   SceUInt32 maybe_onTime; // ex: 2 (2 seconds)
   SceUInt32 maybe_offTime; // ex: 3 (3 seconds)
   SceInt32 timeLimit; // ex: 60 (60 seconds), -1 (infinite)
   SceUInt32 maybe_endOrStartBlinkState; // ex: 0 (OFF), 1 (ON)
} SceLedConfiguration;

#define SCE_LED_MODE_OFF 		0 // Turn a LED OFF.
#define SCE_LED_MODE_ON 		1 // Turn a LED ON.
#define SCE_LED_MODE_BLINK 		2 // Set a blink event for a LED.
#define SCE_LED_MODE_SELECTIVE_EXEC	3 // Register LED configuration commands and execute them. Still not completely known how that mode works.
#define SCE_LED_MODE_UNK_4 		4 // Only works with led = 2

// ex:
// uint32_t config_1[5] = {0x14, 2, 3, 0x3C, 0};
// uint32_t config_2[5] = {0x14, 2, 3, -1, 0};
// sceLedSetModeForDriver(1, 2, (SceLedConfiguration *)&config);
// sceLedSetModeForDriver(3, 2, (SceLedConfiguration *)&config);

// led: valid values are 0-7, 0: used in SceCamera, 1: used when sdstor read/write from SD, 3: used when sdstor read/write from MMC
// mode: valid values are 0-4

int sceLedSetModeForDriver(int led, int mode, SceLedConfiguration *pConfig);