XMB

From PS3 Developer wiki
Revision as of 06:45, 25 October 2014 by Sandungas (talk | contribs)
Jump to navigation Jump to search
Read manuals.playstation.net/document and us.playstation.com/support/manuals
Users
Users
Settings
Settings
Photo
Photo
Music
Music
Video
Video
TV/Video Services
TV/Video Services
Game
Game
Network
Network
PlayStation Network
PlayStation Network
Friends
Friends
XMB Classic theme

Description

The Xross Media Bar (or XMB) is the graphical user interface for the PS3

The first Sony product with a XMB interface was the "Sony PSX" in 2003 (A hybrid of a PS2 + DVR player with recorder capabilityes only released in japan, see: PSX sony.co.jp and Wikipedia PSX), later was used by the PSP, then PS3 and some Bravia TV's

The word "Xross" (the "X" itself) is a reference to the alignment of the icons in rows and columns, each column is a category

System Software can be updated from the XMB settings by using an .PUP file

Installable Content (games or apps in .pkg format, and a few PS2 Discs), and contents in PS3 Discs, are "preloaded" by XMB using an small file (see: PARAM.SFO) this file is indexed in a database for efficiency purposes and fast access (see: XMB Database) and contains an identifyer that belongs to an specific XMB column (see: CATEGORY)

The dynamic wave on the background theme are more condensed into a 'ribbon' rather than the PSP's large waves, unselected icons shrink slightly and every selectable background color has been made a shade darker.

The PS3 includes the ability to store various master and secondary user profiles, manage and explore various photos format(.MPO since FW 3.70) with Photo Gallery or an ordinary musical/non-musical slideshow, rip audio CDs, rip iTunes AAC protected files, play and copy music and video files from the hard disk drive, an optional USB mass storage or Flash card, or an optical disc (Blu-ray Disc or DVD-Video).

Web browser, also supported with USB or BlueTooth keyboard, can download multiple file types but with some restrictions. Shortcut for launching website is also possible from TV/VIDEO collumn.

Since FW 4.30, trophies have been moved to the PlayStation Network category, in which Online shopping through the PlayStation Store is possible.

The Friends menu allows email with emoticons and attached picture features and video chat which requires an optional webcam (although the PlayStation Eye and the EyeToy are official webcams, most USB webcams will work).

The PS3 reserves 48 MB of RAM at all times for XMB functions, multi-task in ways such as listening to stored audio files while surfing the web, looking at pictures or playing games.


The XMB by default changes its color depending on the current month of the year and brightness depending on the time of the day (only in original and classic Themes). XMB color can be configured to "default" (changes every month) or one of the 12 color preconfigured for months, in XMB Settings column ---> Theme settings ---> Color

This change of color affects background, waves, all the icons, and other images like the "side menu". The color is applyed to the originall images like a "color filter" layer over them (note originall icons are semitransparent white to improve this effect)

The background images changes acordingly with the month. The file lines.qrc contains 24 textures_month_bg_*.dds images of 64x32 pixels. Each day has 2 different images for "day" and "night". See Qt Resource Container (QRC)

The color filter and brignhness values in this tables are not the exact values, is unknown how this filters are applyed, where are stored, and how works, see Talk:XMB for speculations

XMB colors during the year. Color filter values are orientative
Month All January February March April May June July August September October November December
Color code 0 1 2 3 4 5 6 7 8 9 10 11 12
Day background Varies Textures month bg rgb 01.jpg Textures month bg rgb 02.jpg Textures month bg rgb 03.jpg Textures month bg rgb 04.jpg Textures month bg rgb 05.jpg Textures month bg rgb 06.jpg Textures month bg rgb 07.jpg Textures month bg rgb 08.jpg Textures month bg rgb 09.jpg Textures month bg rgb 10.jpg Textures month bg rgb 11.jpg Textures month bg rgb 12.jpg
Night background Varies Textures month bg night 01.jpg Textures month bg night 02.jpg Textures month bg night 03.jpg Textures month bg night 04.jpg Textures month bg night 05.jpg Textures month bg night 06.jpg Textures month bg night 07.jpg Textures month bg night 08.jpg Textures month bg night 09.jpg Textures month bg night 10.jpg Textures month bg night 11.jpg Textures month bg night 12.jpg
Color filter MonthTime
CBCBCB D8BF1A 6DB217 E17E9A 178816 9A61C8 02CDC7 0C76C0 B444C0 E5A708 875B1E E3412A


XMB brightness during the day. Values are orientative
Time 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Value


XMB can be configured to display the texts in several languages, this same language codes are used in contents that contains several languages availabes (like games, trophy installers, themes, etc...). The font can be configured to "original", "rounded", and "pop", see XMB Fonts page Template:XMB languages

