@sandungas @DeViL303
I came across this thread and realized you guys don't know what these Pairs do
Code:<Pair key="fo_lbl_alpha"><String></String></Pair> <Pair key="fo_lbl2_alpha"><String></String></Pair>
The first one affects the title and the second one the info when out of focus, you can use values between 0 and 1 to give different transparency (alpha) effects, any values above 1 will give a strange blinking behaviour,
i use these attributes manly on long info texts that overlaps the item below it.
Example here (See the Install Package Files info text)
Case 1: Normal XMB behaviour (Long text will overlap the other icon)
![]()
Case 2: Usingto hide it and show only when focusedCode:<Pair key="fo_lbl2_alpha"><String>0</String></Pair>
Out of focus: (As i set it to 0, it will be transparent)
![]()
And it will show only when focused
![]()
Hmmm ok, i dedicated some minutes to try to make sense of the codenames, let me know if i understood you@sandungas @DeViL303
See here i'm using
Code:<Pair key="fo_lbl_alpha"><String>0.6</String></Pair> <Pair key="fo_lbl2_alpha"><String>0.2</String></Pair>
Any value above 1 will give a blinking effect
![]()
Hmmm, this codenames are also interesting, there is actually another VSH export codenamed paf::PhXmBar::WidgetType(void)@sandungas @DeViL303
Code:<Pair key="bar_action"><String></String></Pair>
Is useful when a plugin uses an user interface and we need to hide the XMB to show it properly
Lets use download plugin as example
Code:<Pair key="module_name"><String>download_plugin</String></Pair> <Pair key="module_action"><String>0</String></Pair>
This one allow you to enter an url to download a file without need to go to the web browser
![]()
Using "none' as bar action will result in:
![]()
Using "hide" as bar_action will result in:
![]()
If what i said in my previous posts about the codenames meaning is right (fo_lbl_alpha = focus out label alpha) then we can deduce this one is an effect applyed when the cursor is in the "focus in" stateBTW
<Pair key="lbl_half"><String>1</String></Pair>
is still a mistery to me
Hmmm, this codenames are also interesting, there is actually another VSH export codenamed paf::PhXmBar::WidgetType(void)
And there is another object incorrectly named "XMenu" in rcomage, this was another made up name, not official
The weird detail is that XmBar (or XMenu)... has been always considered the main horizontal row of icons (the icons most at top of the hierarchy, photo, video, game, etc...)
I guess this concept is not completly right... but at least it makes sense when you use the value "hide" with it is not visible any icon because you are hiding the whole XrossMediaBar (or XMB for short)
This is awesome, im going to need some time to process, review and verify all that names, but to get you an idea of how important are this codenames let me eplain some detailsI did some research on vsh exports a while ago which allowed me and TheRouletteBoi to render text and planes via vsh plugins (sprx), those widgets are the same as the ones stored in rco's.
So far I have the whole widget class hierarchy, those are the official names used by sony:
View attachment 39778
To understand this better I reimplemented it here:
https://github.com/TheRouletteBoi/VirtualShell/blob/main/include/vsh/paf.hpp#L1893
As for the XmBar you mentioned, it is the 'parent' of the xmb, its childs are the XmList entries which are the categories that holds XmItem's. So hiding it will also hide the categories and their childs.
<Clock clockOnTick="event:native:/OnTickClockFirstConfig">
I've been rebuilding the table, rewrote the texts introduction to explain what im trying to achieve with it, and moved the texts and the table to the top of the page
The idea to add the VSH exports at the right columns of the table was because many time ago (not sure how many but some years) nobody was mentioning that relationship existed, at some point i was checking the VSH exports page in wiki and realized a couple of the names did seem to match (at least partially), some days later i started trying to figure the other names that was not matching, made a list just to be sure how many i had... and yeah at some point it was obvious around 80% or more of the names was already listed in the VSH exports pageNote that some 'WidgetType' functions doesn't have an export, simply because they aren't used in vsh modules.
Dont worry, your comment didnt confused me, the notes i added in the table about the parent-children relationships are intended to call attention to the fact that some of that "lists" and "items" are given a consecutive ID in hexadecimal, there are 6 groups:Also, for the widget 'hierachy', I meant the classes inheritance, sorry for the mistake.
Great, thx for your interest, i will do the custom rco later, but lets progress step by step, im looking at the official xmb_plugin_normal.rco and there are 3 things that needs to be confirmed, please tell me the codename used by this unique names:@sandungas
Well you see, PhWidgets objects all have a vtable with 'WidgetType' as the first method, so by getting the root of the whole xmb and by parsing every childs, I should be able to dump the type of every objects in the currently loaded rcos which would make your work easier.
If you can provide me an xmb_plugin rco with unknowns I'll be able to retrieve their names.
Thats the kind of things im afraid that could happen, but the most we progress identifying the others the most close we are going to be to find if there is something missing or unrelated to RCO contentsAlso, for the ones that aren't present on the wiki, ie: PhCanvas, I found the names in a pre-retail paf.sprx file with symbols, maybe they are only used by specific modules like the web browser...
void Dump(paf::PhWidget* widget)
{
if (!widget)
return;
vsh::printf("%s | %s\n", widget->name.c_str(), widget->WidgetType());
for (auto bigchungus : widget->childs)
if (bigchungus)
Dump(bigchungus);
}
void DumpWidgets()
{
paf::PhWidget* page_xmb = paf::View::Find("xmb_plugin")->FindWidget("page_xmb");
if (!page_xmb)
return (void)vsh::printf("DumpWidgets: fatal error\n");
paf::PhWidget* phi_root = page_xmb->GetDispatcher();
Dump(phi_root);
}
This dumps are very useful, nice idea. I been taking a fast peek at the .txt dumps and it seems you got a lot of the ones marked as doubtful, i will update the wiki soon (a couple of days max)@sandungas
The parent of 'page_xmb' is a widget called 'phi_root', i believe it is the same for every pages.
I attached to this post a zip file containing a few rco objects dump with their respective names and types.
Here's the code i used:
Code:void Dump(paf::PhWidget* widget) { if (!widget) return; vsh::printf("%s | %s\n", widget->name.c_str(), widget->WidgetType()); for (auto bigchungus : widget->childs) if (bigchungus) Dump(bigchungus); } void DumpWidgets() { paf::PhWidget* page_xmb = paf::View::Find("xmb_plugin")->FindWidget("page_xmb"); if (!page_xmb) return (void)vsh::printf("DumpWidgets: fatal error\n"); paf::PhWidget* phi_root = page_xmb->GetDispatcher(); Dump(phi_root); }
UniqueName | CodeName
CodeName | UniqueName
PhScene | whatever_name_1
OtherCodeNames | children
OtherCodeNames | children
OtherCodeNames | children
PhScene | whatever_name_2
OtherCodeNames | children
PhScene | whatever_name_3
OtherCodeNames | children
OtherCodeNames | children
<PhScene name="whatever_name_1"></PhScene>
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
<PhScene name="whatever_name_2"></PhScene>
<OtherCodeNames name="children"></OtherCodeNames>
<PhScene name="whatever_name_3"></PhScene>
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
<PhScene name="whatever_name_1">
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
</PhScene>
<PhScene name="whatever_name_2">
<OtherCodeNames name="children"></OtherCodeNames>
</PhScene>
<PhScene name="whatever_name_3">
<OtherCodeNames name="children"></OtherCodeNames>
<OtherCodeNames name="children"></OtherCodeNames>
</PhScene>
int childLevel = 0;
void Dump(paf::PhWidget* widget)
{
if (!widget)
return;
std::string tabs(childLevel, '\t');
vsh::printf("%s<%s name=\"%s\">", tabs.c_str(), widget->WidgetType(), widget->name.c_str());
if (!widget->childs.empty())
vsh::printf("\n");
childLevel++;
for (auto bigchungus : widget->childs)
if (bigchungus)
Dump(bigchungus);
childLevel--;
if (widget->childs.empty())
vsh::printf("</%s>\n", widget->WidgetType());
else
vsh::printf("%s</%s>\n\n", tabs.c_str(), widget->WidgetType());
}
void DumpWidgets()
{
paf::PhWidget* page_xmb = paf::View::Find("xmb_plugin")->FindWidget("page_xmb");
if (!page_xmb)
return (void)vsh::printf("DumpWidgets: fatal error\n");
paf::PhWidget* phi_root = page_xmb->GetDispatcher();
vsh::printf("<?xml version=\"1.0\" encoding=\"ASCII\"?>\n");
Dump(phi_root);
}
<Page name="page_auth_plugin_password_number_input" pageMode="0x1101" pageOnInit="event:native:/OnInitPageWizardEventHandler" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
<Plane name="plane_auth_plugin_password_number_input" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x0" positionOverrideY="0x0" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" planeImage="nothing" planeResizeMode="0x0">
<Text name="text_title_auth_plugin_password_number_input" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x1000" onInit="nothing" positionOverrideX="0x100" positionOverrideY="0x72020100" positionOverrideZ="0x100" sizeOverrideX="0x2c040100" sizeOverrideY="0x2d040100" sizeOverrideZ="0x0" textMessage="text:msg_pw_enter" textFontStyle="nothing" textFontMode="0x1000100" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x14000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Group name="group_spin_auth_plugin_password_number_input" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x100" positionOverrideY="0x100" positionOverrideZ="0x100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0">
<ItemSpin name="numspin_auth_plugin_password_number_input_0" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="event:native:/OnInitNumSpinWizardEventHandler" positionOverrideX="0x6d020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" itemspinUnkInt23="0x0" itemspinUnkInt24="0x9" itemspinUnkInt25="0x1" itemspinUnkInt26="0xffffffff" itemspinUnk27="0x1" itemspinUnkFloat28="0" itemspinImageArrow="nothing" itemspinImageArrowShadow="nothing" itemspinOnDecide="event:native:/OnDecideNumSpinWizardEventHandler" itemspinOnCancel="event:native:/OnCancelNumSpinWizardEventHandler" itemspinOnRollIn="nothing" itemspinOnCursorMove="nothing" itemspinOnFocusIn="nothing" itemspinOnFocusOut="nothing" itemspinOnFocusLeft="nothing" itemspinOnFocusRight="event:native:/OnFocusRightNumSpinWizardEventHandler" itemspinOnFocusUp="nothing" itemspinOnFocusDown="nothing"></ItemSpin>
<ItemSpin name="numspin_auth_plugin_password_number_input_1" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="event:native:/OnInitNumSpinWizardEventHandler" positionOverrideX="0x6e020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" itemspinUnkInt23="0x0" itemspinUnkInt24="0x9" itemspinUnkInt25="0x1" itemspinUnkInt26="0xffffffff" itemspinUnk27="0x1" itemspinUnkFloat28="0" itemspinImageArrow="nothing" itemspinImageArrowShadow="nothing" itemspinOnDecide="event:native:/OnDecideNumSpinWizardEventHandler" itemspinOnCancel="event:native:/OnCancelNumSpinWizardEventHandler" itemspinOnRollIn="nothing" itemspinOnCursorMove="nothing" itemspinOnFocusIn="nothing" itemspinOnFocusOut="nothing" itemspinOnFocusLeft="event:native:/OnFocusLeftNumSpinWizardEventHandler" itemspinOnFocusRight="event:native:/OnFocusRightNumSpinWizardEventHandler" itemspinOnFocusUp="nothing" itemspinOnFocusDown="nothing"></ItemSpin>
<ItemSpin name="numspin_auth_plugin_password_number_input_2" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="event:native:/OnInitNumSpinWizardEventHandler" positionOverrideX="0x6f020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" itemspinUnkInt23="0x0" itemspinUnkInt24="0x9" itemspinUnkInt25="0x1" itemspinUnkInt26="0xffffffff" itemspinUnk27="0x1" itemspinUnkFloat28="0" itemspinImageArrow="nothing" itemspinImageArrowShadow="nothing" itemspinOnDecide="event:native:/OnDecideNumSpinWizardEventHandler" itemspinOnCancel="event:native:/OnCancelNumSpinWizardEventHandler" itemspinOnRollIn="nothing" itemspinOnCursorMove="nothing" itemspinOnFocusIn="nothing" itemspinOnFocusOut="nothing" itemspinOnFocusLeft="event:native:/OnFocusLeftNumSpinWizardEventHandler" itemspinOnFocusRight="event:native:/OnFocusRightNumSpinWizardEventHandler" itemspinOnFocusUp="nothing" itemspinOnFocusDown="nothing"></ItemSpin>
<ItemSpin name="numspin_auth_plugin_password_number_input_3" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="event:native:/OnInitNumSpinWizardEventHandler" positionOverrideX="0x70020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" itemspinUnkInt23="0x0" itemspinUnkInt24="0x9" itemspinUnkInt25="0x1" itemspinUnkInt26="0xffffffff" itemspinUnk27="0x1" itemspinUnkFloat28="0" itemspinImageArrow="nothing" itemspinImageArrowShadow="nothing" itemspinOnDecide="event:native:/OnDecideNumSpinWizardEventHandler" itemspinOnCancel="event:native:/OnCancelNumSpinWizardEventHandler" itemspinOnRollIn="nothing" itemspinOnCursorMove="nothing" itemspinOnFocusIn="nothing" itemspinOnFocusOut="nothing" itemspinOnFocusLeft="event:native:/OnFocusLeftNumSpinWizardEventHandler" itemspinOnFocusRight="nothing" itemspinOnFocusUp="nothing" itemspinOnFocusDown="nothing"></ItemSpin>
<Text name="text_spin_asterisk_auth_plugin_password_number_input_0" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x6d020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000100" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x13000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Text name="text_spin_asterisk_auth_plugin_password_number_input_1" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x6e020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000100" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x13000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Text name="text_spin_asterisk_auth_plugin_password_number_input_2" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x6f020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000100" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x13000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Text name="text_spin_asterisk_auth_plugin_password_number_input_3" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x70020000" positionOverrideY="0x71020000" positionOverrideZ="0x0" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000100" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x13000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
</Group>
</Plane>
</Page>
<PhScene name="page_auth_plugin_password_number_input">
<PhCamera name="camera"></PhCamera>
<PhPlane name="plane_auth_plugin_password_number_input">
<PhText name="text_title_auth_plugin_password_number_input"></PhText>
<PhWidget name="group_spin_auth_plugin_password_number_input">
<PhNumSpin name="numspin_auth_plugin_password_number_input_0">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="numspin_auth_plugin_password_number_input_1">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="numspin_auth_plugin_password_number_input_2">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="numspin_auth_plugin_password_number_input_3">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhText name="text_spin_asterisk_auth_plugin_password_number_input_0"></PhText>
<PhText name="text_spin_asterisk_auth_plugin_password_number_input_1"></PhText>
<PhText name="text_spin_asterisk_auth_plugin_password_number_input_2"></PhText>
<PhText name="text_spin_asterisk_auth_plugin_password_number_input_3"></PhText>
</PhWidget>
</PhPlane>
</PhScene>
@jordywastaken i updated the table https://www.psdevwiki.com/ps3/Talk:RCOXML_Objects#WidgetType
The blue color means the object was found in your dumps, and it matches with the xml code generated by rcomage
Lets try to catch a couple more, PhLevelMeter and PhProgress
The LevelMeter is the volume bar used by the media player, this screenshot is from PSVita, but in the PS3 (and in the PSP) it looks similar, is composed by a row of little rectangles
![]()
-----------------------
And the Progress is a bar used in different places (when installing a firmware, or when checking the HDD filesystem), but probably there are other better places to dump it
![]()
While looking at the media player i realized it have a progress bar too (at bottom right corner), im not sure if you can make a dump from inside the media player, anyway, if you can figure other places of the XMB where is used that bar it should work too because as far i know the XMB only have 1 progress bar
![]()
EDIT:
Can you make another dump in this screen ?, this menu looks pretty nice and useful for homebrew, i guess is a combination of CheckBoxList (parent) and CheckBox (children), but right now im not sure
![]()
<PhScene name="audioplayer_volume_page">
<PhCamera name="camera"></PhCamera>
<PhLevelMeter name="audioplayer_volume_level_meter">
<PhLabelPrimDiv name=""></PhLabelPrimDiv>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
</PhLevelMeter>
</PhScene>
<PhScene name="nas_dialog">
<PhCamera name="camera"></PhCamera>
<PhWidget name="mbox_seat">
<PhPlane name="mbox_show_plane"></PhPlane>
<PhPlane name="mbox_show_plane2"></PhPlane>
<PhWidget name="mbox_base_plane">
<PhInfoList name="mbox_label">
<PhWidget name="">
<PhLabelPrimDiv name=""></PhLabelPrimDiv>
<PhLabelPrimDiv name=""></PhLabelPrimDiv>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
<PhScroll name="mbox_scroll"></PhScroll>
</PhInfoList>
<PhProgress name="mbox_progress0"></PhProgress>
<PhText name="mbox_progress_label0"></PhText>
<PhText name="mbox_progress_status_label0"></PhText>
</PhWidget>
<PhPlane name="mbox_texture0"></PhPlane>
<PhPlane name="mbox_texture1"></PhPlane>
</PhWidget>
</PhScene>
<Plane name="Plane object"></Plane>
<Button name="Button object"></Button>
<XList name="XList object"></XList>
<Progress name="Progress object"></Progress>
<Scroll name="Scroll object"></Scroll>
<MList name="MList object"></MList>
<MItem name="MItem object"></MItem>
<ObjUnknown0xB name="ObjUnknown0xB object"></ObjUnknown0xB>
<XItem name="XItem object"></XItem>
<Text name="Text object"></Text>
<ModelObject name="ModelObject object"></ModelObject>
<Spin name="Spin object"></Spin>
<Action name="Action object"></Action>
<ItemSpin name="ItemSpin object"></ItemSpin>
<Group name="Group object"></Group>
<LList name="LList object"></LList>
<LItem name="LItem object"></LItem>
<Edit name="Edit object"></Edit>
<Clock name="Clock object"></Clock>
<IList name="IList object"></IList>
<IItem name="IItem object"></IItem>
<Icon name="Icon object"></Icon>
<UButton name="UButton object"></UButton>
<ObjUnknown0x1B name="ObjUnknown0x1B object"></ObjUnknown0x1B>
<CheckboxItem name="CheckboxItem object"></CheckboxItem>
<Meter name="Meter object"></Meter>
<EditBox name="EditBox object"></EditBox>
<PhPlane name="Plane object"></PhPlane>
<PhButton name="Button object"></PhButton>
<PhXmList name="XList object">
<PhWidget name="xlist_orig">
<PhXmItem name="item0"></PhXmItem>
<PhXmItem name="item1"></PhXmItem>
<PhXmItem name="item2"></PhXmItem>
<PhXmItem name="item3"></PhXmItem>
<PhXmItem name="item4"></PhXmItem>
<PhXmItem name="item5"></PhXmItem>
<PhXmItem name="item6"></PhXmItem>
<PhXmItem name="item7"></PhXmItem>
<PhXmItem name="item8"></PhXmItem>
<PhXmItem name="item9"></PhXmItem>
<PhXmItem name="item10"></PhXmItem>
</PhWidget>
</PhXmList>
<PhProgress name="Progress object"></PhProgress>
<PhScroll name="Scroll object"></PhScroll>
<PhMenuList name="MList object">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhMenuList>
<PhText name="Text object"></PhText>
<PhItemSpin name="Spin object">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhItemSpin>
<PhNumSpin name="ItemSpin object">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhWidget name="Group object"></PhWidget>
<PhList name="LList object">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhList>
<PhIPAddr name="Edit object">
<PhButton name=""></PhButton>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhIPAddr>
<PhClock name="Clock object">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhNumSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhNumSpin>
<PhItemSpin name="">
<PhWidget name="">
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
</PhWidget>
</PhItemSpin>
</PhClock>
<PhInfoList name="IList object">
<PhWidget name="">
<PhLabelPrimDiv name=""></PhLabelPrimDiv>
</PhWidget>
</PhInfoList>
<PhXmItem name="Icon object"></PhXmItem>
<PhButton name="UButton object"></PhButton>
<PhLevelMeter name="Meter object">
<PhLabelPrimDiv name=""></PhLabelPrimDiv>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelText name=""></PhLabelText>
<PhLabelPrim name=""></PhLabelPrim>
<PhLabelPrim name=""></PhLabelPrim>
</PhLevelMeter>
<PhText name="EditBox object"></PhText>