Editing Talk:RCOXML Objects
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 7: | Line 7: | ||
A bit of background story... rcomage was made by zinga burga for PSP, at that time he had to figure the names by looking at other related text strings, he used the exact codename only in few of them, and he invented other unnofficial names based on educated guesses, but there are many innacurate names and a few unknowns<br> | A bit of background story... rcomage was made by zinga burga for PSP, at that time he had to figure the names by looking at other related text strings, he used the exact codename only in few of them, and he invented other unnofficial names based on educated guesses, but there are many innacurate names and a few unknowns<br> | ||
At the initial steps of rcomage development zinga burga realized that it was posible to extract the info inside the RCO structure as an XML format (this is something sony made on purpose), but inside the RCO files there is not any XML. This is when zinga burga coined the term "RCOXML Objects" because rcomage is representing the RCO contents in XML format (and this wiki respected the term), but in the names of the VSH export function are named '''WidgetType''', in other words, we could say the table below is a list of '''Widgets''' ordered by his '''Type'''<br> | At the initial steps of rcomage development zinga burga realized that it was posible to extract the info inside the RCO structure as an XML format (this is something sony made on purpose), but inside the RCO files there is not any XML. This is when zinga burga coined the term "RCOXML Objects" because rcomage is representing the RCO contents in XML format (and this wiki respected the term), but in the names of the VSH export function are named '''WidgetType''', in other words, we could say the table below is a list of '''Widgets''' ordered by his '''Type'''<br> | ||
At some point kakaroto and geohot updated rcomage source code to add support for PS3 (they had to change the endianess and added definitions for a few RCOXML objects only supported by PS3 that was breaking the output) but maybe there are new objects specific for PS3 over ID | At some point kakaroto and geohot updated rcomage source code to add support for PS3 (they had to change the endianess and added definitions for a few RCOXML objects only supported by PS3 that was breaking the output) but maybe there are new objects specific for PS3 over ID 0x81F. Anyway, so far rcomage supports up to ID 0x81F (32 objects) | ||
*Notes | *Notes | ||
**It seems the items ('''XItem''' | **It seems the items ('''XItem''' 0x80C, '''MItem''' 0x80A, '''LItem''' 0x814, '''IItem''' 0x818) doesnt have VSH exports because are terminal objects located at bottom of the hierarchy (are always the children of a parent "list") | ||
**The codename "Prim" seems to be inherited from PSX->PSP->PS3 and seems to be a [https://en.wikipedia.org/wiki/Geometric_primitive geometric primitive]. In the PSX XMB the options availables for it was: type="rect", type="line", type="outline". It seems to be used to draw lines, frames, etc... | **The codename "Prim" seems to be inherited from PSX->PSP->PS3 and seems to be a [https://en.wikipedia.org/wiki/Geometric_primitive geometric primitive]. In the PSX XMB the options availables for it was: type="rect", type="line", type="outline". It seems to be used to draw lines, frames, etc... | ||
Line 17: | Line 17: | ||
{| class="wikitable" style="line-height:1em; font-size:1em" | {| class="wikitable" style="line-height:1em; font-size:1em" | ||
|- | |- | ||
! rowspan="2" | [[Template:RCO TOC entry types| | ! rowspan="2" | [[Template:RCO TOC entry types|Type+ID]] !! colspan="2" | Name !! colspan="2" | paf [[VSH Exports#paf|VSH Exports]] !! rowspan="2" | Notes | ||
|- | |- | ||
! <abbr title="and name in wiki by now, at some point could be changed">RCOmage</abbr> !! Official !! NID !! Sample | ! <abbr title="and name in wiki by now, at some point could be changed">RCOmage</abbr> !! Official !! NID !! Sample | ||
Line 23: | Line 23: | ||
| colspan="6" style="text-align:center; background:#ddd" | Supported by {{icon content psp|50px}} and {{icon content ps3|50px}} | | colspan="6" style="text-align:center; background:#ddd" | Supported by {{icon content psp|50px}} and {{icon content ps3|50px}} | ||
|- | |- | ||
| | | 0x800 || {{cellcolors|#d53}} ObjectTree || Scene ? || style="font-family:monospace" | 0x41BBFE5E ? || paf::Ph'''Scene'''::WidgetType(void) ? || Doubtful, it seems to be either "Scene" or "Widget" | ||
|- | |- | ||
| | | 0x801 || {{cellcolors|#d53}} Page || Widget ? || style="font-family:monospace" | 0x546B3D02 ? || paf::Ph'''Widget'''::WidgetType(void) ? || Doubtful, it seems to be either "Scene" or "Widget" | ||
|- | |- | ||
| | | 0x802 || {{cellcolors|#8e8}} Plane || Plane || style="font-family:monospace" | 0x10DEDCC7 || paf::Ph'''Plane'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x803 || {{cellcolors|#8e8}} Button || Button || style="font-family:monospace" | 0x24A5BD6B || paf::Ph'''Button'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x804 || {{cellcolors|#f93}} XMenu || XmBar || style="font-family:monospace" | 0x703117AD || paf::Ph'''XmBar'''::WidgetType(void) || The parent of XmList 0x806 | ||
|- | |- | ||
| | | 0x805 || {{cellcolors|#d53}} XMList || XmItem ? || style="font-family:monospace" | 0xC84FD77B ? || paf::Ph'''XmItem'''::WidgetType(void) ? || The children of XmList 0x806 | ||
|- | |- | ||
| | | 0x806 || {{cellcolors|#d53}} XList || XmList ? || style="font-family:monospace" | 0x4FF7B8A9 ? || paf::Ph'''XmList'''::WidgetType(void) ? || The children of XmBar 0x804 and the parent of XmItem 0x805 | ||
|- | |- | ||
| | | 0x807 || {{cellcolors|#8e8}} Progress || Progress || style="font-family:monospace" | 0xE801C345 || paf::Ph'''Progress'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x808 || {{cellcolors|#8e8}} Scroll || Scroll || style="font-family:monospace" | 0x009207F4 || paf::Ph'''Scroll'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x809 || {{cellcolors|#f93}} MList || MenuList || style="font-family:monospace" | 0xA98865F8 || paf::Ph'''MenuList'''::WidgetType(void) || The parent of MenuItem 0x80A | ||
|- | |- | ||
| | | 0x80A || {{cellcolors|#f93}} MItem || MenuItem ? || ? || ? || The children of MenuList 0x809 | ||
|- | |- | ||
| | | 0x80B || {{cellcolors|#d53}} ObjUnknown0xB || ? || ? || ? || The parent of XItem 0x80C ? | ||
|- | |- | ||
| | | 0x80C || {{cellcolors|#d53}} XItem || ? || ? || ? || The children of ObjUnknown0xB 0x80B ? | ||
|- | |- | ||
| | | 0x80D || {{cellcolors|#8e8}} Text || Text || style="font-family:monospace" | 0xB7DFCE90 || paf::Ph'''Text'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x80E || {{cellcolors|#d53}} ModelObject || Model ? || ? || ? || This is intended to load a (3D model) [https://www.ifcaro.net/qhimm/index.php/PSP/GMO_Format .GMO] file for the PSP wave | ||
|- | |- | ||
| | | 0x80F || {{cellcolors|#d53}} Spin || Spin ? || style="font-family:monospace" | ? || ? || In the VSH exports page there are some mentioning "PhSpin" but is missing the generic paf::PhSpin::WidgetType(void) | ||
|- | |- | ||
| | | 0x810 || {{cellcolors|#d53}} Action || NumSpin ? || style="font-family:monospace" | 0x59A11C82 ? || paf::Ph'''NumSpin'''::WidgetType(void) ? || | ||
|- | |- | ||
| | | 0x811 || {{cellcolors|#8e8}} ItemSpin || ItemSpin ? || style="font-family:monospace" | 0x4C36ABBB ? || paf::Ph'''ItemSpin'''::WidgetType(void) ? || | ||
|- | |- | ||
| | | 0x812 || {{cellcolors|#d53}} Group || PlaneDiv ? || style="font-family:monospace" | 0xE36C18F5 ? || paf::Ph'''PlaneDiv'''::WidgetType(void) ? || | ||
|- | |- | ||
| | | 0x813 || {{cellcolors|#f93}} LList || List ? || style="font-family:monospace" | 0xD64EDE7C ? || paf::Ph'''List'''::WidgetType(void) ? || The parent of Item 0x814 | ||
|- | |- | ||
| | | 0x814 || {{cellcolors|#f93}} LItem || Item ? || ? || ? || The children of List 0x813 | ||
|- | |- | ||
| | | 0x815 || {{cellcolors|#f93}} Edit || IPAddr || style="font-family:monospace" | 0x3806365F || paf::Ph'''IPAddr'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x816 || {{cellcolors|#8e8}} Clock || Clock || style="font-family:monospace" | 0x545D47A2 || paf::Ph'''Clock'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x817 || {{cellcolors|#f93}} IList || InfoList || style="font-family:monospace" | 0xF7630798 || paf::Ph'''InfoList'''::WidgetType(void) || The parent of InfoItem 0x818 | ||
|- | |- | ||
| | | 0x818 || {{cellcolors|#f93}} IItem || InfoItem ? || ? || ? || The children of InfoList 0x817 | ||
|- | |- | ||
| | | 0x819 || {{cellcolors|#d53}} Icon || ? || ? || ? || Terminal object, same specific attributes than all the other "items". The difference with standard "items" is "icon" have standard attributes (but the standard "items" doesnt) | ||
|- | |- | ||
| | | 0x81A || {{cellcolors|#d53}} UButton || ? || ? || ? || This is an improved version of '''Button''' 0x803 | ||
|- | |- | ||
| colspan="6" style="text-align:center; background:#ddd" | Supported by {{icon content ps3|50px}} only | | colspan="6" style="text-align:center; background:#ddd" | Supported by {{icon content ps3|50px}} only | ||
|- | |- | ||
| | | 0x81B || {{cellcolors|#d53}} ObjUnknown0x1B || ? || ? || ? || | ||
|- | |- | ||
| | | 0x81C || {{cellcolors|#f93}} CheckBoxGroup || CheckBoxList || style="font-family:monospace" | 0x90F4F801 || paf::Ph'''CheckBoxList'''::WidgetType(void) || The parent of CheckBox 0x81D | ||
|- | |- | ||
| | | 0x81D || {{cellcolors|#f93}} CheckboxItem || CheckBox || style="font-family:monospace" | 0xBF66BF2D || paf::Ph'''CheckBox'''::WidgetType(void) || The children of CheckBoxList 0x81C | ||
|- | |- | ||
| | | 0x81E || {{cellcolors|#f93}} Meter || LevelMeter || style="font-family:monospace" | 0xC88CA4B2 || paf::Ph'''LevelMeter'''::WidgetType(void) || | ||
|- | |- | ||
| | | 0x81F || {{cellcolors|#f93}} EditBox || LabelText || style="font-family:monospace" | 0xDDD4ACF6 || paf::Ph'''LabelText'''::WidgetType(void) || This is an improved version of '''Text''' 0x80D | ||
|} | |} | ||
Line 93: | Line 93: | ||
{| class="wikitable" style="font-size:small" | {| class="wikitable" style="font-size:small" | ||
|- | |- | ||
!rowspan=" | !rowspan="4" | Color legend: | ||
|- | |- | ||
! {{cellcolors|#8e8}} Green | ! {{cellcolors|#8e8}} Green | ||
Line 111: | Line 108: | ||
*Other VSH export candidates: | *Other VSH export candidates: | ||
**paf::Ph'''LabelPrim | **paf::Ph'''LabelPrim'''::WidgetType(void) | ||
**paf::Ph'''LabelPrimDiv'''::PhLabelPrimDiv(paf::PhWidget *, paf::PhAppear *) | **paf::Ph'''LabelPrimDiv'''::PhLabelPrimDiv(paf::PhWidget *, paf::PhAppear *) | ||
**paf::Ph'''Camera'''::PhCamera(paf::PhWidget *, paf::PhAppear *) | **paf::Ph'''Camera'''::PhCamera(paf::PhWidget *, paf::PhAppear *) | ||
*Spins confussion | *Spins confussion | ||
**The object | **The object named '''ItemSpin''' by rcomage has been found in official firmware using event names with the word "NumSpin": | ||
***event:native:/OnFocusLeft'''NumSpin'''WizardEventHandler | |||
***event:native:/OnFocusRight'''NumSpin'''WizardEventHandler | |||
**The object named '''Spin''' by rcomage has been found in official firmware using event names with the word "ispin" (a short form of "ItemSpin"): | **The object named '''Spin''' by rcomage has been found in official firmware using event names with the word "ispin" (a short form of "ItemSpin"): | ||
***object2:lftv_page212_group000_'''ispin'''000 <--- this is loading another "object" so the name '''ispin''' belongs to the other object | ***object2:lftv_page212_group000_'''ispin'''000 <--- this is loading another "object" so the name '''ispin''' belongs to the other object | ||
***object2:lftv_page212_group000_'''ispin'''001 <--- this is loading another "object" so the name '''ispin''' belongs to the other object | ***object2:lftv_page212_group000_'''ispin'''001 <--- this is loading another "object" so the name '''ispin''' belongs to the other object | ||
**The official codenames are '''ItemSpin''' and '''NumSpin''' but it seems in rcomage are swapped. Additionally there is another codename for '''Spin''' that is a bit confusing by now | |||
**In the VSH exports page there are 3 exports that returns names related with spins (but one of the returned strings seems to be wrong) | **In the VSH exports page there are 3 exports that returns names related with spins (but one of the returned strings seems to be wrong) | ||
***const char* paf_4C36ABBB() <-- returns "PhItemSpin" | ***const char* paf_4C36ABBB() <-- returns "PhItemSpin" | ||
***const char* paf_CA9160F6() <-- returns "PhNumSpin" | ***const char* paf_CA9160F6() <-- returns "PhNumSpin" | ||
***const char* paf_59A11C82() <-- returns "PhNumSpin" | ***const char* paf_59A11C82() <-- returns "PhNumSpin" | ||
*Other related VSH exports | *Other related VSH exports | ||
** | **PAF_Resource_DOMGetNodeChildByID | ||
** | **PAF_Resource_DOMGetNodeChildByPos | ||
**PAF_Resource_DOMGetNodeData | **PAF_Resource_DOMGetNodeData | ||
** | **PAF_Resource_DOMGetNodeFirstChild | ||
** | **PAF_Resource_DOMGetNodeID | ||
** | **PAF_Resource_DOMGetNodeNext | ||
** | **PAF_Resource_DOMGetNodeType | ||
**PAF_Resource_GetPageNodeByID | **PAF_Resource_GetPageNodeByID | ||
**PAF_Resource_GetWidgetNodeByID | **PAF_Resource_GetWidgetNodeByID | ||
**PAF_Resource_ResolveRefNode | **PAF_Resource_ResolveRefNode | ||
**PAF_Resource_ResolveRefString | **PAF_Resource_ResolveRefString | ||
**PAF_Resource_ResolveRefWString | **PAF_Resource_ResolveRefWString | ||
Line 143: | Line 142: | ||
There are 6 groups of list/item associated with each other that was given consecutive IDs in hexadecimal. The fact that was given consecutive IDs means each group of list/item was implemented at the same time because requires each other (an "item" requires a parent "list", and a "list" without children "items" doesnt makes sense) | There are 6 groups of list/item associated with each other that was given consecutive IDs in hexadecimal. The fact that was given consecutive IDs means each group of list/item was implemented at the same time because requires each other (an "item" requires a parent "list", and a "list" without children "items" doesnt makes sense) | ||
*The "items" '''doesnt''' have | *The "items" '''doesnt''' have [[Template:RCO_TOC_Objects_standard_attributes|standard attributes]], '''only''' have 3 specific attributes (usually a ref/text/image). This is an easy way to identify them, by the abscense of the [[Template:RCO_TOC_Objects_standard_attributes|standard attributes]] | ||
*The "lists" '''does''' have | *The "lists" '''does''' have [[Template:RCO_TOC_Objects_standard_attributes|standard attributes]], and a variable number of specific attributes. All the lists (except 0x804 and 0x806) seems to use specific override attributes intended to adjust them dinamically for the different screen resolutions supported by PS3, see: [[XMB Layouts]]. | ||
*The consecutive ID's is a handy way to identify them, it means there is an "item" ID next to each "list" ID (or the other way around, there is a "list" ID next to each "item" ID) | *The consecutive ID's is a handy way to identify them, it means there is an "item" ID next to each "list" ID (or the other way around, there is a "list" ID next to each "item" ID) | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| colspan="4" | ! rowspan="2" | <abbr title="in big endian for PS3">Type</abbr> !! colspan="4" | Name !! rowspan="2" | Displayed as !! rowspan="2" | Notes | ||
|- | |- | ||
! | ! Suggested names<br>for Wiki !! <abbr title="invented based on oficial labels">In rcomage</abbr> !! <abbr title="found by reading the labels, it could not be accurate though because official coders had the freedom to use any invented name">In official RCOXML code</abbr> !! <abbr title="this seems to be the best place to get the internal names">In official [[VSH Exports]]</abbr> | ||
|-{{cellcolors|lightgrey}} | |||
| colspan="7" | | |||
|- | |- | ||
| | | 0x804 || '''XmBar''' ? || {{cellcolors|#ff9999}} <abbr title="following the naming convention of the others this is a list">XMenu</abbr> || {{cellcolors|#ff9999}} <abbr title="Found in PSP firmware 1.00 following the naming convention of the others this is a list">name="xmenu"</abbr> || <abbr title="PhXmBar">XmBar</abbr> || XMB Main Menu, horizontal list placeholder || rowspan="3" | Main XMB | ||
|- | |- | ||
| | | 0x805 || '''XmItem''' ? || {{cellcolors|#ff9999}} <abbr title="is an item, not a list">XMList</abbr> || {{cellcolors|#ff9999}} <abbr title="Found in PSP firmware 1.00 is an item, not a list">name="list_sysconf"</abbr> || <abbr title="PhXmItem">XmItem</abbr> ? || XMB Main Menu, horizontal list item | ||
|- | |- | ||
| | | 0x806 || '''XmList''' ? || {{cellcolors|#ff9999}} XList || <abbr title="Found in PSP firmware 1.00">name="xlist_video_config"</abbr> || <abbr title="PhXmList">XmList</abbr> ? || XMB Main Menu, vertical list placeholder | ||
|-{{cellcolors|black}} | |||
| colspan="7" | | |||
|- | |- | ||
| 0x809 || '''MenuList''' || MList || <abbr title="Found in PS3 firmware 4.76">name="mlist_select_update_method"</abbr> || <abbr title="PhMenuList">MenuList</abbr> || Context Menu, vertical list placeholder ||rowspan="2" | Menu when pressing triangle<br>at right side of the screen | |||
|- | |- | ||
| | | 0x80A || '''MenuItem''' || MItem || <abbr title="Found in PS3 firmware 4.76">name="mitem_select_network"</abbr> || || Context Menu, vertical list item | ||
|-{{cellcolors|lightgrey}} | |||
| colspan="7" | | |||
|- | |- | ||
| | | {{cellcolors|#ff9999}} 0x80B || '''UnkList''' ? || {{cellcolors|#ff9999}} ObjUnknown0xB || || || || rowspan="2" | 0x80B is the "List"<br>0x80C is the "Item" | ||
|- | |- | ||
| | | 0x80C || '''UnkItem''' ? || {{cellcolors|#ff9999}} XItem || <abbr title="Found in PSP firmware 1.00">name="item_xlist_video_config_volume"</abbr> || || | ||
|-{{cellcolors|lightgrey}} | |||
| colspan="7" | | |||
|- | |- | ||
| 0x813 || '''List''' || LList || <abbr title="Found in PSP firmware 1.00">name="list_edit_apcnf7"</abbr> || <abbr title="PhList">List</abbr> || Editable Menu, horizontal list placeholder || rowspan="2" | Like in network settings | |||
|- | |- | ||
| | | 0x814 || '''Item''' || LItem || <abbr title="Found in PSP firmware 1.00">name="litem_edit_apcnf7_0"</abbr> || || Editable Menu, horizontal list item | ||
|-{{cellcolors|lightgrey}} | |||
| colspan="7" | | |||
|- | |- | ||
| | | 0x817 || '''InfoList''' || IList || <abbr title="Found in PSP firmware 1.00">name="ilist_ms_info"</abbr> || <abbr title="PhInfoList">InfoList</abbr> || Information Menu, vertical list placeholder || rowspan="2" | Like in audio file info | ||
|- | |- | ||
| | | 0x818 || '''InfoItem''' || IItem || <abbr title="Found in PSP firmware 1.00">name="item_ms_info_size"</abbr> || || Information Menu, vertical list item | ||
|-{{cellcolors|lightgrey}} | |||
| colspan="7" | | |||
|- | |- | ||
| 0x81C || '''CheckList''' || {{cellcolors|#ff9999}} <abbr title="following the naming convention of the others this is a list, not a group, sometimes appears in the official labels as '''clist'''">CheckboxGroup</abbr> || <abbr title="Found in PS3 firmware 4.76, is a list, not a group">name="checkbox_list_npsignin"</abbr> || <abbr title="PhCheckBoxList">CheckBoxList</abbr> || Checkbox Menu, horizontal list placeholder || rowspan="2" | Like in poweroff screen | |||
|- | |- | ||
| | | 0x81D || '''CheckItem''' || CheckboxItem || <abbr title="Found in PS3 firmware 4.76">name="checkbox_item_select_auto_power_off"</abbr> || <abbr title="PhCheckBox">CheckBox</abbr> ? || Checkbox Menu, horizontal list item | ||
| | |||
|} | |} | ||
*If '''ObjUnknown0xB''' is a "list" it means it should start with the 21 [[Template:RCO_TOC_Objects_standard_attributes|standard attributes]] followed by an unknown number of specific attributes. Those specific attributes should be similar than the other "list" objects. As example, the attribute number 22 (in other words... the first specific attribute) could be a counter of its children "items", and the last attributes should be [[Template:RCO_TOC_reference_types|events]], as example: <code><Name attribute="event:native:/OnFocusIn"/></code> | |||
* | |||
=Rcomage unknown object attributes= | =Rcomage unknown object attributes= | ||
*See: [[Talk:Rcomage#objattribdef-ps3.ini]] | *See: [[Talk:Rcomage#objattribdef-ps3.ini]] | ||
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 | 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 | ||
=Some textures using attribute names= | =Some textures using attribute names= | ||
Line 267: | Line 225: | ||
<Image name="tex_default_lvmeter_focus" src="Images\tex_default_lvmeter_focus.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" /> | <Image name="tex_default_lvmeter_bg" src="Images\tex_default_lvmeter_bg.png" format="gim" compression="zlib" unknownByte="0" /> | ||
=ObjUnknown0xB= | |||
<strike>*Superbrainstorming based on smoke</strike>. '''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 | |||
<strike>**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--[[User:Sandungas|Sandungas]] ([[User talk:Sandungas|talk]]) 08:16, 8 December 2015 (UTC) | |||
</strike> | |||
=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= | =anchorMode= | ||
Line 276: | Line 274: | ||
**Extracted as "unk" | **Extracted as "unk" | ||
***anchorMode="0x3200" | ***anchorMode="0x3200" | ||
=Lists ItemNum= | |||
Some of the "list" objects have an attribute (always located at the first position in the group of specific attributes) that indicates how many children "items" objects there are. Rcomage (and this wiki page) names this attribute "ItemsCount", but it seems the codename is "ItemNum", this "list" objects seems to use it: | |||
*paf::PhInfoList::SetItemNum(int) | |||
*paf::PhList::SetItemNum(int) | |||
*paf::PhXmList::SetItemNum(int) | |||
*<strike>paf::PhXmBar::SetItemNum(int)</strike> doesnt exists | |||
*<strike>paf::PhMenuList::SetItemNum(int)</strike> doesnt exists | |||
*<strike>paf::PhCheckBoxList::SetItemNum(int)</strike> doesnt exists | |||
*<strike>paf::PhLabelPrim::SetItemNum(int)</strike> doesnt exists | |||
=Events notes= | =Events notes= |