XMB Layout Tables

This files contains a list of numeric values that defines the positions, sizes, etc... of most/all the items displayed in XMB

The files/filenames are divided in 4 resolution modes, most specifically his heigths: (272, 480, 720, and 1080), and 2 types: (factor, and grid).

Factor ones continas around 143 values, and Grid ones contains around 4545 values (grid ones are much bigger)

As a reference for known pixel sizes... all the values of the Content Information Files images appears in one or more of the "XMB Layout Tables"

Path Filename Usage (very speculative) width*heigth (lines 4 and 5) Notes
dev_flash/vsh/etc/ layout_factor_table_272.txt
layout_grid_table_272.txt
PSVita Remote Play ? 854x480 PSVita remoteplay as 852x480 due to 2 (bottom) lines being reserved because of scaler (Vita framebuffer size is 80 x 272, 640 x 368, 720 x 408, or 960 x 544) and bilinear filltering
layout_factor_table_480.txt
layout_grid_table_480.txt
NTSC, and PAL TV's 640x480 4/3 aspect ratio
layout_factor_table_720.txt
layout_grid_table_720.txt
HD TV's 1280x720 16/9 aspect ratio
layout_factor_table_1080.txt
layout_grid_table_1080.txt
Full HD TV's 1920x1080 16/9 aspect ratio

Aspect ratio/active array size?:

At the end of layout_factor_table_272.txt (and others factor tables):
725.9 <--- width active array?
408 <--- height active array?
... 725.9/408 = 1.7791666666666666666666666666667 aspect ratio
... in last 2 lines of layout_factor_table_1080.txt... 1728/972= 1,7777777777777777777777777777778 (exactly proportional to 16/9)

In case of an standard image usually appears the width and the heigth in 2 consecutive lines, e.g:

In line 77 of: layout_factor_table_1080.txt
486
405
320
176
...320x176 is the size of ICON0.PNG and ICON1.PAM
...486x405 is the size of ICON2.PNG and ICON3.SWF (used in PS3_EXTRA disc structure)
...Is the only place inside this "layout tables" files where appears a 320 and in the next line a 176 consecutivelly

Some of the images are defined with 4 values, where the last one (unk2) is negative (width, heigth, unk1, unk2), e.g:

In line 2210 of layout_grid_table_1080.txt
1000
560
290
-157
310
250
115
-69
... 1000x560 is the size of PIC0.PNG... the value 290 (unk1) and -157 (unk2) seems to be associated with this image
... 310x250 is the size of PIC2.PNG... the value 115 (unk1) and -69 (unk2) seems to be associated with this image

Others values are decimal (scalation factors?), e.g:

The first 8 lines of layout_factor_table_720.txt
1
0
0
1280   <--- width
720    <--- heigth
0.6667 <--- scalation factor ?
0.6667 <--- scalation factor ?
0.6923 <--- scalation factor ?
  • Notes:
    • Some of the items in XMB are defined by a central point (not by an square composed by width and heigth where the image must fit)... like the main category icons of the XMB that uses a central point to scalate the icon proportionally in all directions when the cursor is focused on his column. Actually this icons are originally 128x128 pixels, but when displayed in XMB are reduced to half his size (64x64 or so), and when focused are displayed a bit bigger (100x100 or so)
    • The most easy values to recognize are the resolution of the screen, always at top of the list (in the first lines)
    • Sizes and positions of main XMB category icons should be at top of the lists because are something generic and the rest of XMB items is built around them
    • When making tests with this files keep in mind the safest ones are the modes your TV doesnt uses by default and/or remoteplay layouts because after a reboot the PS3 doesnt loads them (only loaded when enabling remote play from XMB, not at boot time)... also keep in mind that the other layouts should be common with the "recovery menu" and "service mode" display modes... and you can change your TV resolution in the options in XMB settings column, then return to default resolution with a button combo at boot time

Virtual Shell (VSH)

The Virtual Shell encapsulates the XMB interface. It is loaded at: /dev_flash/vsh/module/vsh.self

And has numerous modules and descriptor files. The VSH does not directly load the XMB interface, it loads support modules to do that instead. The modules directly responsible for the XMB interface are in /dev_flash/vsh/module/ and include:

explore_category_friend.sprx
explore_category_game.sprx
explore_category_music.sprx
explore_category_network.sprx
explore_category_photo.sprx
explore_category_psn.sprx
explore_category_sysconf.sprx
explore_category_tv.sprx
explore_category_user.sprx
explore_category_video.sprx
explore_plugin.sprx
explore_plugin_ft.sprx
explore_plugin_game.sprx
explore_plugin_np.sprx

