RCOXML Coding

From PS3 Developer wiki
Revision as of 08:41, 27 September 2016 by Sandungas (talk | contribs) (→‎FontTree: moved to Talk:RCOXML Fonts)
Jump to navigation Jump to search

Description

RCOXML files are the XML descriptors embedded inside Resource Container (RCO) files

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

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 Structure

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.

Code Sample

MainTree

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

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

FontTree

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

TextTree

ModelTree

None of the PS3 rco's uses a ModelTree

SoundTree

ObjectTree

  • 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