PS3 custom xai_plugin (+ source)

Sometimes the custom stuff added in the RCO files at the level of PhScene is ignored because there is no code inside the sprx loading it, i guess to force the loading it should be added as the children of a PhScene that already exists
It also could happen that the object requires a specific parent to run, otherway the structure is considered broken
Dunno, i cant make any deduction from that experiment

While looking at your dumps there are some things that i dont understand but there are still a few ones that i hope are going to be easy to identify, this one is going to help clarifying the confussion with the spins

Code:
<Page name="page_display_output_config_displaysize_select" pageMode="0x1101" pageOnInit="event:native:/OnInitDisplayOutputConfig" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="event:native:/OnActivateDisplayOutputConfig">
	<Plane name="plane_display_output_config_displaysize_select" 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_display_output_config_displaysize_select" 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="0x2b040100" positionOverrideZ="0x100" sizeOverrideX="0x2c040100" sizeOverrideY="0x2d040100" sizeOverrideZ="0x0" textMessage="text:msg_set_screen_size_3d_tv" 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="0x0" textOverrideUnk56="0x14000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
		<Spin name="spin_display_output_config_displaysize_select" 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:/OnInitSpinDisplayOutputConfig" positionOverrideX="0x100" positionOverrideY="0x100" positionOverrideZ="0x100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" spinUnk23="0x0" spinUnk24="0x0" spinImageArrow="nothing" spinImageArrowShadow="nothing" spinOnDecide="event:native:/OnDecideSpinDisplayOutputConfig" spinOnCancel="nothing" spinOnRollIn="event:native:/OnRollInSpinDisplayOutputConfig" spinOnCursorMove="nothing" spinOnFocusIn="nothing" spinOnFocusOut="nothing" spinOnFocusLeft="nothing" spinOnFocusRight="nothing" spinOnFocusUp="nothing" spinOnFocusDown="nothing"></Spin>
	</Plane>
</Page>

Is a rcoxml section from the video output settings, from inside sysconf_plugin.rco, it seems there is a spin effect in one of this screens (ID=0x080F), but im not so sure in which screen
https://manuals.playstation.net/document/en/ps3/current/settings/videooutput.html
I guess is an animation that works pretty much the same than the "NumSpin" from the password settings screen that was spinning a character vertically, but this one probably is spinning an image/icon instead of a character
The spin object from the password settings was "PhNumSpin" but this one should be either "PhItemSpin" or "PhSpin"
 
Last edited:
Dump this one too please (ID=0x081F), in rcomage is named "EditBox" because is intended to enter text with the onscreen keyboard
Code:
<Page name="page_edit_dhcp_hostname" pageMode="0x1101" pageOnInit="event:native:/OnInitPageConnectionSettingsforDebug" pageOnCancel="event:native:/OnCancelPageConnectionSettingsforDebug" pageOnContext="nothing" pageOnActivate="event:native:/OnActivatePageConnectionSettingsforDebug">
	<Plane name="plane_dhcp_hostname" 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">
		<EditBox name="edit_dhcp_hostname" 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="0x100" positionOverrideY="0xb040100" positionOverrideZ="0x0" sizeOverrideX="0x14040100" sizeOverrideY="0x15040100" sizeOverrideZ="0x0" editboxMessage="nothing" editboxFontstyle="nothing" editboxFontMode="0x1010001" editboxUnk28="0x0" editboxFontSizeY="10" editboxTopColorScaleR="1" editboxTopColorScaleG="1" editboxTopColorScaleB="1" editboxBottomColorScaleR="1" editboxBottomColorScaleG="1" editboxBottomColorScaleB="1" editboxLineSpacing="0" editboxUnk37="0x0" editboxUnk38="0x0" editboxUnk39="0x0" editboxCharacterSpacing="0" editboxShadowOffsetX="4" editboxShadowOffsetY="-5" editboxShadowOffsetZ="0" editboxShadowColorScaleR="0.25" editboxShadowColorScaleG="0.25" editboxShadowColorScaleB="0.25" editboxShadowColorScaleA="1" editboxUnk48="0x0" editboxUnk49="0x0" editboxUnk50="0x0" editboxUnkFloat51="1" editboxUnkFloat52="1" editboxUnkFloat53="1" editboxUnkFloat54="1" editboxResizeMode="0x0" editboxOverrideUnk56="0x14000100" editboxOverrideUnk57="0x3000000" editboxOverrideUnk58="0x0" editboxImageField="nothing" editboxImageFocus="nothing" editboxOnPush="event:native:/OnPushEditConnectionSettingsforDebug" editboxOnFocusIn="nothing" editboxOnFocusOut="nothing" editboxOnFocusLeft="event:native:/OnFocusLeftEditConnectionSettingsforDebug" editboxOnFocusRight="event:native:/OnFocusRightEditConnectionSettingsforDebug" editboxOnFocusUp="nothing" editboxOnFocusDown="nothing"></EditBox>
		<Text name="text_dhcp_hostname" 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="0x2100" onInit="nothing" positionOverrideX="0x13040100" positionOverrideY="0xe2040100" positionOverrideZ="0x100" sizeOverrideX="0x2c040100" sizeOverrideY="0x2d040100" sizeOverrideZ="0x0" textMessage="text:msg_dhcpname" textFontStyle="nothing" textFontMode="0x1000001" 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>
	</Plane>
