Talk:Rcomage

From PS3 Developer wiki
Jump to navigation Jump to search

Missing descriptors in rcomage current version (1.1.1)

miscmap.ini

  • See Languages
    • unknown0x10.xml is Polish
    • unknown0x11.xml is Portuguese (Brazil)
    • unknown0x12.xml is English (Great Britain)
    • unknown0x13.xml is Turkish
  • The languages are listed in the file miscmap.ini... you can add the unknowns by yourself to the languages table, example:
[languages]
00_Japanese       ; ja
01_English_US     ; us
02_French         ; fr
03_Spanish        ; es
04_German         ; de
05_Italian        ; it
06_Dutch          ; nl
07_Portuguese_PT  ; pt
08_Russian        ; ru
09_Korean         ; ko
10_Chinese_T      ; ch
11_Chinese_S      ; zh
12_Finnish        ; fi
13_Swedish        ; sv
14_Danish         ; da
15_Norwegian      ; no
16_Polish         ; pl
17_Portuguese_BR  ; br
18_English_GB     ; gb
19_Turkish        ; tr
  • changes
    • Added the 4 unknown languages (Polish, Portuguese_BR, English_GB, Turkish)
    • Added "2 digits language code" before name, and language variant after name
    • Changed names for variants of English_US/GB, Portuguese_PT/BR, and Chinese_T/S
    • Changed commented languages to "2 letters language code" standards
    • Fixed "Portugese" typo

objattribdef-ps3.ini

This file defines the names of the object attributes used in the XML descriptor at the root of the .rco

Lot of unknowns, some of them was not posible to identify in PSP times because PSP never used them... but in PS3 is posible to identify a few more, please help to fill an "unnofficial" list here

[Page]
unknownInt0   ???????? <---- used 1174 times in retail firmware 4.76 all them with value: 0x1110000
onInit        <------------- used 625 times in firmware 4.76. Around 607 onInit, 18 onOpen
onContextMenu onContext <--- better to use a more generic name because "onContext" is used in several other objects and is technically the same event for all them

[Button]
image2         focus
unknownRef29   text
unknownEvent31 onPush   <---- used 292 times in firmware 4.76. Around 258 onPush, 24 buttonPush, 5 btnClick, 3 onButton, 2 onCancel
unknownEvent33 onFocusIn
unknownEvent35 onFocusOut
unknownEvent37 onFocusLeft
unknownEvent39 onFocusRight
unknownEvent41 onFocusUp
unknownEvent43 onFocusDown
unknownEvent45 onContext
unknownInt47   ?????????????? <--- used 624 times in firmware 4.76 with values: 0x0 (560 times), or 0xffffffff (64 times)

[XMenu]
onEnter        onPush <---- used 2 times in firmware 4.76. Both onPush
unknownEvent28 onCursorMove
onLabelLoad    onScrollIn <---- better, official name
unknownRef32   onScrollOut

[XMList]
unknown0       ???????? <---- used 20 times in firmware 4.76 all them with value 0x0 (the 10 main XMB icons in xmb normal/ingame)
unknownRef3    text

[MList]
unknownRef32 ??????
unknownRef33 onPush
unknownRef35 onCursorMove
unknownRef37 onFocusIn
unknownRef39 onFocusOut
unknownRef41 onFocusLeft
unknownRef43 onFocusRight
unknownRef45 onFocusUp
unknownRef47 onFocusDown
unknownRef49 onScrollIn
unknownRef51 onScrollOut

[Text] & [EditBox]
unknown37      ?????????????? <--- speculative, font setings related (x axis line displacement?)
unknown38      ?????????????? <--- speculative, font setings related (y axis line displacement?)
unknown39      ?????????????? <--- speculative, font setings related (z axis line displacement?)
unknown48      glowX <--- speculative
unknown49      glowY <--- speculative
unknown50      glowPerspective <--- speculative
unknownFloat51 glowRed <--- speculative
unknownFloat52 glowGreen <--- speculative
unknownFloat53 glowBlue <--- speculative
unknownFloat54 glowAlpha <--- speculative

[Spin]
unknownEvent29  onDecide
unknownEvent31  onCancel
unknownEvent33  onRollIn

[Action]
unknownRef0     text

[ItemSpin]
unknownEvent33  onDecide
unknownEvent35  onCancel
unknownRef37    ???     <------- 
unknownRef39    ???     <------- 
unknownRef41    onFocusIn
unknownRef43    onFocusOut
unknownRef45    onFocusLeft
unknownRef47    onFocusRight

