Editing System 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 8: Line 8:
contains 36 subs:
contains 36 subs:


  0: 2 Parameter: char * , int flags - dev_hdd0/theme related, loads theme?
  0: 2 Parameter:
  1: 2 Parameter: float, int
  1: 2 Parameter: float, int
  2: 1 Parameter: out: void * float[4]  
  2: 1 Parameter: out: void * float[4]  
  3: 1 Parameter: in: void * float[4]
  3: 1 Parameter: in: void * float[4]
  4: 1 Parameter: uint8_t [0x100?]- collects Progress Base/bar textures (tex_default_progress_base, tex_default_progress_base_shadow, and tex_default_progress_slider?)
  4: - Progress Base
  5: 1 Parameter: uint8_t [0x148] - collects sounds (snd_decide, snd_cancel, snd_cursor and snd_category_decide)
  5:
  6:
  6:
  7: 2 Parameter: uint8 , float - page_default_theme / page_wallpaper_theme
  7: - page_default_theme / page_wallpaper_theme
  8: 2 Parameter: uint8 , float (500.00) - page_default_theme / page_wallpaper_theme
  8: 2 Parameter: int, float (500.00)
  9: 2 Parameter: float, float - wallpaper_theme_plane
  9: - wallpaper_theme_plane
  10: 2 Parameter: int (1), float (100.0)
  10: nullsub - 2 Parameter: int, float
  11: _Infobar_Open, 5 Parameter: int * tex_dialog (ex. infoicon), int* tex_dialog_shadow (infoicon_shadow) , wchar * infotext1, char * infotext2, int type - create page_infobar /infoicon /infotext1/infotext2
  11: 5 Parameter: int * tex_dialog (ex. infoicon), int* tex_dialog_shadow (infoicon_shadow) , wchar * infotext1, char * infotext2, int type - create page_infobar /infoicon /infotext1/infotext2
  12: _Infobar_Close, 1 Parameter: uint8 ( 0 = _vshcommon_8D173737, else -> PageClose )- page_infobar
  12: 1 Parameter: uint8 ( != 0 -> PageClose, = 0 -> _vshcommon_8D173737 )- page_infobar
  13: _Infobar_IsOpened, 0 Parameter: return uint8 (infobar activated (1)/closed (0)?)
  13:
  14: _Infobar_GetIcon, 1 Parameter: Set, uint8_t [ ] - infoicon
  14: - infoicon
  15: _Infobar_GetInfo1, 1 Parameter: Set, uint8_t [0x1C] {wchar * } - infotext1
  15: 1 Parameter: in: wchar * - infotext1
  16: _Infobar_GetInfo2, 1 Parameter: Set, uint8_t [0x1C] {wchar * } - infotext2
  16: 1 Parameter: in: wchar * - infotext2
  17: _BusyIcon_Inc, 0 Parameter:  - busy_increase (tex_busy_l.gim "long" and tex_busy_s.gim "short" clock hands textures rotates in clockwise direction at fast speed)
  17: - busy_increase
  18: _BusyIcon_Dec, 0 Parameter: - busy_decrease (tex_busy_l.gim "long" and tex_busy_s.gim "short" clock hands textures rotates in counterclockwise direction at fast speed)
  18: 1 Parameter: char * - busy_decrease
  19: _BusyIcon_Show, 1 Parameter: uint8_t 0=False/1=True - show page_busy
  19: - page_busy
  20: 1 Parameter: uint8_t - busy_long / busy_short
  20:
  21: _ShowButtonNavigation_Enter, 1 Parameter: uint8_t - anim_cross_circle_show_hide <-- typo? anim_cross_show_hide -->
  21: 1 Parameter: uint8_t - anim_cross_circle_show_hide
  22: _ShowButtonNavigation_Back, 1 Parameter: uint8_t - anim_cross_circle_show_hide <-- typo? anim_circle_show_hide -->
  22: 1 Parameter: uint8_t - anim_cross_circle_show_hide
  23: _ShowButtonNavigation_Option, 1 Parameter: uint8_t - anim_triangle_show_hide
  23: 1 Parameter: uint8_t - anim_triangle_show_hide
  24: _ShowButtonNavigation_View, 1 Parameter: uint8_t - anim_rectangle_show_hide
  24: 1 Parameter: uint8_t - anim_rectangle_show_hide
  25: _SetButtonNavigationString_Enter, 2 Parameter: uint8_t [0x1C], wchar * - cross_text
  25: 2 Parameter: uint8_t [0x1C], wchar * - circle_cross
  26: _SetButtonNavigationString_Back, 2 Parameter: uint8_t [0x1C], wchar * - circle_text
  26: 2 Parameter: uint8_t [0x1C], wchar * - cross_circle
  27: _SetButtonNavigationString_Option, 2 Parameter: uint8_t [0x1C], wchar * - triangle_text
  27: 2 Parameter: uint8_t [0x1C], wchar * - triangle
  28: _SetButtonNavigationString_View, 2 Parameter: uint8_t [0x1C], wchar * - rectangle_text
  28: 2 Parameter: uint8_t [0x1C], wchar * - rectangle
  29: 8 Parameter: float, int, char *, int, int *, int *, char *, char * - notification
  29:
  30: 1 Parameter: char * (Example: "msg_press_ps_button")  
  30: 1 Parameter: char * ("msg_press_ps_button") - notification ?
  31: vsh::SaveScreenshotImage, 1 Parameter: char * bmp_path ("%s/screen%03d.bmp") - "saveBMP", takes a XMB screendump (make sure you set a dynamic theme, else console freezes after dump)
  31: 1 Parameter: char * bmp_path ("%s/screen%03d.bmp")
  32: 0 Parameter: - Set up page_notification
  32: 0 Parameter: - page_notification
  33: 0 Parameter: - Dummy XMB start ({{DEX}})
  33: - not implemented
  34: 0 Parameter: - Dummy XMB stop ({{DEX}})
  34: - not implemented
  35: 0 Parameter: - Dummy XMB start/stop ({{DEX}})
  35: - not implemented