</Page>

Is the screen that appears after you click in "SET" to enter the "DHCP host name"
https://manuals.playstation.net/document/en/ps3/current/settings/connectadvance.html
connectadvance009.jpg
 
Sometimes the custom stuff added in the RCO files at the level of PhScene is ignored because there is no code inside the sprx loading it, i guess to force the loading it should be added as the children of a PhScene that already exists
It also could happen that the object requires a specific parent to run, otherway the structure is considered broken

I'm aware of that, i added the objects directly as childrens of page_xmb_indicator.

I've been messing around with the way vsh.self parse rco files, i attached some notes to this post.
 

Attachments

I'm aware of that, i added the objects directly as childrens of page_xmb_indicator.

I've been messing around with the way vsh.self parse rco files, i attached some notes to this post.
Im not sure if is a typo in the rco's.txt notes, but please check again hex 0x805 and 0x806

0x805 is PhXmList (confirmed in one of your dumps, if there are doubts about it i will post a sample later)
0x806 is still unknown (probably the children of PhXmList)
 
Im not sure if is a typo in the rco's.txt notes, but please check again hex 0x805 and 0x806

0x805 is PhXmList (confirmed in one of your dumps, if there are doubts about it i will post a sample later)
0x806 is still unknown (probably the children of PhXmList)

It isn't a typo, 0x806 is PhXmList, that's from the function paf::View::InstantiateWidget() which scan and create the widgets of plugin, ie xmb_plugin
 
rcomage does the conversion in between object names and the object hex value from an external file named tagmap.ini
At top of the tagmap.ini is mentioned the hex value is given based in the order of the tagmap.ini
IDs/types are listed in order.
Is mentioned more explicitelly in other rcomage file named miscmap.ini
Id determined via order

Code:
; id = 8
[Object]
ObjectTree <------------ 0x800
Page
Plane
Button
XMenu <------------ 0x804
XMList <------------ 0x805
XList <------------ 0x806
Progress
Scroll
MList
MItem
ObjUnknown0xB
XItem
Text
ModelObject
Spin
Action
ItemSpin
Group
LList
LItem
Edit
Clock
IList
IItem
Icon
UButton
ObjUnknown0x1B
CheckboxGroup
CheckboxItem
Meter
EditBox <------------ 0x81F

This is how rcomage represents the contents of xmb_plugin_normal.rco

