Editing Xmb plugin

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 25: Line 25:
  12: 3 Parameter: int (Plugin Enum Id) , int value (Plugin Enum ID), int value to store - SendFinalizeEndNotify?
  12: 3 Parameter: int (Plugin Enum Id) , int value (Plugin Enum ID), int value to store - SendFinalizeEndNotify?
  13: 1 Parameter: uint* [0xED8] - receives
  13: 1 Parameter: uint* [0xED8] - receives
  14: 1 Parameter: uint* [0xED8] - sets
  14: 1 Parameter: struct *ptr
  15: 1 Parameter: struct *ptr
  15: 1 Parameter: struct *ptr
  16: GetModuleLoadOpinion, 1 Parameter: int value (Plugin Enum ID)
  16: GetModuleLoadOpinion, 1 Parameter: int value (Plugin Enum ID)
Line 31: Line 31:
  18: 2 Parameter: void * handler, int
  18: 2 Parameter: void * handler, int
  19: 2 Parameter: void * handler, int
  19: 2 Parameter: void * handler, int
  20: 2 Parameter: out: int *, out: int *
  20: 2 Parameter: out:int, out:int  
  21: 2 Parameter: int value (Plugin Enum ID), int value (0 = _vshnet_965A7E9D( ) ,else= _vshnet_52122E7D(("PS3 %s"), ))  
  21: 2 Parameter: int value (Plugin Enum ID), int value (0 = _vshnet_965A7E9D( ) ,else= _vshnet_52122E7D(("PS3 %s"), ))  
  22: 1 Parameter: int value (Plugin Enum ID) - executes given Plugin ID MOD0-Inferface Function 4)
  22: 1 Parameter: int value (Plugin Enum ID)
  23: 2 Parameter: char* action, int value - Executes Action
  23: 2 Parameter: char* action, int value - Executes Action
  24: 2 Parameter: char* action, int value - Gets Plugin ID Enum based by Action string
  24: 2 Parameter: char* action, int value - Gets Plugin ID Enum based by Action string
  25: 0 Parameter:
  25: 0 Parameter:
== LoadModuleOpinion ==
& 1 = MOD0 Interface available
== Function 19 ==
Example:
void * { ModuleLoading, ModuleLoaded, ModuleUnloading, ModuleUnloaded}, 0
== Function 20 ==
1st Parameter: +1/-1 (vsh helper uri enabled?)
2nd Parameter: +1/-1


== Function 23 ==
== Function 23 ==
Line 90: Line 76:
psns:
psns:
  psns:browse?target=plus&boot=102
  psns:browse?target=plus&boot=102
