VSH

From PS3 Developer wiki
Jump to navigation Jump to search

VSH is the internal name used by Sony for the VShell aka VirtualShell. It then loads up the XMB you know.XrossMediaBar (XMB). This, is a user space executable (vsh.self), loaded by lv2_kernel/sys_init_osd.

from here several other functions/syscalls to other modules are made, e.g. lv2 (SELF decryption), lv1 (Secure_RTC, Storage_Manager, Gelic_Device, BD_Drive) etc.

not much is documented (yet) about this module. Please fill in where possible.

Modes

possible arguments to pass when executing vsh.self:

  • --mode=gametool
  • --mode=gametool2
  • --arcade=true

Offsets

Function 3.55 3.41 3.15 Notes
- - - - -
sub_308EE4 check_Is_Act_Dat_for_This_Acc_ID

Exports

Export Library Export NID Notes Usage
sys_io - - -
sys_fs - - -
sys_fs 0x18DD4604 cellFsOpen2 -
sys_fs_ps2disc 0x8160A811 switches /dev_ps2disc(1) mount?
sysConsoleId - -
sysConsoleId 0xF220F751 Get ConsoleID sysConsoleId_F220F751(int8_t* buff)
vsh - -
vsh 0xF48562D cellSsAimIsCEX
vsh 0x145991B4 cellSsAimIsArcade
vsh 0x172B05CD update_mgr_write_eprom syscall
vsh 0x1B890AD2 update_mgr_get_token_seed syscall
vsh 0x1F80E287 cellSsAimIsTool
vsh 0x2C563C92 update_mgr_read_eprom syscall
vsh 0x3231E012 vtrm_Decrypt_Master syscall
vsh 0x349F1535 update_mgr_set_token syscall
vsh 0x3B4A1AC4 AIM GetDeviceId syscall
vsh 0x3F062337 AIM GetPsCode syscall
vsh 0xE44F29F4 cellFsUtilMount syscall
vsh 0xE7C34044 retrieves vsh memory container by "id" 0=game,1=app,2=debug,3=fg, 4=bg sys_memory_container_t vsh_E7C34044(int id)
vsh 0xE932A8C0 reboot and show minimum version
char can be "text whatever you like", no check etc.
int vsh_E932A8C0(char * )
vsh 0xFF4A1633 cellFsUtilMount syscall
vsh 0x7D73E7CD inflate_init
vsh 0x4DB8DD87 inflate_end
vsh 0x20215547 inflate_buffer
vsh 0x1C68CC75 inflate
sdk - -
sdk 0xB5877BBF cellAvsetGetMonitorInformation
sdk 0x5FAFE92B cellCryptoPuSha1Hash
sdk 0xB45387CD AesCbcCfb128Decrypt
sdk 0x55ACAB8A sha1_init
sdk 0x831E89EE sha1_update
sdk 0x3CABD075 sha1_final
sdk 0x4484A101 sha1_hmac_update
sdk 0x547B602C sha1_hmac_init
sdk 0x300B99F2 sha1_hmac_final
sdk 0x74A2A1FE sha1_hmac_buffer
sdk 0x68B630D5 aes_omac_mode1
sdk 0x4C751D97 unmap_port_from_pad int (int port_no, int pad_no), e.g. (0, 0) unmap first pad
sdk 0xCF03F47A map_port_to_pad int (int port_no, int pad_no), e.g. (2, 0) map first pad to port 3
sdk 0xA33FC21C unmap_port_from_keybord int (int port_no, int kb_no)
sdk 0x650A537E map_port_to_keybord int (int port_no, int kb_no)
sdk 0x2D3B4E2B unmap_port_from_mouse int (int port_no, int mouse_no)
sdk 0x5C06471E map_port_to_mouse int (int port_no, int mouse_no)
paf - -
paf 0xBB04609B GetSparkInfo
paf 0x65BE85B3 _UnloadView _paf_65BE85B3(char * plugin_name,0,0)
paf 0x350B4536 Job_Start
paf 0xFE0C1F10 Job_Queue
paf 0xA1DC401 sets Interface from plugin uint32_t SetInterface(unknown, uint32_t identifier, void * ptr_structure)
paf 0x23AFB290 gets Interface from plugin, should allow calling its exports/funcs uint32_t plugin->GetInterface(uint32_t return from paf_F21655F3, uint32_t identifier)
paf 0x3A8454FC finds/gets Texture resource Example: out: uint32_t* texture, return from paf_F21655F3, "tex_notification_info"
paf 0x50CDB465 finds/gets Sound resource uint32_t paf_50CDB465(uint32_t plugin /*paf_F21655F3*/, const char* sound)
paf 0x3CEC3833 sets up a plugin widget ? (page_...)
paf 0x794CEACB finds widget in a plugin Example: plugin->FindWidget(return from paf_F21655F3, "page_autooff_guide")
paf 0x89B67B9C gets localized string text from plugin resource (Different strings are returned depending on the system language) Example: (w)char (paf_F21655F3("system_plugin"), "msg_signed_out")
paf 0xF21655F3 finds a loaded plugin uint32_t paf::View::Find(const char* plugin) Example: uint32_t paf::View::Find("system_plugin")
paf 0xCF068D31 load system plugin void paf_CF068D31(int32_t* /* prx_id ? */, const char* path, int /*ignored*/, int /*0*/, const sys_memory_container_t *mem_container)
paf 0x546B3D02 returns "PhWidget" const char* paf_546B3D02()
paf 0x41BBFE5E returns "PhScene" const char* paf_41BBFE5E()
paf 0x10DEDCC7 returns "PhPlane" const char* paf_10DEDCC7()
paf 0xE36C18F5 returns "PhPlaneDiv" const char* paf_E36C18F5()
paf 0x24A5BD6B returns "PhButton" const char* paf_24A5BD6B()
paf 0xB7DFCE90 returns "PhText" const char* paf_B7DFCE90()
paf 0x9207F4 returns "PhScroll" const char* paf_9207F4()
paf 0xBA6D149A returns "PhLabelPrim" const char* paf_BA6D149A()
paf 0xC88CA4B2 returns "PhLevelMeter" const char* paf_C88CA4B2()
paf 0xE801C345 returns "PhProgress" const char* paf_E801C345()
paf 0xBF66BF2D returns "PhCheckBox" const char* paf_BF66BF2D()
paf 0x703117AD returns "PhXmBar" const char* paf_703117AD()
paf 0x4FF7B8A9 returns "PhXmList" const char* paf_4FF7B8A9()
paf 0xC84FD77B returns "PhXmItem" const char* paf_C84FD77B()
paf 0x4C36ABBB returns "PhItemSpin" const char* paf_4C36ABBB()
paf 0xCA9160F6 returns "PhNumSpin" const char* paf_CA9160F6()
paf 0x59A11C82 returns "PhNumSpin" const char* paf_59A11C82()
paf 0xD64EDE7C returns "PhList" const char* paf_D64EDE7C()
paf 0xF7630798 returns "PhInfoList" const char* paf_F7630798()
paf 0xA98865F8 returns "PhMenuList" const char* paf_A98865F8()
paf 0x90F4F801 returns "PhCheckBoxList" const char* paf_90F4F801()
paf 0xDDD4ACF6 returns "PhLabelText" const char* paf_DDD4ACF6()
paf 0x545D47A2 returns "PhClock" const char* paf_545D47A2()
paf 0x3806365F returns "PhIPAddr" const char* paf_3806365F()
paf 0xB93AFE7E Play Resource Sound (located in .rco) void paf_B93AFE7E(uint32_t plugin, const char* sound, float, int)