Code:
<Page name="page_xmb" pageMode="0x1101" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
	<XMenu name="xmenu" positionX="-395" positionY="40" 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="event:native:/Bar::onInit" positionOverrideX="0x1010100" positionOverrideY="0x2010100" positionOverrideZ="0x3010100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" xmenuItemNum="0xa" xmenuOnPush="event:native:/Bar::onPush" xmenuOnContext="event:native:/Bar::onContextMenu" xmenuOnCursorMove="event:native:/Bar::onCursorMove" xmenuOnScrollIn="event:native:/Bar::onScrollIn" xmenuOnScrollOut="event:native:/Bar::onScrollOut">
		<XMList name="list_user" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_sysconf" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_photo" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_music" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_video" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_tv" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_game" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_network" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_psn" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
		<XMList name="list_friend" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
	</XMenu>
</Page>

So... rcomage is telling the owner of the string "list_user" is XMList (ID = 0x805)
And in your dumps it can be seen the owner of the string "list_user" is codenamed PhXmList (official codename)

Code:
<PhScene name="page_xmb">
	<PhCamera name="camera"></PhCamera>
	<PhXmBar name="xmenu">
		<PhWidget name="xmbar_orig">
			<PhXmList name="list_user">
				<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">
						<PhPlane name="indicator_login"></PhPlane>
					</PhXmItem>

Im not posting the whole <PhScene name="page_xmb"> hierarchy from your dumps because is very long (the "PhXmList" is repeated 10 times for the other categories "list_sysconf", "list_photo", etc...)
 
Last edited:
rcomage does the conversion in between object names and the object hex value from an external file named tagmap.ini
At top of the tagmap.ini is mentioned the hex value is given based in the order of the tagmap.ini

Is mentioned more explicitelly in other rcomage file named miscmap.ini


Code:
; id = 8
[Object]
ObjectTree <------------ 0x800
Page
Plane
Button
XMenu
XMList <------------ 0x805
XList <------------ 0x806
Progress
Scroll
MList
MItem
ObjUnknown0xB
XItem
Text
ModelObject
Spin
Action
ItemSpin
Group
LList
LItem
Edit
Clock
IList
IItem
Icon
UButton
ObjUnknown0x1B
CheckboxGroup
CheckboxItem
Meter
EditBox <------------ 0x81F

This is how rcomage represents the contents of xmb_plugin_normal.rco

Code:
<Page name="page_xmb" pageMode="0x1101" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing">
    <XMenu name="xmenu" positionX="-395" positionY="40" 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="event:native:/Bar::onInit" positionOverrideX="0x1010100" positionOverrideY="0x2010100" positionOverrideZ="0x3010100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" xmenuItemNum="0xa" xmenuOnPush="event:native:/Bar::onPush" xmenuOnContext="event:native:/Bar::onContextMenu" xmenuOnCursorMove="event:native:/Bar::onCursorMove" xmenuOnScrollIn="event:native:/Bar::onScrollIn" xmenuOnScrollOut="event:native:/Bar::onScrollOut">
        <XMList name="list_user" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_sysconf" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_photo" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_music" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_video" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_tv" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_game" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_network" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_psn" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
        <XMList name="list_friend" xmlistUnk1="0x0" xmlistImage="nothing" xmlistText="nothing"></XMList>
    </XMenu>
</Page>

So... rcomage is telling the owner of the string "list_user" is XMList (ID = 0x805)
And in your dumps it can be seen the owner of the string "list_user" is codenamed PhXmList (official codename)

Code:
<PhScene name="page_xmb">
    <PhCamera name="camera"></PhCamera>
    <PhXmBar name="xmenu">
        <PhWidget name="xmbar_orig">
            <PhXmList name="list_user">
                <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">
                        <PhPlane name="indicator_login"></PhPlane>
                    </PhXmItem>

Im not posting the whole <PhScene name="page_xmb"> hierarchy from your dumps because is very long (the "PhXmList" is repeated 10 times for the other categories "list_sysconf", "list_photo", etc...)

My bad, i didn't look properly, 0x805 is a PhXmList object but can only be created if is a child of PhXmBar while 0x806 a PhXmList object that can be created without a specific parent type.
Those types aren't present in the switch case statement in paf::View::InstantiateWidget():
0x80A, 0x80B, 0x80C, 0x80E, 0x810, 0x814, 0x81B, 0x81D

im going crazy.PNG
 