== xmb plugin id list ==
{| class="wikitable sortable"
! Plugin name !! Enum ID !! ModuleLoadOpinion !! MOD0 Interface
|-
|[[system_plugin]]    || 0x00 || 0x82 || {{No}}
|-
|[[xmb_plugin]]        || 0x01 || 0x83 || {{Yes}}
|-
|[[explore_plugin]]    || 0x02 || 0x485 || {{Yes}}
|-
|[[game_plugin]]        || 0x14 || 0x51 || {{Yes}}
|-
|[[np_trophy_ingame]]  || 0x25 || 0x808 || {{No}}
|-
|[[gamedata_plugin]]    || 0x15 || 0x11 || {{Yes}}
|-
|[[game_ext_plugin]]    || 0x16 || 0x51 || {{Yes}}
|-
|[[premo_plugin]]      || 0x1A || 0xC0 || {{No}}
|-
|[[micon_lock_plugin]]  || 0x2B || 0x0 || {{No}}
|-
|[[category_setting_plugin]]  || 0x03 || 0x484 || {{No}}
|-
|[[sysconf_plugin]]    || 0x05 || 0x40 || {{No}}
|-
|[[netconf_plugin]]    || 0x06 || 0x8 || {{No}}
|-
|[[software_update_plugin]]  || 0x07 || 0x41 || {{Yes}}
|-
|[[bdp_plugin]]        || 0x11 || 0x51 || {{Yes}}
|-
|[[bdp_disccheck_plugin]]  || 0x12 || 0x81 || {{Yes}}
|-
|[[bdp_storage_plugin]]  || 0x13 || 0x81 || {{Yes}}
|-
|[[user_plugin]]        || 0x04 || 0x148 || {{No}}
|-
|[[friendim_plugin]]    || 0x1E || 0x1 || {{Yes}}
|-
|[[friendml_plugin]]    || 0x1F || 0x41 || {{Yes}}
|-
|[[friendtrophy_plugin]]  || 0x26 || 0x41 || {{Yes}}
|-
|[[profile_plugin]]    || 0x27 || 0x41 || {{Yes}}
|-
|[[photoviewer_plugin]]  || 0x0B || 0x271 || {{Yes}}
|-
|[[videoplayer_plugin]]  || 0x10 || 0x271 || {{Yes}}
|-
|[[webbrowser_plugin]]  || 0x1B || 0x8071 || {{Yes}}
|-
|[[webrender_plugin]]  || 0x1C || 0x8071 || {{Yes}}
|-
|[[xai_plugin]]        || 0x1D || 0x81 || {{Yes}}
|-
|[[audioplayer_plugin]]  || 0x0D || 0x31 || {{Yes}}
|-
|[[videodownloader_plugin]]  || 0x28 || 0x8 || {{No}}
|-
|[[nas_plugin]]        || 0x22 || 0x48 || {{No}}
|-
|[[download_plugin]]    || 0x29 || 0x8 || {{No}}
|-
|[[ps3_savedata_plugin]]  || 0x17 || 0x808 || {{No}}
|-
|[[vmc_savedata_plugin]]  || 0x18 || 0x8 || {{No}}
|-
|[[thumthum_plugin]]    || 0x2A || 0x48 || {{No}}
|-
|[[npsignin_plugin]]    || 0x23 || 0x1 || {{Yes}}
|-
|[[avc_plugin]]        || 0x20 || 0x8071 || {{Yes}}
|-
|[[avc2_text_plugin]]  || 0x21 || 0x1 || {{Yes}}
|-
|[[sacd_plugin]]        || 0x0E || 0x69 || {{Yes}}
|-
|[[eula_cddb_plugin]]  || 0x0F || 0x48 || {{No}}
|-
|[[strviewer_plugin]]  || 0x2D || 0x58 || {{No}}
|-
|[[edy_plugin]]        || 0x08 || 0x48 || {{No}}
|-
|[[print_plugin]]      || 0x09 || 0x40 || {{No}}
|-
|[[newstore_plugin]]    || 0x31 || 0x48 || {{No}}
|-
|[[deviceconf_plugin]]  || 0x0A || 0x40 || {{No}}
|-
|[[dlna_plugin]]        || 0x2C || 0x48 || {{No}}
|-
|[[playlist_plugin]]    || 0x2F || 0x8 || {{No}}
|-
|[[np_trophy_plugin]]  || 0x24 || 0x808 || {{No}}
|-
|[[kensaku_plugin]]    || 0x34 || 0x80 || {{No}}
|-
|[[regcam_plugin]]      || 0x35 || 0x48 || {{No}}
|-
|[[idle_plugin]]        || 0x36 || 0x481 || {{Yes}}
|-
|[[filecopy_plugin]]    || 0x37 || 0x48 || {{No}}
|-
|[[wboard_plugin]]      || 0x38 || 0x881 || {{Yes}}
|-
|[[hknw_plugin]]        || 0x32 || 0x8071 || {{Yes}}
|-
|[[poweroff_plugin]]    || 0x39 || 0x141 || {{Yes}}
|-
|[[eula_hcopy_plugin]]  || 0x3C || 0x141 || {{Yes}}
|-
|[[videoeditor_plugin]]  || 0x3A || 0x271 || {{Yes}}
|-
|[[scenefolder_plugin]]  || 0x3B || 0x8 || {{No}}
|-
|[[mtpinitiator_plugin]]  || 0x3E || 0x40 || {{No}}
|-
|[[campaign_plugin]]  || 0x3F || 0x11 || {{Yes}}
|-
|[[remotedownload_plugin]]  || 0x40 || 0x140 || {{No}}
|}


=MOD0 Interface=
=MOD0 Interface=
Line 219: Line 81:
contains 5 subs:
contains 5 subs:


  0: 0 Parameter: - (ModuleActivate?)
  0: 0 Input:
  1: 0 Parameter: - somewhat CAT0 related (ModuleDeactivate?)
  1: 0 Input: - somewhat CAT0 related
  2: empty -  (ModuleLoadFailed?)
  2: empty
  3: 0 Parameter: return 0 -  (ModuleGetLoadOpinion?)
  3: return 0
  4: empty
  4: empty