= RCO notes =
== Busy animation ==
It seems all the versions of system_plugin.rco (not checked fully) contains a page named "page_busy" which purpose is to display an animated icon at top-right corner of the XMB screen
In old firmwares (around 2.17) the "page_busy" animation was made with 2 images composed by an stripe of 30 frames each, "tex_busy.gim" are the main frames displayed on top (29x25 pixels each frame), and "tex_busy_shadow.gim" are the frames of his shadows (32x32 pixels each frame). The sprx crops the frames on runtime and displays them sequentially to create the animation. This animation is commonly knows as the waterdrop animation
There is a second version of the waterdrop animation (around firmwares 2.50 up to 2.80 or so) that works a bit different, the image "tex_busy" have a bigger frame size (32x32 pixels) and his frame order seems to be inverted, also the GIM settings of both images was modifyed from rgba8888 (lossless) to dxt5 (lossy) so are a bit more pixelated
In modern firmwares the waterdrop animation was removed, but the codenames and filenames inside the RCO was repurposed. The XMB represents the busy state with a visual effect generated by rotating the clock hands textures (tex_busy_l.gim and tex_busy_s.gim) at fast speed, and scaling up and down the clock sphere named "tex_busy.gim" (an icon of 36x36 pixels) together with his shadow named "tex_busy_shadow.gim" (an icon of 46x46 pixels)
The way how this 3 different styles used in the busy animation works internally are very different, the sprx had some changes related with this. It doesnt seems to be posible to "port" the old waterdrop animation to the modern firmwares
{{Boxcode|width=auto|title=system_plugin.rco Firmware 2.17 up to 2.80 or so (shorted)|code=<syntaxhighlight lang="xml">
<Page name="page_busy" pageMode="0x1101" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
<Plane name="busy_icon_shadow" ...planeImage="image:tex_busy_shadow" planeResizeMode="0x0"></Plane>
<Plane name="busy_icon" ...planeImage="image:tex_busy" planeResizeMode="0x0"></Plane>
</Page>
</syntaxhighlight>}}
{{Boxcode|width=auto|title=system_plugin.rco Firmware 4.84 (shorted)|code=<syntaxhighlight lang="xml">
<Page name="page_busy" pageMode="0x1101" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
<Plane name="busy_icon_shadow" ...planeImage="image:tex_busy_shadow" planeResizeMode="0x0"></Plane>
<Plane name="busy_icon_anim1" ...planeImage="image:tex_busy" planeResizeMode="0x0"></Plane>
<Plane name="busy_icon" ...planeImage="image:tex_busy" planeResizeMode="0x0">
<Plane name="busy_short" ...planeImage="image:tex_busy_s" planeResizeMode="0x0"></Plane>
<Plane name="busy_long" ...planeImage="image:tex_busy_l" planeResizeMode="0x0"></Plane>
</Plane>
</Page>
</syntaxhighlight>}}


{{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)