jordywastaken the identification method we was using previously was working nice because by comparing your dump with the rcomage dump we can see if the object hierarchy matches, is like a confirmation that rcomage and your implementation are working fine (if the dumps differs too much there is something wrong or missing somewhere), and allows to see the name in rcomage associated with the official codename
Additionally is the kind of thing worthy to do just incase the firmware/sprx is doing something unexpected with that objects, since you started uploading dumps it was obvious the sprx is "injecting" objects on top of the rco object hierarchy and by now is not so clear if is going to do it too with the other remaining objects not identifyed yet

But right now im not so sure for how many more objects we can use this identification method because some of the remaining objects never was used in official PS3 firmwares (so we dont have an official sample of how to use them inside an .rco) or are added on runtime by the sprx (so we cant compare the rcomage dumps with your dumps)
Before dealing with the most tricky objects i would like to see a dump of this objects that i consider easy to catch because im sure are used in PS3 official rco's

0x80F (rcomage "Spin") inside sysconf_plugin.rco
Code:
<Page name="page_display_output_config_displaysize_select" pageMode="0x1101" pageOnInit="event:native:/OnInitDisplayOutputConfig" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="event:native:/OnActivateDisplayOutputConfig">
	<Plane name="plane_display_output_config_displaysize_select" 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_display_output_config_displaysize_select" 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="0x2b040100" positionOverrideZ="0x100" sizeOverrideX="0x2c040100" sizeOverrideY="0x2d040100" sizeOverrideZ="0x0" textMessage="text:msg_set_screen_size_3d_tv" 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="0x0" textOverrideUnk56="0x14000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
		<Spin name="spin_display_output_config_displaysize_select" 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:/OnInitSpinDisplayOutputConfig" positionOverrideX="0x100" positionOverrideY="0x100" positionOverrideZ="0x100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" spinUnk23="0x0" spinUnk24="0x0" spinImageArrow="nothing" spinImageArrowShadow="nothing" spinOnDecide="event:native:/OnDecideSpinDisplayOutputConfig" spinOnCancel="nothing" spinOnRollIn="event:native:/OnRollInSpinDisplayOutputConfig" spinOnCursorMove="nothing" spinOnFocusIn="nothing" spinOnFocusOut="nothing" spinOnFocusLeft="nothing" spinOnFocusRight="nothing" spinOnFocusUp="nothing" spinOnFocusDown="nothing"></Spin>
	</Plane>
</Page>

Is a rcoxml section from the video output settings, from inside sysconf_plugin.rco, it seems there is a spin effect in one of this screens (ID=0x080F), but im not so sure in which screen
https://manuals.playstation.net/document/en/ps3/current/settings/videooutput.html
I guess is an animation that works pretty much the same than the "NumSpin" from the password settings screen that was spinning a character vertically, but this one probably is spinning an image/icon instead of a character
The spin object from the password settings was "PhNumSpin" but this one should be either "PhItemSpin" or "PhSpin"