Line 233: Line 95:
  2: 1 Parameter: int value, float value
  2: 1 Parameter: int value, float value
  3: 0 Parameter:  
  3: 0 Parameter:  
  4: 0 Parameter: returns int (like 7) 0x1C0)
  4: 0 Parameter: returns int
  5: 1 Parameter: float value
  5: 1 Parameter: float value
  6: 0 Parameter: returns float
  6: 0 Parameter: returns float
Line 239: Line 101:
  8: 0 Parameter:  
  8: 0 Parameter:  
  9: 3 Parameter: int *, int* , wchar * infotext1
  9: 3 Parameter: int *, int* , wchar * infotext1
  10: 0 Parameter: - close page infobar?
  10: 0 Parameter:  
  11: 1 Parameter: int
  11: 1 Parameter: int
  12: 1 Parameter: int id
  12: 1 Parameter: int id
Line 253: Line 115:
  22: 1 Parameter: wchar * - page_xmb_indicator - Shows XMB-Notifications at the bottom like "(Triangle): Options"  
  22: 1 Parameter: wchar * - page_xmb_indicator - Shows XMB-Notifications at the bottom like "(Triangle): Options"  
  23: 0 Parameter: returns ptr* ( ptr[0x908] = -1 -> ClearWBoardFocus)
  23: 0 Parameter: returns ptr* ( ptr[0x908] = -1 -> ClearWBoardFocus)
  24: 0 Parameter: - _vshcommon_34A05733 ("xmb_plugin2", 0x15480) - returns some list
  24: 0 Parameter: - _vshcommon_34A05733 ("xmb_plugin2", 0x15480)
  25: 0 Parameter: returns sys_lwmutex_t * "_pf_lwm"
  25: 0 Parameter: returns sys_lwmutex_t * "_pf_lwm"
  26: 1 Parameter: int value (0=decrease(+page_xmb_fg) + xmb2_interface_7(0,0x1C0/0x40,0x1C0),else=increase (page_xmb_fg))
  26: 1 Parameter: int value (0=decrease(+page_xmb_fg) + xmb2_interface_7(0,0x1C0/0x40,0x1C0),else=increase (page_xmb_fg))
  27: 0 Parameter: - calls category_setting_plugin CAT0 interface #24 + explore_plugin CAT0 interface #24
  27: 0 Parameter: - calls category_setting_plugin CAT0 interface #24 + explore_plugin CAT0 interface #24
  28: 1 Parameter: char* - Example: ""wbrd:show?"" , ""tchat:fullvsh_ps""
  28: 1 Parameter: char* - Example: ""wbrd:show?"" (having 29) called before)
  29: 0 Parameter:  
  29: 0 Parameter:  
  30: 2 Parameter: void *callback,uint8 [0x2F8] - set new custom_render_plugin callback and its parameter r8
  30: 2 Parameter: void *handler,uint8 [0x2F8 - set new handler and parameter r8
  31: 1 Parameter: int value (0=page close, else= setwidget) - page_xmb_bg  
  31: 1 Parameter: int value (0=page close, else= setwidget) - page_xmb_bg  
  32: 1 Parameter: int value (0=page close, else= setwidget) - page_xmb_fg  
  32: 1 Parameter: int value (0=page close, else= setwidget) - page_xmb_fg  
== Function 0 ==
{| class="wikitable sortable"
! int !! notes
|-
| 0x00 || function 7(0x040,0x1C0), PageActivate page_xmb, xmm0 function 8, or-flag 0x40000
|-
| 0x01 || function 7(0x00,0x1C0), PageActivate page_xmb, xmm0 function 8, or-flag 0x40000
|-
| 0x02 || function 7(0x40,0x1CF), PageActivate page_xmb, xmm0 function 8, or-flag 0x40000
|-
| 0x03 || xmm0 function 25, xmm0 function 16, xmb2 function 7 (0x000, 0x1C0), xmm0 function 8
|-
| 0x04 || (nothing)
|-
| 0x05 || depending of xmb2 function 11 result: <0 -> follows 0x00; >0 -> function 7(0x140,0xEFFF), PageActivate page_xmb, xmm0 function 8, do not or-flag 0x40000
|-
| 0x06 || PageActivate page_xmb, xmm0 function 8
|-
| 0x07 || PageActivate page_xmb, xmm0 function 8, set | 0x40000 flag
|-
| 0x08 || same as 0x07
|-
| 0x09 || same as 0x07
|-
| 0x0A || function 11 ( 7 ), function 2, then follows 0x03
|-
| 0x0B || (nothing)
|-
| 0x0C || (nothing)
|-
| 0x0D ||
|-
| 0x0E || loads new struct at 0x2A4
|-
| 0x0F || ( function 11, function 12, CAT0 Interface, set String)
|-
| 0x10 || (nothing)
|-
| 0x11 || (nothing)
|-
| 0x12 || paf_6C8F62F7 , calls Custom Render callback ?
|-
| 0x13 || allows use of float value used at function5 ? (busy icon related?)
|-
| 0x14 || changes indicator/"indi_base" width? + ( & 0x1C0 -> disable)
|-
|}


== Function 7 ==
== Function 7 ==
Line 350: Line 164:
|-
|-
| 0x1C0 || 0x01C0 || makes xmb x-axis bar transparent
| 0x1C0 || 0x01C0 || makes xmb x-axis bar transparent
|-
| 0x200 || 0x0200 ||
|-
|-
| 0x000 || 0x11C0 || makes XMB disappear, then x-bar invisible
| 0x000 || 0x11C0 || makes XMB disappear, then x-bar invisible
Line 363: Line 175:
| 0x800 || 0x0C00 || makes XMB x-bar invisible
| 0x800 || 0x0C00 || makes XMB x-bar invisible
|}
|}
== Function 21 ==


