SceShellSvc: Difference between revisions
CelesteBlue (talk | contribs) No edit summary |
CelesteBlue (talk | contribs) No edit summary |
||
Line 340: | Line 340: | ||
== Common == | == Common == | ||
=== sceShellSvcShutterSoundPlay usage === | |||
sceShellSvcShutterSoundPlay can be used to play shutter sound only. | sceShellSvcShutterSoundPlay can be used to play shutter sound only. | ||
<source lang="C"> | <source lang="C"> | ||
int sceShellSvcShutterSoundPlay(void){ | int sceShellSvcShutterSoundPlay(void) { | ||
int arg_a3 = 0, arg_a5[2]; | int arg_a3 = 0, arg_a5[2]; | ||
arg_a5[0] = 0; | arg_a5[0] = 0; | ||
Line 353: | Line 355: | ||
} | } | ||
</source> | </source> | ||
=== SceTextClipboardStorage usage === | |||
SceTextClipboardStorage is a cached memory block with usable size of 0x1FFD bytes allocated by SceShellSvc on startup. Normally you would access this storage with clipboard sysmodule, however it can also be accessed directly with [[SceShellSvc]] functions. This memory can be accesed from any part of the system and is managed by [[SceShell]]. For example, you can write to it in one application and access written data from the other. Or you can write to it in application and access written data from a plugin. | |||
[[Category:Modules]] | [[Category:Modules]] |
Revision as of 21:04, 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.
/* safeModeType - sets type of safemode to reboot into, 0 to reboot normally errorCode - error code to display in the message errorMessageType - ex. 0 "Contact technical support" */ 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 usage
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; }
SceTextClipboardStorage usage
SceTextClipboardStorage is a cached memory block with usable size of 0x1FFD bytes allocated by SceShellSvc on startup. Normally you would access this storage with clipboard sysmodule, however it can also be accessed directly with SceShellSvc functions. This memory can be accesed from any part of the system and is managed by SceShell. For example, you can write to it in one application and access written data from the other. Or you can write to it in application and access written data from a plugin.