RCOXML Coding: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Description=
=Description=
RCOXML files are the XML descriptor files implicit inside [[Resource Container (RCO)]] files (.rco)
An RCOXML file is a XML file that represents the contents of a RCO file. This RCOXML files doesnt exists inside the RCO file (are just a representation of it). In the compilation enviroment used officially by sony this RCOXML files "should" work as a "pre-build" layout, contains all the info and settings needed to build an RCO file


This RCOXML files doesnt exists inside the .rco container, tools like [[Rcomage]] extracts the info as XML as a representation of the data inside the .rco container
Tools like [[Rcomage]] generates this RCOXML files that can be used to rebuild the RCO, or to build a custom RCO from scratch, this RCOXML files generated by rcomage "should" be pretty similar to the officials because all the info is based in the TOC area of the RCO that is structured as an XML so the conversion from TOC to XML format is direct (also, rcomage adds some info for rebuilding purposes that is not part of the TOC), see [[Resource Container (RCO)]]
 
{{RCOXML contents PS3}}
Are composed by tables, some of this tables works simply as an index of the contents inside the container (texts, sounds, languages), and others tables contains "pages" that builds the XMB items, animations, effects, dialog menues, selection windows, widgets, etc...
 
Note the name "page" here in wiki is used as a generic name for all types of pages, rcomage uses specific names for some types of pages wich purpose was identifyed, this names can vary between different versions of rcomage tool
 
= RCOXML Contents (PS3) =
There are 122 .rco files in PS3 firmware 4.76
 