00000000 00 00 00 01 00 00 00 06 00 00 00 00 67 61 6D 65 ............game
= xmb plugin id list =
00000010 44 69 72 32 00 00 00 00 00 00 00 00 00 00 00 08 Dir2............
00000020 00 00 00 0F FF FF FF FF FF FF FF FF 00 00 00 00 ................
00000030 08 00 00 00 01 00 00 13                        ........


== Function 22 ==
{| class="wikitable sortable"
 
! Plugin name !! Enum ID
  L"\uF880" = {{padcircle}}-Button
|-
  L"\uF881" = {{padcross}}-Button
|[[system_plugin]]    || 0x00
  L"\uF882" = {{padsquare}}-Button
|-
  L"\uF883" = {{padtriangle}}-Button
|[[xmb_plugin]]        || 0x01
  L"\uF884" = {{dpadu}}-Button
|-
  L"\uF885" = {{dpadd}}-Button
|[[explore_plugin]]    || 0x02
  L"\uF886" = {{dpadl}}-Button
|-
L"\uF887"  = {{dpadr}}-Button
|[[game_plugin]]        || 0x14
L"\uF888"  = {{padl1}}-Button
|-
L"\uF889"  = {{padl2}}-Button
|[[np_trophy_ingame]]  || 0x25
L"\uF88A"  = {{padl3}}-Button
|-
L"\uF88B"  = {{padr1}}-Button
|[[gamedata_plugin]]    || 0x15
L"\uF88C"  = {{padr2}}-Button
|-
  L"\uF88D"  = {{padr3}}-Button
|[[game_ext_plugin]]    || 0x16
  L"\uF88E"  = {{padselect}}-Button
|-
  L"\uF88F"  = {{padstart}}-Button
|[[premo_plugin]]      || 0x1A
  L"\uF892"  = {{padps}}-Button
|-
  L"\uF893"  = {{padl2}}{{dpadl}}-Combo
|[[micon_lock_plugin]] || 0x2B
  L"\uF894"  = {{padr2}}{{dpadr}}-Combo
|-
|[[category_setting_plugin]] || 0x03
|-
|[[sysconf_plugin]]    || 0x05
|-
|[[netconf_plugin]]    || 0x06
|-
|[[software_update_plugin]] || 0x07
|-
|[[bdp_plugin]]        || 0x11
|-
|[[bdp_disccheck_plugin]] || 0x12
|-
|[[bdp_storage_plugin]] || 0x13
|-
|[[user_plugin]]        || 0x04
|-
|[[friendim_plugin]]    || 0x1E
|-
|[[friendml_plugin]]    || 0x1F
|-
|[[friendtrophy_plugin]] || 0x26
|-
|[[profile_plugin]]    || 0x27
|-
|[[photoviewer_plugin]] || 0x0B
|-
|[[videoplayer_plugin]] || 0x10
|-
|[[webbrowser_plugin]] || 0x1B
|-
|[[webrender_plugin]]  || 0x1C
|-
|[[xai_plugin]]        || 0x1D
|-
|[[audioplayer_plugin]] || 0x0D
|-
|[[videodownloader_plugin]] || 0x28
|-
|[[nas_plugin]]        || 0x22
|-
|[[download_plugin]]    || 0x29
|-
|[[ps3_savedata_plugin]] || 0x17
|-
|[[vmc_savedata_plugin]] || 0x18
|-
|[[thumthum_plugin]]    || 0x2A
|-
|[[npsignin_plugin]]    || 0x23
|-
|[[avc_plugin]]        || 0x20
|-
|[[avc2_text_plugin]]  || 0x21
|-
|[[sacd_plugin]]        || 0x0E
|-
|[[eula_cddb_plugin]]  || 0x0F
|-
|[[strviewer_plugin]]  || 0x2D
|-
|[[edy_plugin]]        || 0x08
|-
|[[print_plugin]]      || 0x09
|-
|[[newstore_plugin]]    || 0x31
|-
|[[deviceconf_plugin]] || 0x0A
|-
|[[dlna_plugin]]        || 0x2C
|-
|[[playlist_plugin]]    || 0x2F
|-
|[[np_trophy_plugin]]  || 0x24
|-
|[[kensaku_plugin]]    || 0x34
|-
|[[regcam_plugin]]      || 0x35
|-
|[[idle_plugin]]        || 0x36
|-
|[[filecopy_plugin]]    || 0x37
|-
|[[wboard_plugin]]      || 0x38
|-
|[[hknw_plugin]]        || 0x32
|-
|[[poweroff_plugin]]    || 0x39
|-
|[[eula_hcopy_plugin]] || 0x3C
|-
|[[videoeditor_plugin]] || 0x3A
|-
|[[scenefolder_plugin]] || 0x3B
|-
|[[mtpinitiator_plugin]] || 0x3E
|-
|[[campaign_plugin]] || 0x3F
|-
|[[remotedownload_plugin]] || 0x40
|}


