VSH: Difference between revisions
m (→Exports) |
|||
(258 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
VSH is the internal name used by Sony for the VShell aka VirtualShell. It then loads up the XMB you know.[ | VSH is the internal name used by Sony for the VShell aka VirtualShell. It then loads up the XMB you know. [[XMB|XrossMediaBar (XMB)]]. This, is a userspace executable (vsh.self), loaded by lv2_kernel/sys_init_osd. | ||
from here several other functions/syscalls to other modules are made, e.g. lv2 ([ | from here several other functions/syscalls to other modules are made, e.g. lv2 ([[Talk:SELF_File_Format_and_Decryption|SELF decryption]]), lv1 ([[Hypervisor_Reverse_Engineering#0x3000_-_Secure_RTC|Secure_RTC]], [[Hypervisor_Reverse_Engineering#0x5000_-_Storage_Manager|Storage_Manager]], [[Hypervisor_Reverse_Engineering#Gelic_Device|Gelic_Device]], [[Hypervisor_Reverse_Engineering#BD_Drive|BD_Drive]]) etc. | ||
not much is documented (yet) about this module. Please fill in where possible. | not much is documented (yet) about this module. Please fill in where possible. | ||
Line 21: | Line 21: | ||
=== Exports === | === Exports === | ||
[[VSH Exports]] | |||
=== Imports === | |||
[[VSH Imports]] | |||
===Memory Containers=== | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! | ! Type/Id !! Name !! Size !! Usage | ||
|- | |- | ||
| | | 0 || game || dex: 426.770.432 / cex: 223.346.688 Bytes || | ||
|- | |- | ||
| | | 1 || app || 223.346.688 Bytes || | ||
Spurs (Tiff, Png, Jpg) | |||
[[autodownload_plugin]] | |||
[[custom_render_plugin]] | |||
[[dlna_plugin]] | |||
fchk (libfs_utility2) | |||
[[game_ext_plugin]] | |||
[[impose_plugin]] | |||
libfs_utility_init | |||
vshmain_util | |||
mms | |||
libsre libadec | |||
libac3dec | |||
paf_ext | |||
qglbase | |||
vshmain_ext | |||
[[msgdialog_plugin]] | |||
msmw1 | |||
msmw2 | |||
[[podl_plugin]] | |||
[[premo_plugin]] | |||
[[software_update_plugin]] | |||
[[soundvisualizer_plugin]] | |||
[[system_plugin]] | |||
vshmain_util | |||
[[xmb_plugin]] (XMB normal) | |||
[[ycon_manual_plugin]] | |||
|- | |- | ||
| | | 2 || debug || 203.423.744 Bytes || | ||
|- | |- | ||
| | | 3 || fg (foreground)|| 3.145.728 Bytes || | ||
User Information | |||
[[auth_plugin]] | |||
[[avc2_text_plugin]] | |||
[[comboplay_plugin]] | |||
[[ps3_savedata_plugin]] | |||
[[game_plugin]] | |||
[[deviceconf_plugin]] | |||
fchk (libfs_utility2) | |||
[[friendim_plugin]] | |||
[[friendlm_plugin]] | |||
[[friendtrophy_plugin]] | |||
[[game_plugin]] | |||
[[gameupdate_plugin]] | |||
libfs_utility_init | |||
vshmain_util | |||
mms | |||
[[np_eula_plugin]] | |||
[[np_sns_plugin]] | |||
[[np_multisignin_plugin]] | |||
[[npsignin_plugin]] | |||
[[osk_plugin]] | |||
photoUtil | |||
photoUtil2 | |||
[[photo_network_sharing_plugin]] | |||
[[print_plugin]] | |||
[[profile_plugin]] | |||
[[screenshot_plugin]] | |||
upload_util | |||
[[xmb_ingame]] | |||
|- | |- | ||
| | | 4 || bg (background)|| 3.145.728 Bytes || | ||
[[avc_plugin]] | |||
[[avc2_game_plugin]] | |||
[[audioplayer_plugin]] | |||
[[audioplayer_plugin_mini]] | |||
music playback/decode | |||
[[rec_plugin]] | |||
imejp (service type=1) | |||
ime_atok_module | |||
| | |||
| | |||
|- | |- | ||
|} | |} | ||
===Loaded Views=== | |||
These Views and prx files are loaded by default and are accessable without further loading, all others need to be loaded. | |||
====Regular XMB==== | |||
[[system_plugin]] | |||
[[xmb_plugin]] | |||
[[explore_plugin]] | |||
[[category_setting_plugin]] | |||
[[impose_plugin]] | |||
====InGame XMB==== | |||
[[system_plugin]] | |||
[[xmb_plugin]] | |||
[[explore_plugin]] | |||
[[game_plugin]] | |||
[[impose_plugin]] | |||
====InGame==== | |||
[[game_plugin]] | |||
[[impose_plugin]] | |||
===VSH Service Communication (CXML Header Magic)=== | |||
APNT - [[ap_plugin|Access Point Utility]] | |||
ATHD - [[auth_plugin|(Password) Authentication Dialog]] | |||
AVC2 - [[avc2_game_plugin|Audio-Voice/Video Chat Utility 2]] | |||
AVCH - [[avc_plugin|Audio-Voice/Video Chat Utility]] | |||
BGDL - Background Download Service | |||
CHAT - [[avc2_game_plugin|System Chat]] | |||
CMND - | |||
COMB - [[comboplay_plugin|Combo Playing(Cross Controller)]] | |||
DGAM - [[game_plugin|Disc Game-Mode Utility]] | |||
DPSN - Decrypt PSN Video Service | |||
DTCP - DTCP IP Service | |||
EULA - End User License Agreement | |||
GAME - [[game_plugin|Game Utility]] | |||
GDAT - [[game_plugin|Game Data Utility]] | |||
GDTL - [[game_plugin|(uses DGAM)]] | |||
GEXE - [[game_plugin|Game Execution Utility]] | |||
GPS1 - [[game_plugin|Game PS1 Rumble]] | |||
GUPD - Game Upate Check | |||
IMEJ - Input Method Engine Japanese | |||
MSGD - [[msgdialog_plugin|Message Dialog Utility]] | |||
MUDE - Music Decode | |||
MUSC - Music Playback | |||
NMT2 - NP Matching 2 Utility | |||
NPBA - NP Basic Utility | |||
NPC2 - NP (Ingame) Commerce 2 Utility | |||
NPCM - NP Commerce Utility | |||
NPCU - NP Custom Menu | |||
NPDR - NP DRM Utility | |||
NPFL - NP Friendlist Utility | |||
NPIN - NP Install (Commerce) | |||
NPLU - NP LookUp | |||
NPMG - NP Manager Utility | |||
NPMT - NP Matching Utility | |||
NPRA - NP Score/Ranking Utility | |||
NPSN - NP Signaling Utility | |||
NPTR - NP Trophy | |||
NPUS - NP User Storage | |||
NSNS - NP Social Networking Services (Facebook Api) | |||
NTCL - netcl Utility | |||
OSKD - [[osk|On Screen Keyboard Utility]] | |||
PARA - System Parameters Utility | |||
PESM - PKI End to end Secure Module | |||
PHDE - Photo Decode | |||
PHE2 - Photo Export (Utility 2) | |||
PHEX - Photo Export | |||
PHIM - Photo Import | |||
PNSU - Photo Network Sharing | |||
PRIN - Printer Utility | |||
RECO - [[rec_plugin|Recording Utility]] | |||
RMTP - [[premo_game_plugin|Remote Play]] | |||
RTCA - [[rtcalarm|RTC Alarm]] | |||
SAVE - Save Data Utility (surf autosave) | |||
SRCH - [[cell_search_service|Search]] | |||
SSHT - ScreenShot | |||
STDT - Storage Data Copy Utility | |||
SUBD - [[premo_game_plugin|SubDisplay Utility]] | |||
SYSC - [[deviceconf_plugin|System (Device/Pad) Configuration]] | |||
USRI - User Information Utility | |||
VDPL - Video Player | |||
VDUP - [[upload_util|Video Upload]] | |||
WBRW - [[webbrowser_plugin|WebBrowser Utility]] | |||
===Notification Window Textures=== | |||
<div style="float:right">[[File:Notification_window_textures.jpg|800px|thumb|left|Notification Window Textures (inside dev_flash/vsh/resource/system_plugin.rco)]]</div> | |||
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 [[PlayStation 3 Theme (P3T)|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 --[[User:Sandungas|Sandungas]] ([[User talk:Sandungas|talk]]) 19:22, 20 May 2014 (EDT) | |||
===Display Buffers=== | ===Display Buffers=== | ||
Line 218: | Line 224: | ||
{{Keyboard|content=<syntaxhighlight lang="bash"> | {{Keyboard|content=<syntaxhighlight lang="bash"> | ||
GCMBUFINFO 0 | GCMBUFINFO 0 | ||
address: 0xdc80000 | |||
pitch: 0x2000 | pitch: 0x2000 | ||
width: 0x780 | width: 0x780 | ||
Line 224: | Line 230: | ||
GCMBUFINFO 1 | GCMBUFINFO 1 | ||
address: 0xe500000 | |||
pitch: 0x2000 | pitch: 0x2000 | ||
width: 0x780 | width: 0x780 | ||
height: 0x438 | height: 0x438 | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
===Settings=== | |||
VSH contains an array of structs which describes the [[xRegistry.sys]]. (More Information about its access [[Talk:VSH]] ) | |||
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. [http://pastebin.com/ZiZ6S43t 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 | |||
===Events=== | |||
Global Event Queue Id's: | |||
Polling Service | |||
0x8006020000000030 | |||
0x8006020000000010 | |||
0x8006020000000002 | |||
0x8006020000000000 | |||
CMND Service (Connect) | |||
0x8006010000000100 | |||
0x8006010000000101 | |||
0x8006010000000102 | |||
0x8006010000000103 | |||
SceNpTusVsh | |||
0x0800604000000902 | |||
===Title IDs=== | |||
Clears a Memory Container in relation of this game and a camera (disables video chat etc.?) | |||
BLUS20001 Ridge Racer 7 | |||
BCAS20001 Ridge Racer 7 | |||
BLJS10001 Ridge Racer 7 | |||
BCES00009 Ridge Racer 7 | |||
BCKS10001 Ridge Racer 7 | |||
Circumvents an AudioOut Setting that made the game freeze/black screen | |||
BLUS30264 Afro Samurai | |||
BLES00516 Afro Samurai | |||
NPUB90215 Afro Samurai (Demo) | |||
BLJM60130 Street Fighter IV | |||
BLUS30265 Street Fighter IV | |||
BLES00481 Street Fighter IV | |||
BCJB95006 Torne | |||
NPIA00005 PlayStation Home | |||
NPIA00009 | |||
NPIA00010 PlayStation Home | |||
NPIA00011 | |||
NPEA00013 PlayStation Home | |||
WebBrowser finalize executed without mutex/lock syncs | |||
NPJB00001 Tekken 5: Dark Resurrection | |||
NPUB30009 Tekken 5: Dark Resurrection | |||
NPJB00023 Crystal Defenders | |||
NPUB30092 Crystal Defenders | |||
{{Development}}<noinclude>[[Category:Main]]</noinclude> | {{Development}}<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 00:20, 1 July 2020
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 userspace 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[edit | edit source]
possible arguments to pass when executing vsh.self:
- --mode=gametool
- --mode=gametool2
- --arcade=true
Offsets[edit | edit source]
Function | 3.55 | 3.41 | 3.15 | Notes |
---|---|---|---|---|
- | - | - | - | - |
sub_308EE4 | check_Is_Act_Dat_for_This_Acc_ID |
Exports[edit | edit source]
Imports[edit | edit source]
Memory Containers[edit | edit source]
Loaded Views[edit | edit source]
These Views and prx files are loaded by default and are accessable without further loading, all others need to be loaded.
Regular XMB[edit | edit source]
system_plugin xmb_plugin explore_plugin category_setting_plugin impose_plugin
InGame XMB[edit | edit source]
system_plugin xmb_plugin explore_plugin game_plugin impose_plugin
InGame[edit | edit source]
game_plugin impose_plugin
VSH Service Communication (CXML Header Magic)[edit | edit source]
APNT - Access Point Utility ATHD - (Password) Authentication Dialog AVC2 - Audio-Voice/Video Chat Utility 2 AVCH - Audio-Voice/Video Chat Utility BGDL - Background Download Service CHAT - System Chat CMND - COMB - Combo Playing(Cross Controller) DGAM - Disc Game-Mode Utility DPSN - Decrypt PSN Video Service DTCP - DTCP IP Service EULA - End User License Agreement GAME - Game Utility GDAT - Game Data Utility GDTL - (uses DGAM) GEXE - Game Execution Utility GPS1 - Game PS1 Rumble GUPD - Game Upate Check IMEJ - Input Method Engine Japanese MSGD - Message Dialog Utility MUDE - Music Decode MUSC - Music Playback NMT2 - NP Matching 2 Utility NPBA - NP Basic Utility NPC2 - NP (Ingame) Commerce 2 Utility NPCM - NP Commerce Utility NPCU - NP Custom Menu NPDR - NP DRM Utility NPFL - NP Friendlist Utility NPIN - NP Install (Commerce) NPLU - NP LookUp NPMG - NP Manager Utility NPMT - NP Matching Utility NPRA - NP Score/Ranking Utility NPSN - NP Signaling Utility NPTR - NP Trophy NPUS - NP User Storage NSNS - NP Social Networking Services (Facebook Api) NTCL - netcl Utility OSKD - On Screen Keyboard Utility PARA - System Parameters Utility PESM - PKI End to end Secure Module PHDE - Photo Decode PHE2 - Photo Export (Utility 2) PHEX - Photo Export PHIM - Photo Import PNSU - Photo Network Sharing PRIN - Printer Utility RECO - Recording Utility RMTP - Remote Play RTCA - RTC Alarm SAVE - Save Data Utility (surf autosave) SRCH - Search SSHT - ScreenShot STDT - Storage Data Copy Utility SUBD - SubDisplay Utility SYSC - System (Device/Pad) Configuration USRI - User Information Utility VDPL - Video Player VDUP - Video Upload WBRW - WebBrowser Utility
Notification Window Textures[edit | edit source]
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[edit | edit source]
VSH uses 2 of 8 available display buffers. Information about them can be aquired by vsh plugins using this code snippet: [[1]]
In FW 4.46 DEX the buffer info looks like this (for 1920x1080):
GCMBUFINFO 0 address: 0xdc80000 pitch: 0x2000 width: 0x780 height: 0x438 GCMBUFINFO 1 address: 0xe500000 pitch: 0x2000 width: 0x780 height: 0x438
Settings[edit | edit source]
VSH contains an array of structs which describes the xRegistry.sys. (More Information about its access Talk:VSH )
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
Events[edit | edit source]
Global Event Queue Id's:
Polling Service 0x8006020000000030 0x8006020000000010 0x8006020000000002 0x8006020000000000
CMND Service (Connect) 0x8006010000000100 0x8006010000000101 0x8006010000000102 0x8006010000000103
SceNpTusVsh 0x0800604000000902
Title IDs[edit | edit source]
Clears a Memory Container in relation of this game and a camera (disables video chat etc.?) BLUS20001 Ridge Racer 7 BCAS20001 Ridge Racer 7 BLJS10001 Ridge Racer 7 BCES00009 Ridge Racer 7 BCKS10001 Ridge Racer 7
Circumvents an AudioOut Setting that made the game freeze/black screen BLUS30264 Afro Samurai BLES00516 Afro Samurai NPUB90215 Afro Samurai (Demo)
BLJM60130 Street Fighter IV BLUS30265 Street Fighter IV BLES00481 Street Fighter IV
BCJB95006 Torne NPIA00005 PlayStation Home NPIA00009 NPIA00010 PlayStation Home NPIA00011 NPEA00013 PlayStation Home
WebBrowser finalize executed without mutex/lock syncs NPJB00001 Tekken 5: Dark Resurrection NPUB30009 Tekken 5: Dark Resurrection
NPJB00023 Crystal Defenders NPUB30092 Crystal Defenders