Those modules are responsible for processing the XMB descriptor files (.XML format) used to generate the XMB interface. All of the above modules except for "explore_plugin_game.sprx" and "explore_plugin_np.sprx" contains a full list and location of XMB configuration files and the "root" entry which is to be loaded for the root of the category for each firmware type (CEX/CEX-Shop/DEX/ARC/TOOL).

It's important to note that explore_plugin.sprx is capable of managing most of the XMB categories, and thus, not all of these modules might be in use at any time. The explore_plugin.sprx is actually available to vsh.self and other modules through the xmb_plugin.sprx and xmb_ingame.sprx See XMBML module-action

RCOXML Configuration Files

These are XML files which defines the visual structure of XMB, are inside all Resource Container (RCO) files wich are loaded by the associated Plugin Interfaces

There are 2 modes used by XMB: "XMB Main" and "XMB In-game", and other modes that replaces XMB like the "Coldboot", "Gameboot", or "Impose"

XMB Main

The XrossMediaBar after the coldboot, with full functions of all the items/icons displayed

  • Managed by: xmb_plugin.sprx / xmb_plugin_normal.rco

XMB In-Game (old)

Inside games, appears/hides by a short (under 2.40 firmware) or long (over 2.40 firmware) press of Dualshock PS button button

Allows to asign controllers to players, view battery levels of controllers, quit game, etc...

This is the screen that appeared in older firmwares under 2.40. Never was named "XMB In-Game" but is listed here with this name because by now there is not found a reference about it in code, sprx usage, etc.. This differentiation of "XMB In-Game" modes was also named (v1) and (v2) in other places, but this is not an accurate naming

http://www.blogcdn.com/www.joystiq.com/media/2008/01/ps3-in-game-menu.jpg

  • Managed by: impose_plugin.sprx / impose_plugin.rco

XMB In-Game

Inside games, appears/hides by a short Dualshock PS button press

Introduced in firmware 2.40, replaces the short Dualshock PS button press (and the old mode was assigned to a long press). Both modes are availables in newer firmwares

Is a reduced version of the XrossMediaBar where most of the icons are "dummies" that triggers a message this kind: "to use this function you need to quit the game and return to Main XMB, want to quit?"

The only items that are really enabled are the ones usefull to use inside games, like savegames view, trophies view, gamedata view, friends, chat, etc...

There are also some items that can appear only in this mode (not in the main XMB)... like screenshots icon in the photo colum (when enabled), or some settings specific for emulators (in settings column, things like resolution, filters, etc...)

  • Managed by: xmb_ingame.sprx / xmb_ingame.rco
  • Note XMB In-Game is inneficient in concept, because displays items that are dummies not needed and cant be used, in some games the loading of XMB In-Game is laggy (and the loading of trophies list is laggy in most games)

ColdBoot

The animation when PS3 boots, not exactly a mode but should be considered part of XMB

  • Managed by: custom_render_plugin.sprx / custom_render_plugin.rco

GameBoot

The animation when a game boots (practically not notable in newer firmwares), not exactly a mode but should be considered part of XMB

  • Managed by: custom_render_plugin.sprx / custom_render_plugin.rco

XMBML Configuration Files

These are XML files which outlines the logic of XMB categories. All of the XMBML files are included in all firmwares for all PS3 models, and are located in path: /dev_flash/vsh/resource/explore/xmb/

For more information about the structure of this files see: XMBML Structure, XMBML Functions and XMBML Coding Examples pages.

  • Notes:
    • VSH heavily regulates the Setting Category and the .XML file is only used by when accessing the XMB "in-game", even then it restricts what parts of the .XML are actually shown. It is not possible to modify the Settings Category to any effect by editing the .XML configuration file