{| class="wikitable sortable" style="font-size:x-small;"
|-
! rowspan="2" | filename.rco !! colspan="8" | RCOXML contents !! rowspan="2" | notes
|-
! MainTree Name !! [[RCOXML Images|ImageTree]] !! [[RCOXML Fonts|FontTree]] !! [[RCOXML Texts|TextTree]] !! [[RCOXML Models|ModelTree]] !! [[RCOXML Sounds|SoundTree]] !! [[RCOXML Objects|ObjectTree]] !! [[RCOXML Animations|AnimTree]]
|-
| [[ap_plugin]].rco || ap_plugin || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[audioplayer_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[audioplayer_plugin_dummy]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} ||
|-
| [[audioplayer_plugin_mini]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[audioplayer_plugin_util]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[auth_plugin]].rco || auth_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[autodownload_plugin]].rco || autodownload_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[autoupdateconf_plugin]].rco || autoupdateconff_plugin<!--the double "ff" is a sony typo--> || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[avc2_game_plugin]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} ||
|-
| [[avc2_game_video_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[avc2_text_plugin]].rco || tcgui || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[avc_game_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[avc_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[bdp_disccheck_plugin]].rco || bdp_disccheck_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[bdp_plugin]].rco || bdp_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[bdp_storage_plugin]].rco || bdp_storage_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[campaign_plugin]].rco || campaign_plugin || {{yes}} (gim, png) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[category_setting_plugin]].rco || category_setting_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} ||
|-
| [[checker_plugin]].rco || checker || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[closedcaption_config_plugin]].rco || closedcaption_config_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[comboplay_plugin]].rco || comboplay_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[custom_render_plugin]].rco || custom_render_plugin || {{yes}} (gim) || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[data_copy_plugin]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[deviceconf_plugin]].rco || deviceconf_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[dlna_plugin]].rco || dlna || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[download_plugin]].rco || download || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[dtcpip_util]].rco || dtcpip_util || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[edy_plugin]].rco || edy_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} ||
|-
| [[eula_cddb_plugin]].rco || eula_cddb_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[eula_hcopy_plugin]].rco || eula_hcopy || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[eula_net_plugin]].rco || regcam_plugin || {{yes}} (gim, png, jpg) || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} ||
|-
| [[explore_category_friend]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_game]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_music]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_network]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_photo]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_psn]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_sysconf]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_tv]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_user]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_category_video]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_plugin_ft]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_plugin_full]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[explore_plugin_game]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[explore_plugin_np]].rco || explore_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[filecopy_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[friendim_plugin]].rco || friendim || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[friendim_plugin_game]].rco || friendim || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} || Associated .sprx has a different name.
|-
| [[friendml_plugin]].rco || friendml_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[friendml_plugin_game]].rco || friendml_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[friendtrophy_plugin]].rco || friendtrophy_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[friendtrophy_plugin_game]].rco || friendtrophy_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[game_ext_plugin]].rco || game_ext_plugin || {{yes}} (gim, png) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[game_indicator_plugin]].rco || user_info_plugin || {{yes}} (gim) || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[game_plugin]].rco || game_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[gamedata_plugin]].rco || gamedata_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[gamelib_plugin]].rco || gamelib_plugin || {{yes}} (gim) || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[gameupdate_plugin]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[hknw_plugin]].rco || hknw_plugin || {{yes}} (gim) || {{yes}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[idle_plugin]].rco || idle || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[impose_plugin]].rco || impose_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} || Associated .sprx has a different name.
|-
| [[ingame_manual_plugin]].rco || ingame_manual || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[kensaku_plugin]].rco || kensaku || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[msgdialog_plugin]].rco || msgdialog_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[mtpinitiator_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[musicbrowser_plugin]].rco || sample || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[nas_plugin]].rco || nas_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[netconf_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[newstore_effect]].rco || skeleton_plugin || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || Empty file.
|-
| [[newstore_plugin]].rco || newstore_plugin || {{yes}} (gim, png, jpg) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[np_eula_plugin]].rco || npeula || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[np_matching_plugin]].rco || np_matching_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || |
|-
| [[np_multisignin_plugin]].rco || np_multisignin_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[np_sns_plugin]].rco || npsns || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[np_trophy_ingame]].rco || np_achiev || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[np_trophy_plugin]].rco || np_achiev || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[npsignin_plugin]].rco || npsignin_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[osk_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} ||
|-
| [[oskfullkeypanel_plugin]].rco || ime_osk_base_resouce || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[oskpanel_plugin]].rco || ime_osk_base_resouce || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[pesm_plugin]].rco || pesm || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[photo_network_sharing_plugin]].rco || pesm || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[photolist_plugin]].rco || sample || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[photoupload_plugin]].rco || dlna || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[photoviewer_plugin]].rco || photoviewer_plugin || {{yes}} (gim, png) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[playlist_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[podl_plugin]].rco || podl_plugin || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[poweroff_plugin]].rco || poweroff || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[premo_plugin]].rco || premo_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[print_plugin]].rco || print_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[profile_plugin]].rco || profile_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[profile_plugin_mini]].rco || profile_plugin_mini || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[ps3_savedata_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[ps3_savedata_plugin_game_mini]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[rec_plugin]].rco || rec_plugin || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[regcam_plugin]].rco || regcam_plugin || {{yes}} (gim, png, jpg) || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} ||
|-
| [[remotedownload_plugin]].rco || remotedownload || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[sacd_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{yes}} ||
|-
| [[scenefolder_plugin]].rco || sample || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[screenshot_plugin]].rco || screenshot_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[search_service]].rco || search_service || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || Associated .sprx has a different name.
|-
| [[software_update_plugin]].rco || software_update_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[soundvisualizer_plugin]].rco || soundvisualizer || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[strviewer_plugin]].rco || strviewer || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[subdisplay_plugin]].rco || ap_plugin || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[sv_pseudoaudioplayer_plugin]].rco || sv_pseudoaudioplayer || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[sysconf_plugin]].rco || sysconf_plugin || {{yes}} (gim) || {{yes}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[system_plugin]].rco || system_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{yes}} || Associated .sprx has a different name.
|-
| [[thumthum_plugin]].rco || sample || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[upload_util]].rco || upload_util || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[user_info_plugin]].rco || user_info_plugin || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[user_plugin]].rco || user || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[videoeditor_plugin]].rco || skeleton_plugin || {{yes}} (gim, png, jpg) || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} ||
|-
| [[videoplayer_plugin]].rco || videoplayer || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[videoplayer_util]].rco || videoplayer || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[vmc_savedata_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[wboard_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[webbrowser_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[webrender_plugin]].rco || sample || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[xmb_ingame]].rco || xmb_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|-
| [[xmb_plugin_normal]].rco || xmb_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || Associated .sprx has a different name.
|-
| [[ycon_manual_plugin]].rco || ycon_plugin || {{yes}} (gim) || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} ||
|}
 