0x81F (rcomage "EditBox") inside sysconf_plugin.rco
Dump this one too please (ID=0x081F), in rcomage is named "EditBox" because is intended to enter text with the onscreen keyboard
Code:
<Page name="page_edit_dhcp_hostname" pageMode="0x1101" pageOnInit="event:native:/OnInitPageConnectionSettingsforDebug" pageOnCancel="event:native:/OnCancelPageConnectionSettingsforDebug" pageOnContext="nothing" pageOnActivate="event:native:/OnActivatePageConnectionSettingsforDebug">
	<Plane name="plane_dhcp_hostname" 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">
		<EditBox name="edit_dhcp_hostname" 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="0x100" positionOverrideY="0xb040100" positionOverrideZ="0x0" sizeOverrideX="0x14040100" sizeOverrideY="0x15040100" sizeOverrideZ="0x0" editboxMessage="nothing" editboxFontstyle="nothing" editboxFontMode="0x1010001" editboxUnk28="0x0" editboxFontSizeY="10" editboxTopColorScaleR="1" editboxTopColorScaleG="1" editboxTopColorScaleB="1" editboxBottomColorScaleR="1" editboxBottomColorScaleG="1" editboxBottomColorScaleB="1" editboxLineSpacing="0" editboxUnk37="0x0" editboxUnk38="0x0" editboxUnk39="0x0" editboxCharacterSpacing="0" editboxShadowOffsetX="4" editboxShadowOffsetY="-5" editboxShadowOffsetZ="0" editboxShadowColorScaleR="0.25" editboxShadowColorScaleG="0.25" editboxShadowColorScaleB="0.25" editboxShadowColorScaleA="1" editboxUnk48="0x0" editboxUnk49="0x0" editboxUnk50="0x0" editboxUnkFloat51="1" editboxUnkFloat52="1" editboxUnkFloat53="1" editboxUnkFloat54="1" editboxResizeMode="0x0" editboxOverrideUnk56="0x14000100" editboxOverrideUnk57="0x3000000" editboxOverrideUnk58="0x0" editboxImageField="nothing" editboxImageFocus="nothing" editboxOnPush="event:native:/OnPushEditConnectionSettingsforDebug" editboxOnFocusIn="nothing" editboxOnFocusOut="nothing" editboxOnFocusLeft="event:native:/OnFocusLeftEditConnectionSettingsforDebug" editboxOnFocusRight="event:native:/OnFocusRightEditConnectionSettingsforDebug" editboxOnFocusUp="nothing" editboxOnFocusDown="nothing"></EditBox>
		<Text name="text_dhcp_hostname" 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="0x2100" onInit="nothing" positionOverrideX="0x13040100" positionOverrideY="0xe2040100" positionOverrideZ="0x100" sizeOverrideX="0x2c040100" sizeOverrideY="0x2d040100" sizeOverrideZ="0x0" textMessage="text:msg_dhcpname" textFontStyle="nothing" textFontMode="0x1000001" 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>
	</Plane>
</Page>

Is the screen that appears after you click in "SET" to enter the "DHCP host name"
https://manuals.playstation.net/document/en/ps3/current/settings/connectadvance.html
connectadvance009.jpg