[Edit]
unknownEvent31  onDecide
unknownRef33    onCancel
unknownRef35    ???     <------- OnRollIn ?
unknownRef37    ???
unknownEvent39  onFocusLeft
unknownEvent41  onFocusRight
unknownObject43 object2 ?
unknownObject45 object2 ?

[Clock]
unknownEvent33  onDecide
unknownEvent35  onCancel
unknownRef37    ???     <------- 
unknownRef39    ???     <------- 
unknownEvent41  onFocusLeft
unknownEvent43  onFocusRight
unknownRef45    ???     <------- 
unknownRef47    ???     <------- 
unknownEvent49  onTickClock 

[IList]
unknownRef25    ???     <------- 
unknownRef27    ???     <------- 
unknownEvent29  onFocusLeft
unknownRef31    onFocusRight
unknownRef33    onFocusUp ? <-------  speculative
unknownRef35    onFocusDown
unknownRef37    ???     <------- is the last attribute of "IList" group, is an event 

[CheckboxGroup]
unknownRef33    onPush
unknownRef35    onCursorMove
unknownRef37    onFocusIn
unknownRef39    onFocusOut
unknownRef41    onFocusLeft
unknownRef43    onFocusRight
unknownRef45    onFocusUp
unknownRef47    onFocusDown
unknownRef49    onScrollIn
unknownRef51    onScrollOut ? <------- speculative, is the last attribute of "checkbox" group

[CheckboxItem]
unknownRef1     text
unknownRef3     ???
unknownRef5     ???