Example: paf_B93AFE7E( paf_F21655F3("system_plugin"), "snd_trophy", 1, 0)

paf 0x11E195B3 Finds Resource Object (located in .rco) void* paf_11E195B3(uint32_t plugin, const char* object)

Example: paf_B93AFE7E( paf_F21655F3("system_plugin"), "page_notification")

vshcommon - -
vshcommon 0x7F5C551B System_plugin#1_Interface func 11 vshcommon_7F5C551B(int * texture_dialog, int* texture_dialog_shadow, wchar * infotext1, wchar * infotext2, int)
vshcommon 0x94F43BE7 System_plugin#1_Interface func 12 vshcommon_94F43BE7(uint8 )
vshcommon 0xF9E43DA2 returns localized string of "msg_ok"
vshcommon 0xCCD2C319 returns localized string of "msg_cancel"
vshcommon 0x746C5F88 returns localized string of "msg_option"
vshcommon 0xF995E53F returns localized string of "msg_back"
vshcommon 0x26F18EDF returns localized string of "msg_enter"
vshcommon 0xE9E8DA5 returns localized string of "msg_no"
vshcommon 0xB8E256D7 returns localized string of "msg_yes"
vshcommon 0x79A562D5 System_plugin#1_Interface func 25 circle_cross
vshcommon 0x75DC9C2D System_plugin#1_Interface func 26 cross_circle
vshcommon 0x60DEE5B3 System_plugin#1_Interface func 27 triangle
vshcommon 0xF7A67D49 System_plugin#1_Interface func 28 rectangle
vshcommon 0x2438F1A4 System_plugin#1_Interface func 21 - anim_cross_circle_show_hide
vshcommon 0x9BD8429E System_plugin#1_Interface func 22 - anim_cross_circle_show_hide
vshcommon 0xE011E7D0 System_plugin#1_Interface func 23 - anim_triangle_show_hide
vshcommon 0x73F85259 System_plugin#1_Interface func 24 - anim_rectangle_show_hide vshcommon_73F85259(uint8 )
vshcommon 0x16106ACD returns "impose_plugin" interface 1 uint vshcommon_16106ACD()
vshcommon 0x8B2110D5 reads boot_history.dat
vshcommon 0x9A43140 adds info to /pushlist/patch.dat
vshcommon 0x9EA67737 vsh::ws_boot_history::Set() { uint8 type, char TitleId [0x1F] }
titleid to boot_history.dat (creates if not present)
vshcommon 0xCC2C67F2 reads /pushlist/patch.dat vshcommon_CC2C67F2(int* count,uint8_t buf[0x680])
vshcommon 0xA20E43DB Displays a notification in XMB with texture void(*vshcommon_A20E43DB)(int32_t, const char* eventName, int32_t, int32_t* texture, int32_t*, const char*, const char*, float, const wchar_t* text, int32_t, int32_t, int32_t);

