Talk:RCOXML Objects
Rcomage unknown object attributes
At the time of documenting the RCO format for wiki it was posible to identify some/lot of unknown attributes, in the link there are a few of them listed as dirty notes (later was identifyed some more that are not included in the link). At this point there is no need for that dirty notes because the new names of the identifyed attributes was used in the tables in wiki, the dirty notes are just kept to have a record of the changes, and liked here because are very related with this page
Type | Name | Displayed as | Notes | |||
---|---|---|---|---|---|---|
Suggested names for Wiki |
In rcomage | In official RCOXML code | In official VSH Exports | |||
0x804 | XmBar ? | XMenu | name="xmenu" | XmBar | XMB Main Menu, horizontal list placeholder | Main XMB |
0x805 | XmItem ? | XMList | name="list_sysconf" | XmItem ? | XMB Main Menu, horizontal list item | |
0x806 | XmList ? | XList | name="xlist_video_config" | XmList ? | XMB Main Menu, vertical list placeholder | |
0x809 | MenuList | MList | name="mlist_select_update_method" | MenuList | Context Menu, vertical list placeholder | Menu when pressing triangle at right side of the screen |
0x80A | MenuItem | MItem | name="mitem_select_network" | Context Menu, vertical list item | ||
0x80B | UnknownList ? | ObjUnknown0xB | 0x80B is the "List" 0x80C is the "Item" | |||
0x80C | UnknownItem ? | XItem | name="item_xlist_video_config_volume" | |||
0x813 | List | LList | name="list_edit_apcnf7" | List | Editable Menu, horizontal list placeholder | Like in network settings |
0x814 | Item | LItem | name="litem_edit_apcnf7_0" | Editable Menu, horizontal list item | ||
0x817 | InfoList | IList | name="ilist_ms_info" | InfoList | Information Menu, vertical list placeholder | Like in audio file info |
0x818 | InfoItem | IItem | name="item_ms_info_size" | Information Menu, vertical list item | ||
0x81C | CheckBoxList | CheckboxGroup | name="checkbox_list_npsignin" | CheckBoxList | Checkbox Menu, horizontal list placeholder | Like in poweroff screen |
0x81D | CheckBoxItem | CheckboxItem | name="checkbox_item_select_auto_power_off" | CheckBox ? | Checkbox Menu, horizontal list item |
- Problematic names and values are marked in red
- The "Items" doesnt have standard attributes, only have 3 specific attributes, and that atributes uses to be a reference (ref/text/image but not always, there are some expections). This is an easy way to identify them
- The "Lists" does have standard attributes, and a variable number of specific attributes based on its purpose, all the lists (except xmenu and xlist) seems to use specific attributes intended to override the position/size of the list for the different screen resolutions supported by PS3, see: XMB Layouts
- If the previous sentence is true, it means we know the first 21 attributes of ObjUnknown0xB (the standard ones, shared by a lot of objects, always located in the same positions) http://www.psdevwiki.com/ps3/Template:RCO_TOC_Objects_standard_attributes and the specific ones can be found by getting inspiration in the specific attributes of the other "list" objects and the test-error method (first one uses to be a "counter" of childrens, then a variable number of "stuff", and at the end a bunch of "events")
WidgetType
See the "paf" VSH Exports
It seems the Widget is an identifyer of what rcomage and this wiki page baptished unnofficially as "objects", of all them or only a group
By looking at the internal RCO structure is obvious that the value used internally to identify every "object" is the first field of what we has been naming Template:RCO TOC entry common area, or in other words, the Template:RCO TOC entry types
So the question is... all "RCO TOC entry types" should be considered WidgetType ? (and consequentlly needed to be renamed in wiki pages)... or only a group of them are considered "widgets" ? and there is other group (no idea wich one by now, but RCOXML Animations could have a different name)
By looking at this list is posible to make a list of the exports that uses the keyword "WidgetType" and deduce the correspondency with the names we have been using in rcomage/wiki. Some of the "unnofficial" names we have been using matches exactlly, others partially, and there are a few "new" names hard to deduce to wich "object" corresponds, and probably are included the 2 infamous ObjUnknown0xB and ObjUnknown0x1B that are completlly unknown for rcomage and doesnt seems to be used in any of the official PSP and PS3 firmwares
Name | VSH Exports | name in RCOmage | Notes | |||
---|---|---|---|---|---|---|
Scene | paf::PhScene::WidgetType(void) | Page ? | ||||
Plane | paf::PhPlane::WidgetType(void) | Plane | ||||
PlaneDiv | paf::PhPlaneDiv::WidgetType(void) | Group | ||||
XmBar | paf::PhXmBar::WidgetType(void) | XMenu | <XMenu xmenuOnScrollIn="event:native:/Bar::onScrollIn" /> | |||
XmItem | paf::PhXmItem::WidgetType(void) | XMList ? | ||||
XmList | paf::PhXmList::WidgetType(void) | XList ? | <XList xlistOnScrollIn="event:native:/XmbMenu::OnScrollInXmList" /> | |||
MenuList | paf::PhMenuList::WidgetType(void) | MList | <MList mlistOnFocusRight="event:native:/Menu::cbFocusRight" /> | |||
List | paf::PhList::WidgetType(void) | LList | ||||
InfoList | paf::PhInfoList::WidgetType(void) | IList | <IList ilistOnFocusRight="event:native:/EulaLicensingWizard::onFocusRight" /> | |||
CheckBoxList | paf::PhCheckBoxList::WidgetType(void) | CheckBoxGroup | <CheckboxGroup checkboxgroupOnPush="event:native:/VideoEditorUpload::ServiceLogin::OnPushSavePassword" /> | |||
MenuItem | N/A | MItem | ||||
Item | N/A | LItem | ||||
InfoItem | N/A | IItem | ||||
CheckBox | paf::PhCheckBox::WidgetType(void) | CheckBoxItem ? | ||||
Progress | paf::PhProgress::WidgetType(void) | Progress | ||||
Scroll | paf::PhScroll::WidgetType(void) | Scroll | ||||
Text | paf::PhText::WidgetType(void) | Text | ||||
LabelText | paf::PhLabelText::WidgetType(void) | EditBox | The object named "EditBox" by rcomage is exactly like the object "Text" with some attributes added at the end (for the label) | |||
ItemSpin | paf::PhItemSpin::WidgetType(void) | ItemSpin | ||||
NumSpin | paf::PhNumSpin::WidgetType(void) | Spin | ||||
Button | paf::PhButton::WidgetType(void) | Button | ||||
Clock | paf::PhClock::WidgetType(void) | Clock | ||||
LevelMeter | paf::PhLevelMeter::WidgetType(void) | Meter | ||||
IPAddr | paf::PhIPAddr::WidgetType(void) | Edit | All the "event" strings found in PS3 for this object contains the name "ipaddr" ! | |||
Widget | paf::PhWidget::WidgetType(void) | ObjUnknown0x1B ? | Related with Widgets ? | |||
LabelPrim | paf::PhLabelPrim::WidgetType(void) | ObjUnknown0xB ? | ||||
LabelPrimDiv | N/A | XItem ? | ||||
OskButton | N/A | UButton ? | Is needed to verify with some official example if the object named "UButton" by rcomage has some relationship with the "OnScreenKeyboard" | |||
Camera | N/A | ModelObject ? | this loads a GMO file (3D model), maybe is considered a camera ? | |||
Spin | N/A | Action ? | This could be sending a custom text string to trigger an action in the .sprx ? |
Red | The Game works perfect without any noticable errors |
---|---|
Green | The Game has some small issues like small flickering |
Blue | The Game has several stronger issues like stronger flickering |
Yellow | The Game crashes after some in-game-progress (randomly) |
- Other unnofficial "object" names that are not in the table above:
- General
- type=0x00 ObjectTree
- Items (it seems the items doesnt have VSH exports, because are terminal objects located at bottom of the hierarchy)
- type=0x0C XItem
- type=0x0A MItem
- type=0x14 LItem
- type=0x18 IItem
- Others
- type=0x19 Icon (terminal object, same specific attributes than "items"). The difference with standard "items" is "icon" have standard attributes (and standard items doesnt)
- type=0x10 Action (terminal object, special purpose)
- type=0x0E ModelObject (terminal object, special purpose)
- type=0x1A UButton (very similar than Button, is weird there is not any documented VSH export matching with this object)
- Unknowns
- type=0x0B ObjUnknown0xB
- type=0x1B ObjUnknown0x1B
- General
Some texture using object and attribute names
The names of this images indicates the attribute names of some RCOXML objects. Are the object attributes with datatype/reftype "image"
<Image name="tex_default_text_field" src="Images\tex_default_text_field.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_text_focus" src="Images\tex_default_text_focus.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_text_field_focus" src="Images\tex_default_text_field_focus.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_progress_base" src="Images\tex_default_progress_base.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_progress_base_shadow" src="Images\tex_default_progress_base_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_progress_slider" src="Images\tex_default_progress_slider.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_base" src="Images\tex_default_scroll_base.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_base_shadow" src="Images\tex_default_scroll_base_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_slider" src="Images\tex_default_scroll_slider.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_arrow_up" src="Images\tex_default_scroll_arrow_up.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_arrow_up_shadow" src="Images\tex_default_scroll_arrow_up_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_arrow_down" src="Images\tex_default_scroll_arrow_down.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_scroll_arrow_down_shadow" src="Images\tex_default_scroll_arrow_down_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_spin_arrow_up" src="Images\tex_default_spin_arrow_up.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_spin_arrow_up_shadow" src="Images\tex_default_spin_arrow_up_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_spin_arrow_down" src="Images\tex_default_spin_arrow_down.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_spin_arrow_down_shadow" src="Images\tex_default_spin_arrow_down_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_check" src="Images\tex_default_check.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_check_shadow" src="Images\tex_default_check_shadow.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_lvmeter_on" src="Images\tex_default_lvmeter_on.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_lvmeter_off" src="Images\tex_default_lvmeter_off.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_lvmeter_focus" src="Images\tex_default_lvmeter_focus.png" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_default_lvmeter_bg" src="Images\tex_default_lvmeter_bg.png" format="gim" compression="zlib" unknownByte="0" />
ObjUnknown0xB
*Superbrainstorming based on smoke. This brainstorming seems to be wrong, because the object named "XMList" by rcomage seems to be an "item" so it cant have other xml "item" childrens
**what about this ?, matches prety fine with how are grouped. Main menu separated because is an special object created specifically for top XMB menu, and the others grouped in pairs for "list" and "item". Also matches how are ordered in rcomage. All this attributes appears consecutivelly in groups of two, at top... XMList and XList... then MList MItem... then ObjUnknown0xB and XItem... then LList and LItem... then IList and IItem. Note how XMList doesnt seems to have an XMItem
XMenu XMList ObjUnknown0xB <------ is XMItem ? XList XItem MList MItem LList LItem IList IItem
If this is true and ObjUnknown0xB is actually XMItem it seems is posible to deduce the attributes because the other "item" objects uses pretty similar attributes (usually 3 attributes, either images or texts), to verify it are needed some/lot of tests by copying the attributes from the other items and creating a 100% custom object for the experiment also a good understanding of all the other rcoxml code, so is hard to know, im not skilled/brave to build this frankenstein but i think the theory is good enought--Sandungas (talk) 08:16, 8 December 2015 (UTC)
Objects using overrides in the "specific" attributes
The "standard" attributes contains 6 overrides and most objects uses the "standard" attributes, but additionally to this ones some of the objects (seems to) use more overrides in the "specific" attributes
- Lists
- MList (3 ?, override size XYZ ?)
- LList (2 ?, override size XY ?)
- IList (1 ?, override size X ?)
- CheckboxGroup (3 ?, override size XYZ ?)... this object is an expanded/repurposed version of Mlist intended for PS3 only (not supported in PSP), the 3 override attributes are the same than Mlist
- Text
- Text (3 ?, override size XYZ ?)
- EditBox (3 ?, override size XYZ ?)... this object is an expanded/repurposed version of Text intended for PS3 only (not supported in PSP), the 3 override attributes are the same than Text
- Others
- Meter (1 ?, override size X ?)
anchorMode
Rcomage has some problems with this attribute from PS3 RCOs, it manages the value as 4 bytes length but in the internal RCO file structure is divided in 2 chunks of 2 bytes each. The anchor mode is specifyed by the first byte of the second chunk, is unknown why sony "reserved" 2 bytes for the first chunk (first chunk is always filled with zeroes). All this is a bit confusing and what im saying could not be completly accurate because the different endianess in between PSP and PS3 and what RCOmage does internally. RCOmage allows to choose a "data type" for every attribute by editing the file objectattribdef-ps3.ini. There is no way to extract the value accuratelly so the alternatives are to set it as "int", or you can set it to "unk" instead, this way it will be managed as raw data (no conversion applyed so you can see the real value when the info is extracted to XML)
- Examples:
- Extracted as "int"
- anchorMode="0x320000"
- Extracted as "unk"
- anchorMode="0x3200"
- Extracted as "int"
Links, notes, etc...
- Elements and attributes to be used in RCOmageXML
- https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&tl=en&u=http://ctfs.wiki.fc2.com/wiki/RCOmageXML&usg=ALkJrhjRxsEgJ7QEiFf9aBAfxp9-eXKIsQ
- http://electricvoice.blog40.fc2.com/blog-entry-668.html
- https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=es&ie=UTF8&prev=_t&rurl=translate.google.com&sl=auto&tl=en&u=http://electricvoice.blog40.fc2.com/blog-category-21.html&usg=ALkJrhg33PGW3RXbfzfYuN1OcV9P5AkM0w