[EditBox]
unknownRef59   image  <--------- name is too generic, is better a more explicit name as "shadow"
unknownRef61   image2   <--------- name is too generic, is better a more explicit name as "glow"
unknownRef63   onClick
unknownRef65   onFocusIn
unknownRef67   onFocusOut
unknownRef69   onFocusLeft
unknownRef71   onFocusRight
unknownRef73   onFocusUp
unknownRef75   onFocusDown


  • Examples:
    • onInit="event:native:/OnListPageOpen"
    • onInit="event:native:/OnContentsSelectPageOpen"
    • onInit="event:native:/OnModeSelectPageOpen"
    • onInit="event:native:/onInit_page_Wizard"
    • unknownRef3="text:msg_game"
    • unknownRef33="event:native:/OnPushMlistID"
    • unknownRef33="event:native:/Menu::cbPush"
    • unknownRef37="event:native:/OnFocusInMlistID"
    • unknownRef41="event:native:/Menu::cbFocusLeft"
    • unknownRef47="event:native:/Menu::cbFocusDown"
    • unknownRef49="event:native:/OnScrollInMlistID"
    • unknownRef49="event:native:/Menu::cbScrollIn"
    • unknownRef51="event:native:/Menu::cbScrollOut"
    • onLoad="event:native:/Bar::onInit"
    • onLoad="event:native:/onInit_ilist_NetworkInfomationList"
    • onEnter="event:native:/Bar::onPush"
    • unknownEvent28="event:native:/Bar::onCursorMove"
    • onLabelLoad="event:native:/Bar::onScrollIn"
    • unknownRef32="event:native:/Bar::onScrollOut"
    • image="image:tex_button" shadow="image:tex_button_shadow" image2="image:tex_button_focus" unknownRef29="text:msg_ok"
    • unknownEvent31="event:native:/XaiController::onPanelCommand"
    • unknownEvent37="event:native:/XaiController::onPanelCommand"
    • unknownEvent39="event:native:/XaiController::onPanelCommand"
    • shadowX="4" shadowY="-5" shadowPerspective="0" shadowRed="0.25" shadowGreen="0.25" shadowBlue="0.25" shadowAlpha="1" unknown48="0x0" unknown49="0x0" unknown50="0x0" unknownFloat51="1" unknownFloat52="1" unknownFloat53="1" unknownFloat54="1"
    • unknownRef63="event:native:/onPush_button_NetworkDhcpHostSetting"
    • unknownRef69="event:native:/onFocusLeft_button_NetworkAccounSetting" unknownRef71="event:native:/onFocusRight_button_NetworkAccounSetting" unknownRef73="event:native:/onFocusUp_button_NetworkAccounSettingPassword"
    • unknownRef75="event:native:/onFocusDown_button_NetworkAccounSettingUserId"
    • unknownEvent31="event:native:/onDecide_ipaddr_NetworkAddressSetIpaddress"
    • unknownRef33="event:native:/onCancel_ipaddr_NetworkAddrSetting"
    • unknownEvent31="event:native:/onDecide_ipaddr_NetworkAddressSetNetmask"
    • unknownRef33="event:native:/onCancel_ipaddr_NetworkAddrSetting"
    • unknownEvent39="event:native:/onFocusLeft_ipaddr_NetworkAddrSetting"
    • unknownEvent41="event:native:/onFocusRight_ipaddr_NetworkAddrSetting"
    • unknownObject43="object2:ipaddr_network_address_setting_ipaddress"
    • unknownObject45="object2:ipaddr_network_address_setting_defaultrooter"
    • unknownRef29="text:msg_agree"
    • unknownEvent31="event:native:/cbPush"
    • unknownEvent37="event:native:/cbFocusLeft" unknownEvent39="event:native:/cbFocusRight" unknownEvent41="event:native:/cbFocusUp" unknownEvent43="event:native:/cbFocusDown"
    • unknownEvent31="event:native:/OnControlPanelButtonPush" unknownEvent33="event:native:/OnControlPanelButtonFocusIn" unknownEvent35="event:native:/OnControlPanelButtonFocusOut" unknownEvent37="event:native:/OnControlPanelButtonFocusLeft" unknownEvent39="event:native:/OnControlPanelButtonFocusRight" unknownEvent41="event:native:/OnControlPanelButtonFocusUp" unknownEvent43="event:native:/OnControlPanelButtonFocusDown"
    • unknownRef33="event:native:/ctl_list_cbPush" unknownRef35="nothing" unknownRef37="nothing" unknownRef39="nothing" unknownRef41="nothing" unknownRef43="event:native:/ctl_list_cbFocusRight" unknownRef45="event:native:/ctl_list_cbFocusUp" unknownRef47="nothing" unknownRef49="event:native:/ctl_list_cbScrollIn" unknownRef51="event:native:/ctl_list_cbScrollOut"
    • unknownRef59="image:avc2_main_back_paper" unknownRef61="image:avc2_main_back_paper" unknownRef63="event:native:/cbPush"
    • unknownRef33="event:native:/Menu::cbPush" unknownRef35="event:native:/Menu::cbCursorMove" unknownRef37="nothing" unknownRef39="event:native:/Menu::cbFocusOut"
    • unknownEvent43="event:native:/VideoEditorUpload::ServiceSelect::OnFocusDownButton1" unknownEvent45="event:native:/VideoEditorUpload::ServiceSelect::OnContextMenuButton1"
    • unknownRef63="event:native:/OnCreatePageEditBtnClick" unknownRef65="event:native:/OnCreatePageEditBtnFocusIn"
    • unknownRef65="event:native:/DialogController::onEditBottonFocusIn" unknownRef67="event:native:/DialogController::onEditBottonFocusOut"
    • unknownEvent29="event:native:/OnDecideISpinDeviceConfigCameraSetting" unknownEvent31="event:native:/OnCancelISpinDeviceConfigCameraSetting" unknownEvent33="event:native:/OnRollInISpinDeviceConfigCameraSetting"
    • unknownRef33="event:native:/OnPushClistRegPSVitaConfig" unknownRef35="nothing" unknownRef37="event:native:/OnFocusInClistRegPSVitaConfig" unknownRef39="event:native:/OnFocusOutClistRegPSVitaConfig" unknownRef41="nothing" unknownRef43="nothing" unknownRef45="nothing" unknownRef47="event:native:/OnFocusDownClistRegPSVitaConfig" unknownRef49="event:native:/OnScrollInClistRegPSVitaConfig"
    • unknownRef33="event:native:/OnPushCheckBoxList" unknownRef35="event:native:/OnCursorMoveCheckBoxList" unknownRef37="nothing" unknownRef39="nothing" unknownRef41="nothing" unknownRef43="nothing" unknownRef45="event:native:/OnFocusUpCheckBoxList" unknownRef47="event:native:/OnFocusDownCheckBoxList"
    • unknownRef41="event:native:/OnFocusLeftClistAudioOutputConfig" unknownRef43="event:native:/OnFocusRightClistAudioOutputConfig"
    • unknownEvent33="event:native:/OnTitleJumpSpinDecide" unknownEvent35="event:native:/OnTitleJumpSpinCancel" unknownRef37="nothing" unknownRef39="nothing" unknownRef41="event:native:/OnTitleJumpButtonFocusIn" unknownRef43="event:native:/OnTitleJumpButtonFocusOut"
    • unknownRef45="event:native:/OnFocusLeftNumSpinWizardEventHandler" unknownRef47="event:native:/OnFocusRightNumSpinWizardEventHandler"
    • unknownEvent29="event:native:/EulaLicensingWizard::onFocusLeft" unknownRef31="event:native:/EulaLicensingWizard::onFocusRight"
    • unknownRef35="event:native:/ConsoleAutoPowerOffPage::OnFocusDownIlist"
    • unknownEvent33="event:native:/OnDecideClockFirstConfig" unknownEvent35="event:native:/OnCancelClockFirstConfig" unknownRef37="nothing" unknownRef39="nothing" unknownEvent41="event:native:/OnFocusLeftFirstConfig" unknownEvent43="event:native:/OnFocusRightFirstConfig" unknownRef45="nothing" unknownRef47="nothing" unknownEvent49="event:native:/OnTickClockFirstConfig"
    • <Action name="item_audio_device_config_volume_off" unknownRef0="text:msg_off"></Action>
    • unknownRef1="text:msg_update_auto_off_ps3_after_update"
    • unknownRef3="text:msg_game"