PS3 XMBML Configuration Files
XMB Users
Users
Settings
Settings
Photo
Photo
Music
Music
Video
Video
TV/Video Services
TV/Video Services
Game
Game
Network
Network
PlayStation Network
PlayStation Network
Friends
Friends
Pre Logins
(Common)
category_user_login.xml
root
category_friend.xml
root_hide_friend
Retail  CEX 
View id
category_user.xml
root
category_sysconf.xml
root
category_photo.xml
root
category_music.xml
root
category_video.xml
root
category_tv.xml
root
category_game.xml
root
category_network.xml
root
category_psn.xml
root
category_friend.xml
root
Debug  DEX  DECR 
View id
category_user.xml
root
category_sysconf.xml
root
category_photo.xml
root
category_music.xml
root_for_dex
category_video.xml
root_for_dex
category_tv.xml
root
category_game_tool2.xml
root_dex
category_network_tool2.xml
root
category_psn.xml
tool_root
category_friend.xml
root
Shop (Staff)  SHOP 
View id
category_user.xml
root
category_sysconf.xml
root
category_photo.xml
root
category_music.xml
root
category_video.xml
root
category_tv.xml
root
category_game.xml
root
category_network_shop.xml
shop_staff_root
category_psn.xml
shop_staff_root
category_friend.xml
root
Shop (Guest)  SHOP 
View id
category_user_shop.xml
root
category_sysconf_shop.xml
root
category_photo.xml
shop_root
category_music.xml
root
category_video.xml
root
category_tv.xml
root
category_game.xml
shop_guest_root
category_network_shop.xml
root
category_psn.xml
shop_guest_root
category_friend_shop.xml
root
Arcade  ARC 
View id
category_sysconf.xml
root
category_photo.xml
root
category_music.xml
root
category_video_bdu.xml ?
root
category_game_tool2.xml
root_arcade
category_network.xml
root
category_friend.xml
root
AV/Test  AV TEST 
View id
category_user.xml
root_for_BDU ?
category_sysconf.xml
root
category_photo.xml
root
category_music.xml
root
category_video_bdponly.xml ?
root
category_tv.xml
root
category_game.xml ?
root_for_BDU ?
category_network.xml ?
root
category_psn.xml
root ?
category_friend.xml
root ?
XMB database
Filters
(Common)
registory.xml registory.xml registory.xml
upload_list.xml
download_list.xml
playlist.xml videodownloader_list.xml savedata_list.xml
Others
XML FallBack null.xml
root
Obsolete
and
Unknown
category_widget.xml
root
category_network_tool2.xml
root_info
category_photo.xml
stage_demo_root
category_music.xml
stage_demo_root
category_network.xml
stage_demo_root
category_friend.xml
stage_demo_root
category_friend_tool2.xml
root_for_soe
category_avchat.xml
root
category_network_.xml
xai_test_root
category_network_.xml
store_root
category_video_bdponly.xml
root
category_user.xml
root_for_BDU
category_game.xml
root_for_BDU
category_user.xml
root_power_only
category_game_tool2.xml
root_for_ingame_gaikai_dex
root_for_sdps3_gaikai_dex
category_game_exitonly.xml
root
category_media.xml ?
root
category_user_tool2.xml
root
debug.xml ?
root
root.xml ?
segmentize
root


Pre Logins

  • category_user_login.xml
    • Used for the 'Log In' XMB Category, which only shows when no user is logged in a offline account.
    • Found in all "explore_*.sprx" modules, except: "explore_plugin_game.sprx" and "explore_plugin_np.sprx"
  • category_friend.xml with view id root_hide_friend
    • Used when not loged in a online account (PSN)

Target ID related

  • category_user.xml, category_sysconf.xml, category_photo.xml, category_music.xml, category_video.xml, category_tv.xml, category_game.xml, category_network.xml, category_psn.xml, category_friend.xml using the view id root
    • Used by CEX Target ID (retail PS3 models) and as the defaults used by other PS3 models that doesnt have an specific .xml or view id

XMB Database Filters

These are XMBML Configuration Files which are used in the 'behind the scenes' of running the XMB.

  • registory.xml
    • Used for the organisation of User Data which is accessible from the XMB
  • upload_list.xml
    • Photo/Music/Video Locations for Upload
  • download_list.xml
    • Used for the Download of Photos/Music/Video to various external and internal locations.
    • Directly Dependent Modules: data_copy_plugin.sprx, download_plugin.sprx, friendim_plugin.sprx, photolist_plugin.sprx, playlist_plugin.sprx, scenefolder_plugin.sprx, sysconf_plugin.sprx, videodownloader_plugin.sprx, webbrowser_plugin.sprx, webrender_plugin.sprx
  • playlist.xml
    • Used for creating Playlists
    • Directly Dependent Modules: filecopy_plugin.sprx, playlist_plugin.sprx
  • videodownloader_list.xml
    • Used for downloading videos, to both 'secure' and 'not secure' locations. USB Mass Storage devices are not included in either.
    • Directly Dependent Modules: videodownloader_plugin.sprx
  • savedata_list.xml
    • Outlines the XMB entries for creating new saves, for both PSP and PS3 games.
    • Directly Dependent Modules: ps3_savedata_plugin.sprx, ps3_savedata_plugin_game.sprx, ps3_savedata_plugin_psp.sprx

Others

  • null.xml
    • Fallback/Dummy/Testing Purposes
    • Found in all "explore_*.sprx" modules
  • category_widget.xml
    • RSS Related