= XMB Indexed Modules =
= XMB Indexed Modules =
{{XMB_Indexed_Modules}}
{{XMB_Indexed_Modules}}


=xmb_plugin_normal.rco ([[RCOXML Coding|RCOXML]] contents)=
=xmb_plugin_normal.rco (RCOXML contents)=
*Notes:
**The main tree uses the name '''xmb_plugin'''... same name than [[xmb_ingame]], and his contents are 99,9% similar
**Main xmb is '''page_xmb''' while the clock frame at top right corner (and all his contents) belongs to the page '''page_xmb_indicator'''
**'''page_xmb_bg''' (maybe related with the wave + sparks animation) and '''page_xmb_fg''' are background and foreground, his purpose is a bit confusing


{{Boxcode|height=500px|title=xmb_plugin_normal.rcoxml|code=<syntaxhighlight lang="xml">
{{Boxcode|content=<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- This XML representation of an RCO structure was generated by Rcomage v1.1.1 -->
<!-- This XML representation of an RCO structure was generated by Rcomage v1.1.1 -->
Line 407: Line 311:
<MainTree name="xmb_plugin">
<MainTree name="xmb_plugin">
<ImageTree>
<ImageTree>
<!-- image items, not interesting for wiki -->
<!-- image items, not interesting -->
</ImageTree>
</ImageTree>
<TextTree>
<TextTree>
<!-- text items, not interesting for wiki -->
<!-- text items, not interesting -->
</TextTree>
</TextTree>
<ObjectTree>
<ObjectTree>
Line 447: Line 351:
</MainTree>
</MainTree>
</RcoFile>
</RcoFile>
</syntaxhighlight>}}
</syntaxhighlight>}}
{{System Firmware}}<noinclude>[[Category:Main]]</noinclude>


{{System Firmware}}<noinclude>[[Category:Main]]</noinclude>


{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude>
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)