*'''VSMXfile''' is not included in the table above because none of the PS3 .rco files includes them<!--or rcomage is not able to extract them-->


= RCOXML Structure =
= RCOXML Structure =
Not all nodes below are required, and various object/anim entries are omitted.
This is a '''not-working''' example intended to place all together as an overview. Not all nodes below are required, and various object/anim entries are omitted.


RcoFile - XML root element; generally does not need to be modified
{{Boxcode|code=<syntaxhighlight lang="xml">
MainTree - root RCO node from which everything must descend from
VSMXFile - attached UMD virtual machine instruction code, for UMD and some LFTV RCOs.  Only one may exist in an RCO file
ImageTree - parent node from which all image resources descend from
Image
Image
...
FontTree - parent node from which all fonts descend from
FontStyle
FontStyle
...
TextTree - parent node from which all text language resources descend from
TextLang
TextLang
...
ModelTree - parent node from which all model resources descend from
Model
Model
...
SoundTree - parent node from which all sound resources descend from
Sound
Sound
...
ObjectTree - parent node from which all object pages descend from
<Page>
page objects go here
<Page>
page objects go here
...
AnimTree - parent node from which all animation sequences descend from
<Animation>
animation entries go here
<Animation>
animation entries go here
...
----
This is a '''not-working''' example
{{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.2 -->
<!-- This XML representation of an RCO structure was generated by Rcomage v1.1.2 -->
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="psp" minFirmwareVer="1.5">
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="psp" minFirmwareVer="1.5"> <!-- XML root element, generally does not need to be modified -->
<MainTree name="sample">
<MainTree name="sample"> <!-- root RCO node from which everything must descend from -->
<VSMXFile name="main" src="main.vsmx"></VSMXFile>
<VSMXFile name="main" src="main.vsmx"></VSMXFile> <!-- attached virtual machine instruction code, only one may exist in an RCO file -->
<ImageTree>
<ImageTree> <!-- parent node from which all image resources descend from -->
<Image name="texture" src="texture.gim" format="gim" compression="zlib" unknownByte="0" />
<Image name="texture" src="texture.gim" format="gim" compression="zlib" unknownByte="0" />
</ImageTree>
</ImageTree>
<FontTree>
<FontTree> <!-- parent node from which all fonts descend from -->
<FontStyle name="fontstyle_default" unknownShort1="0x0" unknownShort2="0x0" unknownInt3="0x0" unknownInt4="0x41600000" />
<FontStyle name="fontstyle_default" unknownShort1="0x0" unknownShort2="0x0" unknownInt3="0x0" unknownInt4="0x41600000" />
</FontTree>
</FontTree>
<TextTree>
<TextTree> <!-- parent node from which all text language resources descend from -->
<TextLang src="00_Japanese.xml" language="00_Japanese" format="utf16" />
<TextLang src="00_Japanese.xml" language="00_Japanese" format="utf16" />
</TextTree>
</TextTree>
<ModelTree>
<ModelTree> <!-- parent node from which all model resources descend from -->
<Model name="page_model" src="page_model.gmo" format="gmo" compression="zlib" unknownByte="0" />
<Model name="page_model" src="page_model.gmo" format="gmo" compression="zlib" unknownByte="0" />
</ModelTree>
</ModelTree>
<SoundTree>
<SoundTree> <!-- parent node from which all sound resources descend from -->
<Sound name="sound" src="sound.ch*.vag" format="vag" channels="2" />
<Sound name="sound" src="sound.ch*.vag" format="vag" channels="2" />
</SoundTree>
</SoundTree>
<ObjectTree>
<ObjectTree> <!-- parent node from which all object pages descend from -->
<Page name="main_page" pageMode="0x111" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
<Page name="main_page" pageMode="0x111" pageOnInit="event:script:/main/onInitMainPage" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
<Plane name="main_page_plane" ...standard object attributes here... planeImage="image:texture" planeResizeMode="0x0">
<Plane name="main_page_plane" ...standard object attributes here... planeImage="image:texture" planeResizeMode="0x0">
<ModelObject name="main_page_model"  ...standard object attributes here...  modelobjectModel="model:page_model"></ModelObject>
<ModelObject name="main_page_model"  ...standard object attributes here...  modelobjectModel="model:page_model"></ModelObject>
Line 333: Line 37:
</Page>
</Page>
</ObjectTree>
</ObjectTree>
<AnimTree>
<AnimTree> <!-- parent node from which all animation sequences descend from -->
<Animation name="main_page_fade">
<Animation name="main_page_fade">
<Fade object="object:main_page_plane" duration="100" accelMode="0x0" transparency="1" />
<Fade object="object:main_page_plane" duration="100" accelMode="0x0" transparency="1" />
<FireEvent event="anim:main_page_fade" />
</Animation>
</Animation>
</AnimTree>
</AnimTree>
</MainTree>
</MainTree>
</RcoFile>
</RcoFile>
</syntaxhighlight>}}
</syntaxhighlight>}}