0x813 (rcomage "LList") inside edy_plugin.rco
Is the "Checking online balance" screen explained in the user guide, composed by lot of texts and a vertical scrollbar
https://manuals.playstation.net/document/en/ps3/3_15/settings/edyviewer.html
Code:
<Page name="page_edyccl_gui_balance01" pageMode="0x1101" pageOnInit="event:native:/OnInitEdyViewer" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="event:native:/OnActivateEdyViewer">
	<Plane name="plane_edyccl_gui_balance01" 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_edy_viewer_online_balance_inquiry_edy" 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="0x1200" onInit="nothing" positionOverrideX="0xb0020100" positionOverrideY="0xb1020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edynumber" textFontStyle="nothing" textFontMode="0x1000002" 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="0x15000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
		<Text name="text_edy_viewer_edy_balance" 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="0x1100" onInit="nothing" positionOverrideX="0xb3020100" positionOverrideY="0xb2020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edybalance" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_edy_balance_number" 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="0x1100" onInit="nothing" positionOverrideX="0xb5020100" positionOverrideY="0xb2020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_edy_inquiry_date" 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="0x1100" onInit="nothing" positionOverrideX="0xb3020100" positionOverrideY="0xb4020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edy_inquiry_date_time" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_edy_inquiry_date_number" 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="0x1100" onInit="nothing" positionOverrideX="0xb5020100" positionOverrideY="0xb4020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_edy_schedule_of_transactions" 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="0x1100" onInit="nothing" positionOverrideX="0xb3020100" positionOverrideY="0xaf020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edy_transaction_bill" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_inquiry_date" 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="0x2100" onInit="nothing" positionOverrideX="0xb6020100" positionOverrideY="0xb9020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edy_transaction_date_time" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<Text name="text_edy_viewer_amount_money_dealings_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="0x2200" onInit="nothing" positionOverrideX="0xb7020100" positionOverrideY="0xb9020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edy_transaction_amount" textFontStyle="nothing" textFontMode="0x1000002" 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>
		<Text name="text_edy_viewer_remarks" 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="0x2100" onInit="nothing" positionOverrideX="0xb8020100" positionOverrideY="0xb9020100" positionOverrideZ="0x100" sizeOverrideX="0xad020100" sizeOverrideY="0xae020100" sizeOverrideZ="0x0" textMessage="text:msg_edy_note" textFontStyle="nothing" textFontMode="0x1000001" 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>
		<LList name="list_edy_viewer_online_balance_data" 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="0x1000" onInit="event:native:/OnInitListEdyViewer" positionOverrideX="0x100" positionOverrideY="0xbd020100" positionOverrideZ="0x100" sizeOverrideX="0xbe020100" sizeOverrideY="0x0" sizeOverrideZ="0x0" llistItemNum="0x6" llistUnk24="0x0" llistUnkFloat25="0" llistOverrideUnk26="0x0" llistOverrideUnk27="0x3a040000" llistOnFocusIn="nothing" llistOnFocusOut="nothing" llistOnFocusLeft="nothing" llistOnFocusRight="nothing" llistOnFocusUp="nothing" llistOnFocusDown="nothing" llistOnScrollIn="event:native:/OnScrollInListEdyViewer" llistOnScrollOut="nothing">
			<Scroll name="scroll_edy_online_balance_data" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="8" sizeY="172" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x1000" onInit="nothing" positionOverrideX="0xc8020100" positionOverrideY="0xc9020100" positionOverrideZ="0x100" sizeOverrideX="0x0" sizeOverrideY="0x0" sizeOverrideZ="0x0" scrollUnkFloat23="100" scrollUnkFloat24="100" scrollUnk25="0x0" scrollImageBase="nothing" scrollImageSlider="nothing" scrollImageArrow="nothing" scrollImageBaseShadow="nothing" scrollImageArrowShadow="nothing"></Scroll>
		</LList>
	</Plane>
</Page>

If for some reason you are not able to dump them (im not sure if are only dumped after entering in that screens and you cant enter) let me know if you are still interested in doing some experiments with custom rco's
I guess i can prepare a custom rco with this 3 objects, are easy to recreate because i can "copypaste" the official structure (after cleaning them to break all the original links and convert them into 100% custom)
 
Last edited:
Kinda off-topic but can you @jordywastaken or @sandungas make a little program were we can input a rco override eg: 0xfe030100 and it returns the line in both layout files? (Grid and factor) and a option to do the reverse? where we can input a line number and calculates the overrides that will read it?
 
Kinda off-topic but can you @jordywastaken or @sandungas make a little program were we can input a rco override eg: 0xfe030100 and it returns the line in both layout files? (Grid and factor) and a option to do the reverse? where we can input a line number and calculates the overrides that will read it?
I think this vsh exports does it, i realized about them yesterday and added them to wiki as speculative notes
https://www.psdevwiki.com/ps3/index.php?title=Talk:XMB_Layouts&curid=7882&diff=69552&oldid=66780

And this ones seems to be used to redraw lists (after you add or remove an icon from the list you need to redraw it)
https://www.psdevwiki.com/ps3/index.php?title=Talk:RCOXML_Objects&curid=8897&diff=69549&oldid=69546
 
I think this vsh exports does it, i realized about them yesterday and added them to wiki as speculative notes
https://www.psdevwiki.com/ps3/index.php?title=Talk:XMB_Layouts&curid=7882&diff=69552&oldid=66780

And this ones seems to be used to redraw lists (after you add or remove an icon from the list you need to redraw it)
https://www.psdevwiki.com/ps3/index.php?title=Talk:RCOXML_Objects&curid=8897&diff=69549&oldid=69546
Those exports are only used to get/set the layout factor and positions from an existing widget.
Exports that are related to the actual layout files are:
0x6BFD6A5A _ZN3vsh11LayoutTable4SwapEiiivsh::LayoutTable::Swap(int, int, int)
0xD7138829PhiSetLayoutTable
 
Back
Top