int dummy = 0; vshcommon_A20E43DB(0, const char* eventName, int32_t, int32_t* texture /*paf_3A8454FC*/, &dummy, "", "", 0f, L"notification", 0, 0, 0)

x3 - -
x3 0x16FA740A xCore_GetInterface() uint32_t* interface xCore_GetInterface()
x3 0x11409ED3 xRegistryGetDefaultInstance int xRegistryGetDefaultInstance (1, &handle)
x3 0x9C246A91 xBDVDGetInstance
x3 0xCB1D791D Obtains SS Key
x3 0xECACA8AD xRegistry SetValue Example: int SetValue(handle, "/setting/categoryVersion", 0,0,0)
mms_db 0x8EC9A2A7 xCB_Interface::GetInterface
vshnet - -
vshnet 0x89801F5D sceNpC7yTusDestroyTransaction
vshnet 0xE806058 sceNpC7yTusCreateTransaction
vshnet 0xE2201D8B sceNpC7yTusEnd
vshnet 0xF9884100 sceNpC7yTusInit
vshnet 0x122AF93C sceNPC7yLookupTssImageResult
vshnet 0x9012A265 sceNpC7yLookupTssImageRequest?
vshnet 0xEEF8AC4B sceNpC7yLookupAvatarImageResult?
vshnet 0x11823D97 sceNpC7yLookupAvatarImageRequest?
vshnet 0xF4F94F46 sceNpC7yLookupUserProfileResult?
vshnet 0x3F680668 sceNpC7yLookupUserProfileRequest?
vshnet 0x9EA2D869 sceNpC7yLookupNpIdResult?
vshnet 0xF7A88701 sceNpC7yLookupNpIdRequest?
vshnet 0xEC969F67 sceNpC7yLookupDestroyTransaction?
vshnet 0x8BD9F160 sceNpCc7yLookupCreateTransaction?
vshnet 0xB45F6C17 sceNpC7yLookupAbort? int sceNpC7yLookupAbort( transid)
vshnet 0x66EA9546 sceNpC7yLookupInit?
vshnet 0xF02E64BF sceNpC7yLookupEnd?
vshnet 0xD79D5840 sceNpC7yScoreGetGameDataResult?
vshnet 0xF5FBFB50 sceNpC7yScoreGetGameDataRequest?
vshnet 0xF67C877 sceNpC7yScoreRecordGameDataRequest?
vshnet 0x250E633D sceNpC7yScoreRecordScoreResult? int sceNpC7yScoreRecordScoreResult( int transid, int * RankNumber )
vshnet 0x42332FFA sceNpC7yScoreGetBoardInfoResult? int sceNpC7yScoreGetBoardInfoResult (int transid, uint8_t ScoreBoardInfo [ ])
vshnet 0xFC015E62 sceNpC7yScoreGetBoardInfoRequest? int sceNpC7yScoreGetBoardInfoRequest( int transid, uint8_t SelfNpId [ ], uint8_t TitleId [0xC], int ScoreBoardId )
vshnet 0xCC014646 sceNpC7yScoreDestroyTransaction? int sceNpC7yScoreDestroyTransaction (int transid )
vshnet 0x372E972A sceNpC7yScoreFreeTransactionResource? int sceNpC7yScoreFreeTransactionResource ( int transid )
vshnet 0xDF1FF79F sceNpC7yScoreCreateTransaction? int sceNpC7yScoreCreateTransaction(uint8_t psHandle[0x14], uint8_t ScorePassphrase [0x80] )
vshnet 0x3F59F7B6 sceNpC7yScoreAbort? int sceNpC7yScoreAbort ( int transid)
vshnet 0x71DF362C sceNpC7yScoreEnd? int sceNpC7yScoreEnd()
vshnet 0x56779FBD sceNpC7yScoreInit? / SceNpRankingVshInit? int sceNpC7yScoreInit(void * callback, uint8_t np_debug_flag)
vshnet 0xCF725EB1 sceNpInstallerRegetSigninTicket int sceNpInstallerRegetSigninTicket (0)
vshnet 0x7084A801 sceNpCommerceSetDataFlagFinish int sceNpCommerceSetDataFlagFinish ( int req_id )
vshnet 0x572A4D1D sceNpSommerceSetDataFlagStart int sceNpSommerceSetDataFlagStart ( ctx_id, licensee_id, dataflagContainer, dataflag_num, * req_id )
vshnet 0xFF500259 sceNpCommerceGetDataFlagFinish int sceNpCommerceGetDataFlagFinish ( int req_id )
vshnet 0x15910AE7 sceNpCommerceGetDataFlagState int sceNpCommerceGetDataFlagState ( int req_id, dataflagContainer, dataflag_num )
vshnet 0x13D56523 sceNpCommerceGetDataFlagAbort int sceNpCommerceGetDataFlagAbort ( int req_id )
vshnet 0x854FE623 sceNpCommerceGetDataFlagStart int sceNpCommerceGetDataFlagStart ( ctx_id, licensee_id, dataflag [0x10] , dataflag_num, * req_id )
vshnet 0xE2A0CB65 sceNpCommerceGetProductCategoryResult int sceNpCommerceGetProductCategoryResult ( int req_id, uint8_t result_buf_size [0x10] )
vshnet 0xE84BBCAF sceNpCommerceGetProductCategoryFinish int sceNpCommerceGetProductCategoryFinish ( int req_id )
vshnet 0xD297EF28 sceNpCommerceGetProductCategoryAbort int sceNpCommerceGetProductCategoryAbort ( int req_id )
vshnet 0x3E20181D sceNpCommerceGetProductCategoryStart int sceNpCommerceGetProductCategoryStart ( int ctx_id, int category_id, int lang_code, int * req_id )
vshnet 0x2A4C99A6 sceNpCommerceDestroyCtx int sceNpCommerceDestroyCtx (ctx_id)
vshnet 0x98340E57 sceNpCommerceCreateCtx int sceNpCommerceCreateCtx ( int version, uint8_t npId[0x24], void * callback, int * arg,int * ctx_id, int (1) )
vshnet 0x594266BE sceNpBasicGetInitialPresence
vshnet 0xEF85527 sceNpSignalingAddExtendedHandler int sceNpSignalingAddExtendedHandler (ctx_id, 1)
vshnet 0xFC663F7F sceNpSignalingGetPeerNetInfoResult int sceNpSignalingGetPeerNetInfoResult ( ctx_id, req_id, uint8_t netinfo[0x1C], 1)
vshnet 0x2B2E098F sceNpSignalingGetLocalNetInfo int sceNpSignalingGetLocalNetInfo ( ctx_id, uint8_t netinfo[0x1C], 1)
vshnet 0xE5CBDF3D sceNpSignalingGetConnectionInfo int sceNpSignalingGetConnectionInfo ( ctx_id, conn_id, code, * rtt/bandwith/addr/port/packet_loss, 1 )
vshnet 0x995D1D2F sceNpSignalingGetConnectionStatus int sceNpSignalingGetConnectionStatus ( ctx_id, conn_id, int * conn_status,int * peer_addr,uint16_t * peer_port, 1 )
vshnet 0x158032C9 sceNpSignalingDestroyCtx int sceNpSignalingDestroyCtx ( ctx_id, 1)
vshnet 0x8478A915 sceNpMatchingGetRoomMemberListLocal int sceNpMatchingGetRoomMemberList ( ctx_id, uint8_t opt[0x1C], int * size, uint8_t roomStatus[ ], int (1) )
vshnet 0x3139980 sceNpMatchingGetRoomMemberList int sceNpMatchingGetRoomMemberList ( ctx_id, uint8_t opt[0x1C], req_id, int (1) )
vshnet 0x24B26C3F sceNpMatchingLeaveRoom int sceNpMatchingLeaveRoom ( ctx_id, uint8_t opt[0x1C], req_id, int (1) )
vshnet 0x14211FB9 sceNpMatchingDestroyCtx int sceNpMatchingDestroyCtx ( ctx_id, 1 )
vshnet 0x4C9F0992 sceNpManagerGetPsHandle int sceNpManagerGetPsHandle ( int (0), uint8_t psHandle[0x14]
vshnet 0x4E276F38 sceNpManagerGetSubjectRegion int sceNpManagerGetSubjectRegion ( int (0), uint8_t subjectRegion[4]
vshnet 0x58AB86D8 sceNpManagerGetSubjectStatus int sceNpManagerGetSubjectStatus ( int (0), uint8_t subjectStatus[4]
vshnet 0x7A9421D8 sceNpManagerGetStatusDuration int sceNpManagerGetStatusDuration ( int (0), uint64_t * statusDuration
vshnet 0x4216DF9F sceNpManagerRegisterCallbackExt int sceNpManagerRegisterCallbackExt ( void * callback, void * arg)
vshnet 0x572FFDFB sceNpManagerGetSubHandle int sceNpManagerGetSubHandle (int (0), uint8_t subHandle[0x34])
vshnet 0x2C393B42 sceNpManagerUnregisterCallbackExt int sceNpManagerUnregisterCallbackExt ()
vshnet 0x4DD12D0C sceNpManagerGetUserIconURL int sceNpManagerGetUserIconURL ( int (0), uint8_t icon[0x80] )
vshnet 0x99666F31 sceNpManagerGetEnvnamae int sceNpManagerGetEnvnamae ( uint8_t envname[0x0F] )
vshnet 0x319E53BD sceNpManagerLoadCachedInfo int sceNpManagerLoadCachedInfo ( int userId, uint8_t cachedInfo[0xF8] )
vshnet 0x9EF14F7C sceNpManagerIsPlus int attr_is_plus sceNpManagerIsPlus ( int (0) )
vshnet 0xC3417866 sceNpManagerGetTicketParam
vshnet 0x788759C6 sceNpManagerGetSigninTicket sceNpManagerGetSigninTicket ( int (0), uint8_t signinTicketData[], int * signinTicketSize
vshnet 0x1FA25660 sceNpManagerSubSignout int sceNpManagerSubSignout (int (0), uint8_t npId [0x24]
vshnet 0xB79B2FE0 sceNpManagerGetNetworkTime int sceNpManagerGetNetworkTime (int (0), uint8_t casualClock[8])
vshnet 0xFACC5962 sceNpManagerGetMyLanguages int sceNpManagerGetMyLanguages (int (0), uint8_t myLang[0x10]
vshnet 0xFC7303C5 sceNpManagerGetNpId int sceNpManagerGetNpId ( int (0), uint8_t npId[0x24]
vshnet 0x1D555F5F sceNpUpdateClockStart
vshnet 0x50EE5602 gets updatelist txt and compares version
vshnet 0x731E546F prints Firmware version ("%02d.%02d) int vshnet_731E546F(out: const char*)
vshnet 0xEBEA23A1 sceNetHttpXmlConsoleInfoBitOpe int sceNetHttpXmlConsoleInfoBitOpe(0x190, xml?,1,1)
vshnet 0xA5E88D4E checks if hdd has been replaced
vshmain - -
vshmain 0x624D3AE returns game process id
vshmain 0xF32CEC81 loadRegistryNetautoDlFlag int loadRegistryNetautoDlFlag ( void )
vshmain 0xB84B751A saveRegistryNetautoDlFlag saveRegistryNetautoDlFlag ( uint8 )
vshmain 0xAE35CF2D Executes Action based on Input (More Info: XMB Plugin XMM0 Interface 23)

Example:

"http://www.psdevwiki.com",0
"copy:device",1 
"regcam:reg?",1
int vshmain_AE35CF2D(char *, int value)
vshmain 0xD609A2F6 shows up XMB Login?
vshmain 0x85CB2261 sys_event_port_send using static sys_event_port_t int vshmain_85CB2261(uint64_t data1, uint64_t data2, uint64_t data3)
vshmain 0x71EC82E sys_event_port_send using static sys_event_port_t int vshmain_71EC82E(uint64_t data1, uint64_t data2, uint64_t data3)
vshmain 0xF3F75BE sysutil::BeginService
vshmain 0x505FA917 cxmlutil::GetFile
vshmain 0x7606AF6F VersionFile::Get
vshmain 0x981D7E9F Gets ScreenShot Flag int vshmain_981D7E9F()
vshmain 0x6D5FC398 Show Ingame XMB int vshmain_6D5FC398(0 (int dev_type?), 0 (int port_num?), 0 (int intr_type?))
vshmain 0x5C3E01A1 End Ingame XMB void vshmain_5C3E01A1(void)
vshmain 0xBC00D5EF cellSysutilSharedMemoryFree int vshmain_BC00D5EF(0 /*ignored*/, sys_addr_t start_addr, uint64_t mode /* 0x200 (unmap) or 0x400 (unmap and free) */)
vshmain 0x51E7CC21 cellSysutilSharedMemoryAlloc
vshmain 0x23DC28E8 cellSysutilEventPortSend int vshmain_23DC28E8(uint64_t data1, uint64_t data2, uint64_t data3, bool)
vshmain 0xCFAD36DE Creates an (empty) XML-Document for VSH Service/Process Communication [[1]]. The size of this struct is 0x74 void vshmain_CFAD36DE(void* buff)
vshmain 0x2CD62587 Sets Service ID/Name on XML Document void vshmain_2CD62587(void * xml_buff, char * service_name)
vshmain 0x6BA1D72F Creates an Element on an XML Document int create_element(void * xml_buff, char * Element_name, int Element_value, int * unk)
vshmain 0xE77FAFB5 cxmlutil::SetInt(void * buff, char * element_name, int value)
vshmain 0x134034CE "Seek" int Seek(void * buff, char * element_name, int * value)
vshmain 0xB172E9CB (response)_doc.WriteToBuffer
vshmain 0xA2720DF2 (write_packet)
vshtask - -
vshtask 0x668E3C94 some RTC Alarm Register int vshtask_668E3C94(char * app_id?, uint8_t [0x4C])
vshtask 0x166551C5 RTC Alarm Unregister int vshtask_166551C5(char * app_id)
vshtask 0xA02D46E7 Displays a notification in XMB int vshtask_A02D46E7(0 /*ignored*, "your text" ) -> calls vshcommon_A20E43DB with texture "tex_notification_info"
cellHttp - -
cellHttp 0x8FC281F7 cellHttpCookieFlush
cellHttp 0xDCDF003A cellHttpAuthCacheFlush

To help documenting offsets+exports, you can use this dumper tool for vsh (actually,no need to dump anymore).

Memory Containers

id name
0 game
1 app
2 debug
3 fg (foreground, in-game-XMB menu, in-game-osk)
4 bg (background - music playback/decode, recording, imejp (service type=1), avc2)

VSH Service Communication

PARA - System Parameters Utility
MSGD - Message Dialog Utility
NTCL - netcl Utility
SAVE - Save Data Utility (surf autosave) 
USRI - User Information Utility
GAME - Game Utility
GDAT - Game Data Utility
GDTL - 
GDAM - Game Data-Mode Utility
GEXE - Game Execution Utility
GPS1 - Game PS1 Rumble
OSKD - On Screen Keyboard Utility
NPMG - NP Manager Utility
NPMT - NP Matching Utility
NMT2 - NP Matching 2 Utility
NPSN - NP Signaling Utility
NPBA - NP Basic Utility
NPTR - NP Trophy
NPFL - NP Friendlist Utility
NPCU - NP Commerce Registration?
NPDR - NP DRM Utility
NPCM - NP Commerce Utility
NPC2 - NP (Ingame) Commerce 2 Utility
NPIN - NP Install (Commerce)
WBRW - WebBrowser Utility
SYSC - System (Device/Pad) Configuration
NPRA - NP Score/Ranking Utility
NPLU - NP LookUp
NPUS - NP User Storage
STDT - Data Copy Utility
PHEX - Photo Export
PHE2 - Photo Export (Utility 2)
PHIM - Photo Import
PHDE - Photo Decode
BGDL - Background Download Service
IMEJ - Input Method Engine Japanese
MUSC - Music Playback
MUDE - Music Decode
VDPL - Video Player
DTCP - DTCP IP Service
DPSN - Decrypt PSN Video Service
SRCH - Search
PNSU - Photo Network Sharing
PRIN - Printer Utility
AVCH - Audio/Video-Chat
AVC2 - AVC2 Utility
RMTP - Remote Playback
SUBD - SubDisplay Utility
RECO - Recording Utility
APNT - (AP Plugin)
VDUP - Video Upload
GUPD - Game Upate Check
RTCA - RTC Alarm
SSHT - ScreenShot
ATHD - Vsh Authentication Dialog
EULA - 
COMB - Combo Playing(Cross Controller)
PESM -
CHAT - System Chat
NSNS - Facebook Api

Notification Window Textures

Notification Window Textures (inside dev_flash/vsh/resource/system_plugin.rco)

All the icons are 100x100 pixels size

  • tex_notification_caution
  • tex_notification_friend
  • tex_notification_headset
  • tex_notification_info
  • tex_notification_keypad
  • tex_notification_mediaserver
  • tex_notification_music
  • tex_notification_psbutton_insensitive
  • tex_notification_settings
  • tex_notification_trophy_bronze
  • tex_notification_trophy_gold
  • tex_notification_trophy_platinum
  • tex_notification_trophy_silver

The other texture used by notification window is the frame of the notification window itself (called "tex_notification" with a size of 64x64 pixels), this frame is scalated in width automatically by XMB (to make the frame fit the width of the text that is displayed inside the window), and is posible to reskin the frame using a Theme

  • Any texture from any plugin can be used actually. i.e.: tex_common_dialog. Would it be possible to create our own textures?
    • Sure, there is no security check over .RCO's (resource containers), what is not clear is if is posible to load a texture with a custom name from a .RCO with a custom name (e.g: tex_myicon from a file named: myresources.rco)... Initially .SPRX needs to be "indexed" by VSH to be available, and .RCO's are dependant of .SPRX... but in case of the resources is posible all are available --Sandungas (talk) 19:22, 20 May 2014 (EDT)

Display Buffers

VSH uses 2 of 8 available display buffers. Information about them can be aquired by vsh plugins using this code snippet: [[2]]
In FW 4.46 DEX the buffer info looks like this (for 1920x1080):

Type This
GCMBUFINFO 0
address: 0xdc80000
pitch: 0x2000
width: 0x780
height: 0x438

GCMBUFINFO 1
address: 0xe500000
pitch: 0x2000
width: 0x780
height: 0x438

Settings

VSH contains an array of structs which describe the settings. It includes index, name, default value and some other values.

struct Setting_s
{
  int32_t index;
  const char* name;
  int32_t unk0;
  int8_t unk1;
  union
  {
     int32_t integer;
     const char* string;
  }default;
  int32_t type;
  int32_t unk2;
};

The first element of this array describes the password setting. Use this script to label all of the settings. link

.long 1                 # index
.long aSettingParen_4   # name # "/setting/parental/passwordNumber"
.long 1                 # unk0
.byte 1                 # unk1
.byte 0, 0, 0
.long a0000_1           # default # "0000"
.long 4                 # type
.long 0x28              # unk2