In the previous examples the MlistID is the owner of the attribute that specifyes the event... so MlistID needs to be removed to deduce the event name

Probably another unknown is OnFocusOut (because Out is the opposite state of In, it seems Focus and Scroll are intended to have 2 states)

OnPush is used a lot instead of the pad directions, as example on some menues of xmb settings column, when moving right is taken as a push

onPanelCommand seems to be an special event that can replace some of the standard events (used as a Button attribute)

animattribdef-ps3.ini

This file defines the names of the animation attributes used in the XML descriptor at the root of the .rco

PS3 doesnt seems to use too much animations inside rco's (with a few exceptions like gameboot animation, and inside system_plugin.rco etc...)

Only 5 unknowns. It seems that unknownInt5, unknownInt6, unknown7 has been implemented with rco 2.0 format specifically for PS3 (not supported in PSP). The others for lock/unlock existed before in rco 1.0 format (supported in PSP)

[MoveTo]
unknownInt5 = int
unknownInt6 = int
unknown7 = unk

[Lock]
unknownInt0 = int

[Unlock]
unknownInt0 = int

tagmap.ini

This file defines the names of the tags used in the XML descriptor at the root of the .rco

Only 2 unknowns:

[Object]
ObjUnknown0xB
ObjUnknown0x1B

Other descriptors, not in setting files (seem to be hardcoded)

unknownByte

In the xml representation of the .rco structure... every image inside the imagetree uses an unknown attribute named unknownByte. Is an attribute related with the image format and is equal to 0 in most of the PS3 images (very rarelly used)

  • After searching in ALL the images contained inside ALL .rco files from firmware 4.76... there is a total of 72 images using unknownByte="1" (and 3098 images using unknownByte="0" for a total of 3170 images inside .rco's)

from system_plugin.rco

Code Sample
  • The 2 .gim files found using unknownByte="1" has some things in common:
    • The size of both .gim file is exactlly 452KB (463.232 bytes)
    • The resolution of both images in pixels is 512x206
    • The first 0x80 bytes of the header in both is exactlly the same (see example below)

unknownByte .gim header example

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  2E 47 49 4D 31 2E 30 30 00 50 53 50 00 00 00 00  .GIM1.00.PSP....
00000010  00 02 00 00 00 07 11 70 00 00 00 10 00 00 00 10  .......p........
00000020  00 03 00 00 00 07 11 60 00 00 00 10 00 00 00 10  .......`........
00000030  00 04 00 00 00 07 11 50 00 07 11 50 00 00 00 10  .......P...P....
00000040  00 30 00 00 00 03 00 00 02 18 00 D8 00 20 00 10  .0.........Ø. ..
00000050  00 01 00 02 00 00 00 00 00 00 00 30 00 00 00 40  ...........0...@
00000060  00 07 11 40 00 00 00 00 00 01 00 01 00 03 00 01  ...@............
00000070  00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............

minFirmwareVer

This is a very important unknown. See: Talk:Resource_Container_(RCO)

UMDFlag

This attribute was named UMDFlag unofficially because it was found used in the .rco files contained inside PSP UMD discs only

The name seems not accurate enought (because PS3 cant read UMD discs) so maybe is something more generic like "disc media", though never has been found a PS3 disc containing .rco's and the HYBRID_FLAG used in the bluray contents descriptor file PS3_DISC.SFB for "music bluray" and "photo bluray" are completlly speculative