Line 357: Line 61:


===VSMXFile===
===VSMXFile===
None of the PS3 rco's uses a VSMXFile
None of the PS3 rco's uses a VSMXFile. But some PSP .rco's uses it
 
*rough explain of how it works
**The purpose of this script is to communicate with the associated module/sprx, the code inside the script is [[PlayStation JavaScript]] based (see also [[VSMX]] format) and it can call functions with parameters from the module/sprx. It works as a simple way to store predefined actions for the .sprx inside the .rco with a bit of code control involved. The [[RCOXML Objects]] captures the button presses from the controller and based on them loads the script using the buttons as parameters, then the code inside the script is processed and triggers the .sprx
**An script can contain several different actions (are actually .js code functions) and his names are the same than the action names used in [[RCOXML Objects]], as example: '''OnFocusRight''' (action triggered when moving right in the controller)


===ImageTree===
===ImageTree===
Line 363: Line 71:
===FontTree===
===FontTree===
Only used in PS3, only used in sysconf_plugin.rco and hknw_plugin.rco
Only used in PS3, only used in sysconf_plugin.rco and hknw_plugin.rco
*sysconf_plugin.rco example:
{{Boxcode|content=<syntaxhighlight lang="xml">
<FontTree>
<FontStyle name="fontstyle_sanserif" unknownShort1="0x1" unknownShort2="0x0" unknownInt3="0x0" unknownInt4="0x41600000" />
</FontTree>
</syntaxhighlight>}}
*hknw_plugin.rco example:
{{Boxcode|content=<syntaxhighlight lang="xml">
<FontTree>
<FontStyle name="fontstyle_default" unknownShort1="0x0" unknownShort2="0x0" unknownInt3="0x0" unknownInt4="0x41600000" />
<FontStyle name="fontstyle_light" unknownShort1="0x0" unknownShort2="0x101" unknownInt3="0x0" unknownInt4="0x41600000" />
</FontTree>
</syntaxhighlight>}}


===TextTree===
===TextTree===
Line 392: Line 85:


===AnimTree===
===AnimTree===
=Event types=
==native==
Loads a predefined set of actions from the embedded code in the associated .sprx
==object2==
Loads an object from '''ObjectTree'''
==anim==
Loads an animation from '''AnimTree'''
==script==
Loads the [[VSMX]] script from '''VSMXFile'''
=Measure units=
Positions, in pixels with "world coordinates" (0,0,0 of the x,y,z axis) in center of the screen
Sizes, in pixels, negative numbers mirrors the image
Resizes, in percentage in a scale from 0 up to 1, negative numbers mirrors the image
Colors, in RGBA (red, green, blue, alpha) in a scale from 0 up to 1, where 1 represents the max value posible of 255
Times, in miliseconds, where 1000 is one second
Angles, in [https://en.wikipedia.org/wiki/Radian radians] (for rotations over the x,y,z axis), where '''radians=(π/180)*degrees''' (and '''degrees=(180/π)*radians'''), as example for a full circunference of 360º degrees: radians=(3.14/180)*360=6.28 so... 360º degrees = 6.28 radians


{{File Formats}}
{{File Formats}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 17:56, 11 February 2022

Description[edit | edit source]

An RCOXML file is a XML file that represents the contents of a RCO file. This RCOXML files doesnt exists inside the RCO file (are just a representation of it). In the compilation enviroment used officially by sony this RCOXML files "should" work as a "pre-build" layout, contains all the info and settings needed to build an RCO file

Tools like Rcomage generates this RCOXML files that can be used to rebuild the RCO, or to build a custom RCO from scratch, this RCOXML files generated by rcomage "should" be pretty similar to the officials because all the info is based in the TOC area of the RCO that is structured as an XML so the conversion from TOC to XML format is direct (also, rcomage adds some info for rebuilding purposes that is not part of the TOC), see Resource Container (RCO)

RCOXML contents PS3 firmware 4.76 (122 .rco files)  · 
filename name VSMXFile ImageTree FontTree TextTree ModelTree SoundTree ObjectTree AnimTree Notes
ap_plugin.rco ap_plugin No No No No No No Yes No
audioplayer_plugin.rco sample No Yes (gim) No Yes No No Yes No
audioplayer_plugin_dummy.rco sample No No No Yes No No No No
audioplayer_plugin_mini.rco sample No No No Yes No No Yes No
audioplayer_plugin_util.rco sample No No No Yes No No Yes No Associated .sprx has a different name.
auth_plugin.rco auth_plugin No Yes (gim) No Yes No No Yes No
autodownload_plugin.rco autodownload_plugin No Yes (gim) No Yes No No Yes No
autoupdateconf_plugin.rco autoupdateconff_plugin No Yes (gim) No Yes No No Yes No
avc2_game_plugin.rco sample No No No Yes No No No No
avc2_game_video_plugin.rco sample No Yes (gim) No No No No Yes No
avc2_text_plugin.rco tcgui No Yes (gim) No Yes No No Yes No
avc_game_plugin.rco sample No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
avc_plugin.rco sample No Yes (gim) No Yes No No Yes No
bdp_disccheck_plugin.rco bdp_disccheck_plugin No No No Yes No No Yes No
bdp_plugin.rco bdp_plugin No Yes (gim) No Yes No No Yes Yes
bdp_storage_plugin.rco bdp_storage_plugin No No No Yes No No Yes No
campaign_plugin.rco campaign_plugin No Yes (gim, png) No Yes No No Yes No
category_setting_plugin.rco category_setting_plugin No Yes (gim) No Yes No No No No
checker_plugin.rco checker No No No No No No Yes No Associated .sprx has a different name.
closedcaption_config_plugin.rco closedcaption_config_plugin No Yes (gim) No Yes No No Yes No
comboplay_plugin.rco comboplay_plugin No Yes (gim) No Yes No No Yes No
custom_render_plugin.rco custom_render_plugin No Yes (gim) No No No No Yes Yes
data_copy_plugin.rco sample No No No Yes No No Yes No
deviceconf_plugin.rco deviceconf_plugin No Yes (gim) No Yes No No Yes No
dlna_plugin.rco dlna No Yes (gim) No Yes No No Yes No
download_plugin.rco download No Yes (gim) No Yes No No Yes No
dtcpip_util.rco dtcpip_util No No No Yes No No Yes No
edy_plugin.rco edy_plugin No Yes (gim) No Yes No Yes Yes No
eula_cddb_plugin.rco eula_cddb_plugin No Yes (gim) No Yes No No Yes No
eula_hcopy_plugin.rco eula_hcopy No Yes (gim) No Yes No No Yes No
eula_net_plugin.rco regcam_plugin No Yes (gim, png, jpg) No Yes No Yes Yes No
explore_category_friend.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_game.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_music.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_network.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_photo.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_psn.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_sysconf.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_tv.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_user.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_category_video.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_plugin_ft.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_plugin_full.rco explore_plugin No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
explore_plugin_game.rco explore_plugin No Yes (gim) No Yes No No Yes No
explore_plugin_np.rco explore_plugin No Yes (gim) No Yes No No Yes No
filecopy_plugin.rco sample No Yes (gim) No Yes No No Yes No
friendim_plugin.rco friendim No Yes (gim) No Yes No No Yes Yes
friendim_plugin_game.rco friendim No Yes (gim) No Yes No No Yes Yes Associated .sprx has a different name.
friendml_plugin.rco friendml_plugin No Yes (gim) No Yes No No Yes No
friendml_plugin_game.rco friendml_plugin No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
friendtrophy_plugin.rco friendtrophy_plugin No Yes (gim) No Yes No No Yes No
friendtrophy_plugin_game.rco friendtrophy_plugin No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
game_ext_plugin.rco game_ext_plugin No Yes (gim, png) No Yes No No Yes No
game_indicator_plugin.rco user_info_plugin No Yes (gim) No No No No Yes No
game_plugin.rco game_plugin No No No Yes No No Yes No Associated .sprx has a different name.
gamedata_plugin.rco gamedata_plugin No No No Yes No No Yes No
gamelib_plugin.rco gamelib_plugin No Yes (gim) No No No No Yes Yes
gameupdate_plugin.rco sample No No No Yes No No Yes No
hknw_plugin.rco hknw_plugin No Yes (gim) Yes Yes No No Yes No
idle_plugin.rco idle No No No No No No Yes No
impose_plugin.rco impose_plugin No Yes (gim) No Yes No No Yes Yes Associated .sprx has a different name.
ingame_manual_plugin.rco ingame_manual No No No Yes No No Yes No
kensaku_plugin.rco kensaku No Yes (gim) No Yes No No Yes No
msgdialog_plugin.rco msgdialog_plugin No No No Yes No No Yes No Associated .sprx has a different name.
mtpinitiator_plugin.rco sample No Yes (gim) No Yes No No Yes No
musicbrowser_plugin.rco sample No No No No No No Yes No
nas_plugin.rco nas_plugin No Yes (gim) No Yes No No Yes No
netconf_plugin.rco sample No Yes (gim) No Yes No No Yes No
newstore_effect.rco skeleton_plugin No No No No No No No No Empty file.
newstore_plugin.rco newstore_plugin No Yes (gim, png, jpg) No Yes No No Yes No
np_eula_plugin.rco npeula No Yes (gim) No Yes No No Yes No
np_matching_plugin.rco np_matching_plugin No Yes (gim) No Yes No No Yes No
np_multisignin_plugin.rco np_multisignin_plugin No Yes (gim) No Yes No No Yes No
np_sns_plugin.rco npsns No Yes (gim) No Yes No No Yes No
np_trophy_ingame.rco np_achiev No Yes (gim) No Yes No No Yes No
np_trophy_plugin.rco np_achiev No Yes (gim) No Yes No No Yes No
npsignin_plugin.rco npsignin_plugin No Yes (gim) No Yes No No Yes Yes
osk_plugin.rco sample No Yes (gim) No No No Yes Yes No
oskfullkeypanel_plugin.rco ime_osk_base_resouce No Yes (gim) No Yes No No Yes No
oskpanel_plugin.rco ime_osk_base_resouce No Yes (gim) No Yes No No Yes No
pesm_plugin.rco pesm No No No No No No Yes No
photo_network_sharing_plugin.rco pesm No Yes (gim) No Yes No No Yes No
photolist_plugin.rco sample No No No No No No Yes No
photoupload_plugin.rco dlna No Yes (gim) No Yes No No Yes No
photoviewer_plugin.rco photoviewer_plugin No Yes (gim, png) No Yes No No Yes No
playlist_plugin.rco sample No Yes (gim) No Yes No No Yes No
podl_plugin.rco podl_plugin No No No No No No Yes No
poweroff_plugin.rco poweroff No No No Yes No No Yes No
premo_plugin.rco premo_plugin No Yes (gim) No Yes No No Yes Yes
print_plugin.rco print_plugin No Yes (gim) No Yes No No Yes No
profile_plugin.rco profile_plugin No Yes (gim) No Yes No No Yes No
profile_plugin_mini.rco profile_plugin_mini No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
ps3_savedata_plugin.rco sample No Yes (gim) No Yes No No Yes No
ps3_savedata_plugin_game_mini.rco sample No No No Yes No No Yes No
rec_plugin.rco rec_plugin No No No No No No Yes No
regcam_plugin.rco regcam_plugin No Yes (gim, png, jpg) No Yes No Yes Yes No
remotedownload_plugin.rco remotedownload No No No Yes No No Yes No
sacd_plugin.rco sample No Yes (gim) No Yes No No Yes Yes
scenefolder_plugin.rco sample No No No No No No Yes No
screenshot_plugin.rco screenshot_plugin No No No Yes No No Yes No
search_service.rco search_service No No No Yes No No No No Associated .sprx has a different name.
software_update_plugin.rco software_update_plugin No Yes (gim) No Yes No No Yes No
soundvisualizer_plugin.rco soundvisualizer No Yes (gim) No Yes No No Yes No
strviewer_plugin.rco strviewer No No No Yes No No Yes No
subdisplay_plugin.rco ap_plugin No No No No No No Yes No Associated .sprx has a different name.
sv_pseudoaudioplayer_plugin.rco sv_pseudoaudioplayer No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
sysconf_plugin.rco sysconf_plugin No Yes (gim) Yes Yes No No Yes No
system_plugin.rco system_plugin No Yes (gim) No Yes No Yes Yes Yes Associated .sprx has a different name.
thumthum_plugin.rco sample No No No Yes No No Yes No
upload_util.rco upload_util No Yes (gim) No Yes No No Yes No
user_info_plugin.rco user_info_plugin No No No Yes No No Yes No
user_plugin.rco user No Yes (gim) No Yes No No Yes No
videoeditor_plugin.rco skeleton_plugin No Yes (gim, png, jpg) No Yes No Yes Yes No
videoplayer_plugin.rco videoplayer No Yes (gim) No Yes No No Yes No
videoplayer_util.rco videoplayer No No No Yes No No Yes No
vmc_savedata_plugin.rco sample No Yes (gim) No Yes No No Yes No
wboard_plugin.rco sample No Yes (gim) No Yes No No Yes No
webbrowser_plugin.rco sample No Yes (gim) No Yes No No Yes No
webrender_plugin.rco sample No Yes (gim) No Yes No No Yes No
xmb_ingame.rco xmb_plugin No Yes (gim) No Yes No No Yes No
xmb_plugin_normal.rco xmb_plugin No Yes (gim) No Yes No No Yes No Associated .sprx has a different name.
ycon_manual_plugin.rco ycon_plugin No Yes (gim) No Yes No No Yes No

RCOXML Structure[edit | edit source]

This is a not-working example intended to place all together as an overview. Not all nodes below are required, and various object/anim entries are omitted.

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- This XML representation of an RCO structure was generated by Rcomage v1.1.2 -->
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="psp" minFirmwareVer="1.5">				<!-- XML root element, generally does not need to be modified -->
	<MainTree name="sample">									<!-- root RCO node from which everything must descend from -->
		<VSMXFile name="main" src="main.vsmx"></VSMXFile>					<!-- attached virtual machine instruction code, only one may exist in an RCO file -->
		<ImageTree>										<!-- parent node from which all image resources descend from -->
			<Image name="texture" src="texture.gim" format="gim" compression="zlib" unknownByte="0" />
		</ImageTree>
		<FontTree>										<!-- parent node from which all fonts descend from -->
			<FontStyle name="fontstyle_default" unknownShort1="0x0" unknownShort2="0x0" unknownInt3="0x0" unknownInt4="0x41600000" />
		</FontTree>
		<TextTree>										<!-- parent node from which all text language resources descend from -->
			<TextLang src="00_Japanese.xml" language="00_Japanese" format="utf16" />
		</TextTree>
		<ModelTree>										<!-- parent node from which all model resources descend from -->
			<Model name="page_model" src="page_model.gmo" format="gmo" compression="zlib" unknownByte="0" />
		</ModelTree>
		<SoundTree>										<!-- parent node from which all sound resources descend from -->
			<Sound name="sound" src="sound.ch*.vag" format="vag" channels="2" />
		</SoundTree>
		<ObjectTree>										<!-- parent node from which all object pages descend from -->
			<Page name="main_page" pageMode="0x111" pageOnInit="event:script:/main/onInitMainPage" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
				<Plane name="main_page_plane" ...standard object attributes here... planeImage="image:texture" planeResizeMode="0x0">
					<ModelObject name="main_page_model"  ...standard object attributes here...  modelobjectModel="model:page_model"></ModelObject>
					<Action name="go" actionText="text:msg_go"></Action>
				</Plane>
			</Page>
		</ObjectTree>
		<AnimTree>										<!-- parent node from which all animation sequences descend from -->
			<Animation name="main_page_fade">
				<Fade object="object:main_page_plane" duration="100" accelMode="0x0" transparency="1" />
				<FireEvent event="anim:main_page_fade" />
			</Animation>
		</AnimTree>
	</MainTree>
</RcoFile>

MainTree[edit | edit source]

All RCOXML files starts with the tag:

	<MainTree name="label">

MainTree represents the root of the container, so it seems the label is the name of the .rco container and is working as an identifyer of it

  • Is unknown how this labels works and his purpose, but follows a few rules:
    • The same label can be used by several .rco's that shares functions
    • This label names doesnt appears in the associated .sprx
  • Other .rco files from previous firmwares (not present in latest firmwares) using the MainTree name sample
    • xai_plugin.rco
    • In PSP firmware there are also some .rco files using the MainTree name sample

VSMXFile[edit | edit source]

None of the PS3 rco's uses a VSMXFile. But some PSP .rco's uses it

  • rough explain of how it works
    • The purpose of this script is to communicate with the associated module/sprx, the code inside the script is PlayStation JavaScript based (see also VSMX format) and it can call functions with parameters from the module/sprx. It works as a simple way to store predefined actions for the .sprx inside the .rco with a bit of code control involved. The RCOXML Objects captures the button presses from the controller and based on them loads the script using the buttons as parameters, then the code inside the script is processed and triggers the .sprx
    • An script can contain several different actions (are actually .js code functions) and his names are the same than the action names used in RCOXML Objects, as example: OnFocusRight (action triggered when moving right in the controller)

ImageTree[edit | edit source]

FontTree[edit | edit source]

Only used in PS3, only used in sysconf_plugin.rco and hknw_plugin.rco

TextTree[edit | edit source]

ModelTree[edit | edit source]

None of the PS3 rco's uses a ModelTree

SoundTree[edit | edit source]

ObjectTree[edit | edit source]

  • in this page under the section "ObjectTree" are explained what seems to be a few golden rules related to:
    • object display priority
    • children objects inherited attributes from parent object

AnimTree[edit | edit source]