System plugin: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (busy anim)
Line 47: Line 47:
= RCO notes =
= RCO notes =
== Busy animation ==
== Busy animation ==
It seems all the versions of system_plugin.rco from all firmware versions (not checked fully) contains a page named "page_busy" which purpose is to display a "progress" animated icon located at top-right corner of the XMB screen
It seems all the versions of system_plugin.rco (not checked fully) contains a page named "page_busy" which purpose is to display a "busy" 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 30 frames, "tex_busy.gim" are the main frames that are displayed on top, and "tex_busy_shadow.gim" are the frames of his shadows. The sprx "crops" the frames on runtime and displays them sequentially to create the animation. This animation is commonly knows as the waterdrop animation
In old firmwares (around 2.17) the "page_busy" animation was made with 2 images composed by 30 frames each (29x25 pixels), "tex_busy.gim" are the main frames that are displayed on top, and "tex_busy_shadow.gim" are the frames of his shadows. The sprx "crops" the frames on runtime and displays them sequentially to create the animation. This animation is commonly knows as the waterdrop animation


In modern fiirmwares 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 (the circle behind the clock hands named "tex_busy.gim") together with his shadow (named "tex_busy_shadow.gim")
There is a second version of the waterdrop animation (around firmwares 2.50 up to 2.80 or so) that works a bit different than the previous, the image "tex_busy" have a bigger frame size (32x32 pixels) and his frame order seems to be inverted, also his GIM settings was modifyed from the original 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 (the circle behind the clock hands named "tex_busy.gim") together with his shadow (named "tex_busy_shadow.gim")


The way how this 2 different styles used in the busy animation works internally are completly 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
The way how this 2 different styles used in the busy animation works internally are completly 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

Revision as of 03:34, 6 April 2021

1 Identifier:

  • 1

1 Interface

contains 36 subs:

0: 2 Parameter: char * , int flags - dev_hdd0/theme related, loads theme?
1: 2 Parameter: float, int
2: 1 Parameter: out: 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?)
5: 1 Parameter: uint8_t [0x148] - collects sounds (snd_decide, snd_cancel, snd_cursor and snd_category_decide)
6:
7: 2 Parameter: uint8 , float - page_default_theme / page_wallpaper_theme
8: 2 Parameter: uint8 , float (500.00) - page_default_theme / page_wallpaper_theme
9: 2 Parameter: float, float - wallpaper_theme_plane
10: 2 Parameter: int (1), float (100.0)
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: 1 Parameter: uint8 ( 0 = _vshcommon_8D173737, else -> PageClose )- page_infobar
13: 0 Parameter: return uint8 (infobar activated (1)/closed (0)?)
14: 1 Parameter: Set, uint8_t [ ] - infoicon
15: 1 Parameter: Set, uint8_t [0x1C] {wchar * } - infotext1
16: 1 Parameter: Set, uint8_t [0x1C] {wchar * } - infotext2
17: 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)
18: 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)
19: 1 Parameter: uint8_t 0=False/1=True - show page_busy
20: 1 Parameter: uint8_t - busy_long / busy_short
21: 1 Parameter: uint8_t - anim_cross_circle_show_hide <-- typo? anim_cross_show_hide -->
22: 1 Parameter: uint8_t - anim_cross_circle_show_hide <-- typo? anim_circle_show_hide -->
23: 1 Parameter: uint8_t - anim_triangle_show_hide
24: 1 Parameter: uint8_t - anim_rectangle_show_hide
25: 2 Parameter: uint8_t [0x1C], wchar * - cross_text
26: 2 Parameter: uint8_t [0x1C], wchar * - circle_text
27: 2 Parameter: uint8_t [0x1C], wchar * - triangle_text
28: 2 Parameter: uint8_t [0x1C], wchar * - rectangle_text
29: 8 Parameter: float, int, char *, int, int *, int *, char *, char * - notification
30: 1 Parameter: char * (Example: "msg_press_ps_button") 
31: 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)
32: 0 Parameter: - Set up page_notification
33: 0 Parameter: - Dummy XMB start ( DEX )
34: 0 Parameter: - Dummy XMB stop ( DEX )
35: 0 Parameter: - Dummy XMB start/stop ( DEX )

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 a "busy" 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 30 frames each (29x25 pixels), "tex_busy.gim" are the main frames that are displayed on top, and "tex_busy_shadow.gim" are the frames of his shadows. 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 than the previous, the image "tex_busy" have a bigger frame size (32x32 pixels) and his frame order seems to be inverted, also his GIM settings was modifyed from the original 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 (the circle behind the clock hands named "tex_busy.gim") together with his shadow (named "tex_busy_shadow.gim")

The way how this 2 different styles used in the busy animation works internally are completly 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

Sample from firmware 2.17 (shorted)

Code Sample

Sample from firmware 4.84 (shorted)

Code Sample