Difference between revisions of "SceShellSvc"
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) |
CelesteBlue (talk | contribs) (Thanks to Graphene.) |
||
Line 16: | Line 16: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
− | | 3.60 || SceShellSvc || Non-secure || User || | + | | 3.60 || SceShellSvc || Non-secure || User || 0x773242C7 |
|- | |- | ||
− | | 3.60 || SceShellUtil || Non-secure || User || | + | | 3.60 || SceShellUtil || Non-secure || User || 0xD2B1C8AE |
|- | |- | ||
− | | 3.60 || SceShellUtilUketorne || Non-secure || User || | + | | 3.60 || SceShellUtilUketorne || Non-secure || User || 0xA2316143 |
|- | |- | ||
− | | 3.60 || SceShellUtilLaunchApp || Non-secure || User || | + | | 3.60 || SceShellUtilLaunchApp || Non-secure || User || 0xA0FD0261 |
|- | |- | ||
− | | 3.60 || SceSvcCtrl || Non-secure || User || | + | | 3.60 || SceSvcCtrl || Non-secure || User || 0x33E9B101 |
|- | |- | ||
− | | 3.60 || SceIpmi || Non-secure || User || | + | | 3.60 || SceIpmi || Non-secure || User || 0xF4E34EDB |
|} | |} | ||
Line 32: | Line 32: | ||
<source lang="C"> | <source lang="C"> | ||
+ | typedef struct SceShellSvcCustomAudioSubParams1 { | ||
+ | int unk_00; // not used (set to 0) | ||
+ | int tracking1; | ||
+ | int tracking2; | ||
+ | } SceShellSvcCustomAudioSubParams1; | ||
+ | |||
+ | typedef struct SceShellSvcCustomAudioSubParams2 { | ||
+ | int flag; | ||
+ | int unk_04; | ||
+ | int unk_08; | ||
+ | int unk_0C; | ||
+ | } SceShellSvcCustomAudioSubParams2; | ||
+ | |||
+ | typedef struct SceShellSvcCustomAudioSubParams3 { | ||
+ | int param1; | ||
+ | int param2; | ||
+ | } SceShellSvcCustomAudioSubParams3; | ||
+ | |||
+ | typedef struct SceShellSvcCustomAudioParams { | ||
+ | void* params1; // optional params1 | ||
+ | SceSize params1Size; // size of optional params1 | ||
+ | void* params2; // optional params2 | ||
+ | SceSize params2Size; // size of optional params2 | ||
+ | void* params3; // optional params3 | ||
+ | SceSize params3Size; // size of optional params3 | ||
+ | void* params4; // optional params4 | ||
+ | SceSize params4Size; // size of optional params4 | ||
+ | } SceShellSvcAudioCustomParams; | ||
+ | |||
typedef struct SceShellSvcTable { | typedef struct SceShellSvcTable { | ||
void *pFunc_0x00; | void *pFunc_0x00; | ||
Line 38: | Line 67: | ||
void *pFunc_0x0C; | void *pFunc_0x0C; | ||
void *pFunc_0x10; | void *pFunc_0x10; | ||
− | int (* | + | int(*sceShellSvcAudioControl)(void *obj, int flag, SceShellSvcAudioCustomParams*, int numOfArg, int *pRes,SceShellSvcAudioCustomParams*, int numOfOut); |
+ | void *pFunc_0x18; | ||
+ | int(*sceShellSvcAsyncMethod)(void *obj, int asyncMethodId, .../* more args here */); | ||
// more ... | // more ... | ||
} SceShellSvcTable; | } SceShellSvcTable; | ||
</source> | </source> | ||
− | == | + | == SceShellSvc == |
+ | |||
+ | <pre> | ||
+ | 3.60: | ||
+ | SceShellSvc_1FAB9A1E | ||
+ | SceShellSvc_7CBF442B | ||
+ | SceShellSvc_8D4F9F2E | ||
+ | SceShellSvc_A0B067AC | ||
+ | SceShellSvc_B452A177 | ||
+ | SceShellSvc_BD4161B0 | ||
+ | SceShellSvc_D943CE15 | ||
+ | SceShellSvc_E91AEAD4 | ||
+ | SceShellSvc_FB03FBC9 | ||
+ | </pre> | ||
+ | |||
+ | === sceShellSvcGetSvcObj === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xB31E7F1C | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. Temp name was sceShellSvcGetTable. | ||
+ | |||
+ | <source lang="C">SceShellSvcTable** sceShellSvcGetSvcObj(void);</source> | ||
+ | |||
+ | == SceShellUtil == | ||
+ | |||
+ | <pre> | ||
+ | 3.60: | ||
+ | SceShellUtil_01141995 | ||
+ | SceShellUtil_03201F4B | ||
+ | SceShellUtil_0B066FAD | ||
+ | SceShellUtil_0E7EAD89 | ||
+ | SceShellUtil_29DB95D1 | ||
+ | SceShellUtil_3219A1C0 | ||
+ | SceShellUtil_48C7E8F8 | ||
+ | SceShellUtil_4A234ABB | ||
+ | SceShellUtil_5C5373B9 | ||
+ | SceShellUtil_6430C45E | ||
+ | SceShellUtil_6F730976 | ||
+ | SceShellUtil_71C21A8C | ||
+ | SceShellUtil_7A2CC043 | ||
+ | SceShellUtil_8CAAB23B | ||
+ | SceShellUtil_9A83AC60 | ||
+ | SceShellUtil_9B0EE918 | ||
+ | SceShellUtil_B67A0C68 | ||
+ | SceShellUtil_CE35B2B8 | ||
+ | SceShellUtil_D71D8245 | ||
+ | SceShellUtil_E701BA71 | ||
+ | SceShellUtil_EC5881A5 | ||
+ | SceShellUtil_F75C684D | ||
+ | SceShellUtil_F979148A | ||
+ | SceShellUtil_FB612CA8 | ||
+ | SceShellUtil_FD521712 | ||
+ | </pre> | ||
+ | |||
+ | === sceShellUtilSetSystemLanguage === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x040997D6 | ||
+ | |} | ||
+ | |||
+ | It takes about 5 seconds to apply. | ||
+ | |||
+ | <source lang="C">int sceShellUtilSetSystemLanguage(int languageId);</source> | ||
+ | |||
+ | === sceShellUtilSetBGMMode === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xB65B60CA | ||
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | // 0 to disable, 1 to enable BackGround Music | ||
+ | int sceShellUtilSetBGMMode(int mode); | ||
+ | </source> | ||
+ | |||
+ | === sceShellUtilSetBtIconMode === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x8B69AD27 | ||
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | // 0 to hide, 1 to show BlueTooth icon | ||
+ | int sceShellUtilSetBtIconMode(int mode); | ||
+ | </source> | ||
+ | |||
+ | === sceShellUtilSetAirplaneIconMode === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x96BBF91B | ||
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | // 0 to hide, 1 to show airplane icon | ||
+ | int sceShellUtilSetAirplaneIconMode(int mode); | ||
+ | </source> | ||
+ | |||
+ | === sceShellUtilSetTimeText === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x40DFAC6B | ||
+ | |} | ||
+ | |||
+ | Sets text in time display, UTF-16 (remains until reboot?). | ||
+ | |||
+ | <source lang="C">sceShellUtilSetTimeText(char* a1, char* text);</source> | ||
+ | |||
+ | === sceShellUtilShutdown === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x8F2F143D | ||
+ | |} | ||
+ | |||
+ | Another possible name is sceShellUtilRequestPowerOff. | ||
+ | |||
+ | <source lang="C">int sceShellUtilShutdown(int a1);</source> | ||
+ | |||
+ | === sceShellUtilReboot === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x636544FB | ||
+ | |} | ||
+ | |||
+ | Another possible name is sceShellUtilRequestReboot. | ||
+ | |||
+ | <source lang="C">int sceShellUtilReboot(int a1);</source> | ||
+ | |||
+ | === sceShellUtilRequestRebootWithError === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xBB54D049 | ||
+ | |} | ||
+ | |||
+ | It shows "A serious error has occured" message before rebooting. | ||
+ | |||
+ | <source lang="C">int sceShellUtilRequestRebootWithError(int safeModeType, int errorCode, int errorMessageType);</source> | ||
+ | |||
+ | === sceShellUtilTextClipboardGetUsedSize === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xD0DDEDBC | ||
+ | |} | ||
+ | |||
+ | This function returns size of the data that was written to clipboard with [[#sceShellUtilTextClipboardWrite]]. | ||
+ | |||
+ | <source lang="C">unsigned int sceShellUtilTextClipboardGetUsedSize(void);</source> | ||
+ | |||
+ | === sceShellUtilTextClipboardWrite === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xC4810C56 | ||
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | /* | ||
+ | data - pointer to the data to write | ||
+ | size - size of data to write. Must not exceed 0x1FFD. | ||
+ | */ | ||
− | + | === sceShellUtilTextClipboardRead === | |
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1B186905 | ||
+ | |} | ||
<source lang="C"> | <source lang="C"> | ||
− | int | + | /* |
− | + | data - pointer to the buffer where the read data will be placed | |
− | + | size - size of data to read | |
+ | [out] textlen - length actually read | ||
+ | */ | ||
+ | |||
+ | int sceShellUtilTextClipboardRead(void* data, SceSize size, SceSize *textlen); | ||
+ | </source> | ||
+ | |||
+ | int sceShellUtilTextClipboardWrite(const void* data, SceSize size); | ||
+ | </source> | ||
+ | |||
+ | === sceShellUtilInitEvents === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE8AD11EC | ||
+ | |} | ||
+ | |||
+ | === sceShellUtilRegisterEventHandler === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x7B5EDFE7 | ||
+ | |} | ||
+ | |||
+ | === sceShellUtilLock === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA9537233 | ||
+ | |} | ||
+ | |||
+ | === sceShellUtilUnlock === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x21A6CF54 | ||
+ | |} | ||
+ | |||
+ | == SceShellUtilUketorne == | ||
+ | |||
+ | <pre> | ||
+ | 3.60: | ||
+ | SceShellUtilUketorne_0C73C5E0 | ||
+ | SceShellUtilUketorne_154D9067 | ||
+ | SceShellUtilUketorne_156FEACF | ||
+ | SceShellUtilUketorne_A4C2ACFC | ||
+ | SceShellUtilUketorne_B98FC611 | ||
+ | SceShellUtilUketorne_FB551721 | ||
+ | SceShellUtilUketorne_FDC48BBE | ||
+ | </pre> | ||
+ | |||
+ | == SceShellUtilLaunchApp == | ||
+ | |||
+ | === sceShellUtilLaunchApp === | ||
+ | {| class="wikitable" | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x5372EEDB | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | <source lang="C">int sceShellUtilLaunchApp(void *some_struct);</source> | ||
− | + | == SceSvcCtrl == | |
− | + | <pre> | |
− | + | 3.60: | |
+ | SceSvcCtrl_077F8AF1 | ||
+ | SceSvcCtrl_683998F2 | ||
+ | SceSvcCtrl_8BEB8B7C | ||
+ | SceSvcCtrl_B21BE499 | ||
+ | </pre> | ||
− | + | == SceIpmi == | |
− | + | == Common == | |
− | + | sceShellSvcShutterSoundPlay can be used to play shutter sound only. | |
+ | <source lang="C"> | ||
+ | int sceShellSvcShutterSoundPlay(void){ | ||
+ | int arg_a3 = 0, arg_a5[2]; | ||
+ | arg_a5[0] = 0; | ||
+ | arg_a5[1] = 0; // sound type? | ||
+ | SceShellSvcTable *table = *sceShellSvcGetSvcObj(); | ||
+ | table->sceShellSvcAudioControl(ptr, 0x140000, &arg_a3, 1, arg_a5, 0, 0); | ||
return 0; | return 0; | ||
} | } |
Revision as of 21:00, 12 September 2022
Module
Version | World | Privilege |
---|---|---|
1.69-3.60 | Non-secure | User |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
3.60 | SceShellSvc | Non-secure | User | 0x773242C7 |
3.60 | SceShellUtil | Non-secure | User | 0xD2B1C8AE |
3.60 | SceShellUtilUketorne | Non-secure | User | 0xA2316143 |
3.60 | SceShellUtilLaunchApp | Non-secure | User | 0xA0FD0261 |
3.60 | SceSvcCtrl | Non-secure | User | 0x33E9B101 |
3.60 | SceIpmi | Non-secure | User | 0xF4E34EDB |
Types
typedef struct SceShellSvcCustomAudioSubParams1 {
int unk_00; // not used (set to 0)
int tracking1;
int tracking2;
} SceShellSvcCustomAudioSubParams1;
typedef struct SceShellSvcCustomAudioSubParams2 {
int flag;
int unk_04;
int unk_08;
int unk_0C;
} SceShellSvcCustomAudioSubParams2;
typedef struct SceShellSvcCustomAudioSubParams3 {
int param1;
int param2;
} SceShellSvcCustomAudioSubParams3;
typedef struct SceShellSvcCustomAudioParams {
void* params1; // optional params1
SceSize params1Size; // size of optional params1
void* params2; // optional params2
SceSize params2Size; // size of optional params2
void* params3; // optional params3
SceSize params3Size; // size of optional params3
void* params4; // optional params4
SceSize params4Size; // size of optional params4
} SceShellSvcAudioCustomParams;
typedef struct SceShellSvcTable {
void *pFunc_0x00;
void *pFunc_0x04;
void *pFunc_0x08;
void *pFunc_0x0C;
void *pFunc_0x10;
int(*sceShellSvcAudioControl)(void *obj, int flag, SceShellSvcAudioCustomParams*, int numOfArg, int *pRes,SceShellSvcAudioCustomParams*, int numOfOut);
void *pFunc_0x18;
int(*sceShellSvcAsyncMethod)(void *obj, int asyncMethodId, .../* more args here */);
// more ...
} SceShellSvcTable;
SceShellSvc
3.60: SceShellSvc_1FAB9A1E SceShellSvc_7CBF442B SceShellSvc_8D4F9F2E SceShellSvc_A0B067AC SceShellSvc_B452A177 SceShellSvc_BD4161B0 SceShellSvc_D943CE15 SceShellSvc_E91AEAD4 SceShellSvc_FB03FBC9
sceShellSvcGetSvcObj
Version | NID |
---|---|
3.60 | 0xB31E7F1C |
This is a guessed name. Temp name was sceShellSvcGetTable.
SceShellSvcTable** sceShellSvcGetSvcObj(void);
SceShellUtil
3.60: SceShellUtil_01141995 SceShellUtil_03201F4B SceShellUtil_0B066FAD SceShellUtil_0E7EAD89 SceShellUtil_29DB95D1 SceShellUtil_3219A1C0 SceShellUtil_48C7E8F8 SceShellUtil_4A234ABB SceShellUtil_5C5373B9 SceShellUtil_6430C45E SceShellUtil_6F730976 SceShellUtil_71C21A8C SceShellUtil_7A2CC043 SceShellUtil_8CAAB23B SceShellUtil_9A83AC60 SceShellUtil_9B0EE918 SceShellUtil_B67A0C68 SceShellUtil_CE35B2B8 SceShellUtil_D71D8245 SceShellUtil_E701BA71 SceShellUtil_EC5881A5 SceShellUtil_F75C684D SceShellUtil_F979148A SceShellUtil_FB612CA8 SceShellUtil_FD521712
sceShellUtilSetSystemLanguage
Version | NID |
---|---|
3.60 | 0x040997D6 |
It takes about 5 seconds to apply.
int sceShellUtilSetSystemLanguage(int languageId);
sceShellUtilSetBGMMode
Version | NID |
---|---|
3.60 | 0xB65B60CA |
// 0 to disable, 1 to enable BackGround Music
int sceShellUtilSetBGMMode(int mode);
sceShellUtilSetBtIconMode
Version | NID |
---|---|
3.60 | 0x8B69AD27 |
// 0 to hide, 1 to show BlueTooth icon
int sceShellUtilSetBtIconMode(int mode);
sceShellUtilSetAirplaneIconMode
Version | NID |
---|---|
3.60 | 0x96BBF91B |
// 0 to hide, 1 to show airplane icon
int sceShellUtilSetAirplaneIconMode(int mode);
sceShellUtilSetTimeText
Version | NID |
---|---|
3.60 | 0x40DFAC6B |
Sets text in time display, UTF-16 (remains until reboot?).
sceShellUtilSetTimeText(char* a1, char* text);
sceShellUtilShutdown
Version | NID |
---|---|
3.60 | 0x8F2F143D |
Another possible name is sceShellUtilRequestPowerOff.
int sceShellUtilShutdown(int a1);
sceShellUtilReboot
Version | NID |
---|---|
3.60 | 0x636544FB |
Another possible name is sceShellUtilRequestReboot.
int sceShellUtilReboot(int a1);
sceShellUtilRequestRebootWithError
Version | NID |
---|---|
3.60 | 0xBB54D049 |
It shows "A serious error has occured" message before rebooting.
int sceShellUtilRequestRebootWithError(int safeModeType, int errorCode, int errorMessageType);
sceShellUtilTextClipboardGetUsedSize
Version | NID |
---|---|
3.60 | 0xD0DDEDBC |
This function returns size of the data that was written to clipboard with #sceShellUtilTextClipboardWrite.
unsigned int sceShellUtilTextClipboardGetUsedSize(void);
sceShellUtilTextClipboardWrite
Version | NID |
---|---|
3.60 | 0xC4810C56 |
/*
data - pointer to the data to write
size - size of data to write. Must not exceed 0x1FFD.
*/
=== sceShellUtilTextClipboardRead ===
{| class="wikitable"
! Version !! NID
|-
| 3.60 || 0x1B186905
|}
<source lang="C">
/*
data - pointer to the buffer where the read data will be placed
size - size of data to read
[out] textlen - length actually read
*/
int sceShellUtilTextClipboardRead(void* data, SceSize size, SceSize *textlen);
int sceShellUtilTextClipboardWrite(const void* data, SceSize size); </source>
sceShellUtilInitEvents
Version | NID |
---|---|
3.60 | 0xE8AD11EC |
sceShellUtilRegisterEventHandler
Version | NID |
---|---|
3.60 | 0x7B5EDFE7 |
sceShellUtilLock
Version | NID |
---|---|
3.60 | 0xA9537233 |
sceShellUtilUnlock
Version | NID |
---|---|
3.60 | 0x21A6CF54 |
SceShellUtilUketorne
3.60: SceShellUtilUketorne_0C73C5E0 SceShellUtilUketorne_154D9067 SceShellUtilUketorne_156FEACF SceShellUtilUketorne_A4C2ACFC SceShellUtilUketorne_B98FC611 SceShellUtilUketorne_FB551721 SceShellUtilUketorne_FDC48BBE
SceShellUtilLaunchApp
sceShellUtilLaunchApp
Version | NID |
---|---|
3.60 | 0x5372EEDB |
This is a guessed name.
int sceShellUtilLaunchApp(void *some_struct);
SceSvcCtrl
3.60: SceSvcCtrl_077F8AF1 SceSvcCtrl_683998F2 SceSvcCtrl_8BEB8B7C SceSvcCtrl_B21BE499
SceIpmi
Common
sceShellSvcShutterSoundPlay can be used to play shutter sound only.
int sceShellSvcShutterSoundPlay(void){
int arg_a3 = 0, arg_a5[2];
arg_a5[0] = 0;
arg_a5[1] = 0; // sound type?
SceShellSvcTable *table = *sceShellSvcGetSvcObj();
table->sceShellSvcAudioControl(ptr, 0x140000, &arg_a3, 1, arg_a5, 0, 0);
return 0;
}