Editing Talk:Resource Container (RCO)
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 1: | Line 1: | ||
=RCO versions= | |||
All RCO files contains a version number, the version increases with bigger firmwares but not for every firmware and is not directly associated with it. The same versioning method is used in PSP and PS3 RCO's | All RCO files contains a version number, the version increases with bigger firmwares but not for every firmware and is not directly associated with it. The same versioning method is used in PSP and PS3 RCO's | ||
It seems all the RCO's of a specific firmware shares the same version (verifyed for firmware 4.76) and seems to be the version of the "rco set", or the version of the "rco tool" used to compile the whole "rco set". RCOmage v1.1.1 (latest stable) identifyes the version with a list of hardcoded values | It seems all the RCO's of a specific firmware shares the same version (verifyed for firmware 4.76) and seems to be the version of the "rco set", or the version of the "rco tool" used to compile the whole "rco set". RCOmage v1.1.1 (latest stable) identifyes the version with a list of hardcoded values | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
switch(rco->verId) { | switch(rco->verId) { | ||
case 0x70: fputs("1.0", fp); break; | case 0x70: fputs("1.0", fp); break; | ||
Line 24: | Line 23: | ||
Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106 | Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
=Hashreports= | =Hashreports= | ||
==PS3 | ==PS3 all versions== | ||
all OFW 1.00-4.75 hashes: https://www.mirrorcreator.com/files/7KCMQKWQ/RCO-hashreport.7z_links <--- please someone convert this in a "human readable wiki table" | all OFW 1.00-4.75 hashes: https://www.mirrorcreator.com/files/7KCMQKWQ/RCO-hashreport.7z_links <--- please someone convert this in a "human readable wiki table" | ||
==PSP | ==PSP 6.61== | ||
*PSP 6.60 and 6.61 firmware contains 63 .rco files (same files for both firmwares). Two of them are specific for PSPgo model (bluetooth_plugin.rco, slide_plugin.rco) | *PSP 6.60 and 6.61 firmware contains 63 .rco files (same files for both firmwares). Two of them are specific for PSPgo model (bluetooth_plugin.rco, slide_plugin.rco) | ||
*Only 10 of them are compresed with ZLIB (dd_helper.rco, dnas_plugin.rco, htmlviewer_plugin.rco, lftv_rmc_univer3in1.rco, lftv_rmc_univer3in1_jp.rco, lftv_rmc_univertuner.rco, lftv_rmc_univertuner_jp.rco, lftv_tuner_jp_jp.rco, lftv_tuner_us_en.rco, oneseg_plugin.rco). All the others are compressed with RLZ (and RLZ decompression is not supported by rcomage, is needed to use Resurssiklunssi v0.3 to rebuild them) | *Only 10 of them are compresed with ZLIB (dd_helper.rco, dnas_plugin.rco, htmlviewer_plugin.rco, lftv_rmc_univer3in1.rco, lftv_rmc_univer3in1_jp.rco, lftv_rmc_univertuner.rco, lftv_rmc_univertuner_jp.rco, lftv_tuner_jp_jp.rco, lftv_tuner_us_en.rco, oneseg_plugin.rco). All the others are compressed with RLZ (and RLZ decompression is not supported by rcomage, is needed to use Resurssiklunssi v0.3 to rebuild them) | ||
Line 91: | Line 40: | ||
***The converted files will have '''minFirmwareVer="2.6"''' (the original value is lost in the conversion) | ***The converted files will have '''minFirmwareVer="2.6"''' (the original value is lost in the conversion) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
; Generated by QuickSFV v2.36 on 2015-12-09 at 04:49:59 | ; Generated by QuickSFV v2.36 on 2015-12-09 at 04:49:59 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 219: | Line 168: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
*PSP 6.60 and 6.61 firmware. RCO hashes after resurssiklunssi rebuild (cross option) | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
; Generated by QuickSFV v2.36 on 2015-12-13 at 03:40:27 | ; Generated by QuickSFV v2.36 on 2015-12-13 at 03:40:27 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 349: | Line 299: | ||
4fd833dc230d78d2827ad85f58685aa6 *resource\video_plugin_videotoolbar.rco | 4fd833dc230d78d2827ad85f58685aa6 *resource\video_plugin_videotoolbar.rco | ||
5b1e65248b962b983cf0553f662c2050 *resource\visualizer_plugin.rco | 5b1e65248b962b983cf0553f662c2050 *resource\visualizer_plugin.rco | ||
</syntaxhighlight> | </syntaxhighlight>}} | ||
*PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ) | *PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
; Generated by QuickSFV v2.36 on 2015-12-13 at 03:51:28 | ; Generated by QuickSFV v2.36 on 2015-12-13 at 03:51:28 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 398: | Line 348: | ||
ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ||
87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | 87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | ||
</syntaxhighlight> | </syntaxhighlight>}} | ||
=Examples | =Examples= | ||
This is a temporal section for tests using rcomage to create frankensteins .rco files smallest as posible that could serve as an explain of his structure. Will contain the source xml file used to create the rco, a big table with ALL the values of the structure, and a sample in hexview of the created rco. Eventually one (or a couple) of this tables will be moved to front page but by now this is a shared notepad and experimentation to see how to make that tables intuitive, pretty, and smallest posible, feel free to add other examples | This is a temporal section for tests using rcomage to create frankensteins .rco files smallest as posible that could serve as an explain of his structure. Will contain the source xml file used to create the rco, a big table with ALL the values of the structure, and a sample in hexview of the created rco. Eventually one (or a couple) of this tables will be moved to front page but by now this is a shared notepad and experimentation to see how to make that tables intuitive, pretty, and smallest posible, feel free to add other examples | ||
Line 409: | Line 359: | ||
The .xml below is the RCOXML source file used to create the .rco. The file '''image_test.gim''' is a dummy of 8 bytes filed with 8888888888888888 | The .xml below is the RCOXML source file used to create the .rco. The file '''image_test.gim''' is a dummy of 8 bytes filed with 8888888888888888 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | ||
<MainTree name="test"> | <MainTree name="test"> | ||
Line 419: | Line 369: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
When compiled | When compiled | ||
<div style="height:500px; overflow:auto"> | <div style="height:500px; overflow:auto"> | ||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
Line 449: | Line 399: | ||
! Areas !! Offset !! Length !! Example !! Name !! Notes | ! Areas !! Offset !! Length !! Example !! Name !! Notes | ||
|- | |- | ||
| rowspan=" | | rowspan="47" | Header | ||
|-{{cellcolors|#666666|#ffffff}} | |-{{cellcolors|#666666|#ffffff}} | ||
| 0x00 || 0x04 || FRP || '''magic''' || FRP in big endian | | 0x00 || 0x04 || FRP || '''magic''' || FRP in big endian | ||
Line 540: | Line 490: | ||
|- | |- | ||
| 0xA0 || 0x04 || FF FF FF FF || ''unknown'' || | | 0xA0 || 0x04 || FF FF FF FF || ''unknown'' || | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan=" | | rowspan="47" | TOC | ||
|- | |- | ||
| 0xA4 || 0x01 || 01 || '''entry_type''' || 0x1=MainTree | | 0xA4 || 0x01 || 01 || '''entry_type''' || 0x1=MainTree | ||
Line 632: | Line 584: | ||
|- | |- | ||
| 0x128 || 0x04 || 00 00 00 01 || ''unknown'' || | | 0x128 || 0x04 || 00 00 00 01 || ''unknown'' || | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan=" | | rowspan="4" | pointers | ||
|- | |- | ||
| 0x12C || 0x04 || 00 00 00 F4 || || | | 0x12C || 0x04 || 00 00 00 F4 || || | ||
|- | |- | ||
| 0x130 || 0x04 || 00 00 00 00 || || | | 0x130 || 0x04 || 00 00 00 00 || || | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan=" | | rowspan="3" | texts | ||
|- | |- | ||
| 0x134 || 0x00 || || || text table is empty | | 0x134 || 0x00 || || || text table is empty | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan=" | | rowspan="6" | label | ||
|- | |- | ||
| 0x134 || 0x05 || 74 65 73 74 00 || || test (null terminated) | | 0x134 || 0x05 || 74 65 73 74 00 || || test (null terminated) | ||
Line 652: | Line 610: | ||
|- | |- | ||
| 0x147 || 0x01 || 00 || || padding (aligned to 4 bytes boundary) | | 0x147 || 0x01 || 00 || || padding (aligned to 4 bytes boundary) | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan=" | | rowspan="3" | events | ||
|- | |- | ||
| 0x148 || 0x00 || || || events table is empty | | 0x148 || 0x00 || || || events table is empty | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| | | files || 0x148 || 0x8 || 0x8888888888888888 || || image_test.gim | ||
| 0x148 || 0x8 || 0x8888888888888888 || || image_test.gim | |||
|} | |} | ||
==ImageTree with 2 images== | ==ImageTree with 2 images== | ||
This example is intended to replace the previous one (but by now i dont want to delete the previous one). It can help to see how the offsets are cummulated and the optional paddings to align to boundary | This example is intended to replace the previous one (but by now i dont want to delete the previous one). It can help to see how the offsets are cummulated and the optional paddings to align to boundary | ||
The .xml below is the RCOXML source file used to create the .rco. The file '''image2_test.gim''' is a dummy of 2 bytes filed with 2222 and the file '''image3_test.gim''' is a dummy of 3 bytes filed with 333333 | The .xml below is the RCOXML source file used to create the .rco. The file '''image2_test.gim''' is a dummy of 2 bytes filed with 2222 and the file '''image3_test.gim''' is a dummy of 3 bytes filed with 333333 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | ||
<MainTree name="test"> | <MainTree name="test"> | ||
Line 703: | Line 636: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
When compiled | When compiled | ||
<div style="height:600px; overflow:auto"> | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ||
Line 733: | Line 667: | ||
00000190 22 22 00 00 78 DA 01 03 00 FC FF 33 33 33 01 35 ""..xÚ...üÿ333.5 | 00000190 22 22 00 00 78 DA 01 03 00 FC FF 33 33 33 01 35 ""..xÚ...üÿ333.5 | ||
000001A0 00 9A 00 00 .š.. | 000001A0 00 9A 00 00 .š.. | ||
</div> | |||
==ObjectTree with 1 page and 1 plane== | |||
This is a basic example of how objecttree and animationtree (not files) stores his values inside the container. It can help to understand all the values related with the hierarchy relationship between parents/childrens/brothers, etc... | |||
This | |||
{{Boxcode|content=<syntaxhighlight lang="xml"> | |||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | |||
<MainTree name="test"> | |||
{{Boxcode| | |||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer=" | |||
<MainTree name=" | |||
<ObjectTree> | <ObjectTree> | ||
<Page name=" | <Page name="page_test" pageMode="0x111" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> | ||
<Plane name=" | <Plane name="plane_test" positionX="1" positionY="2" positionZ="3" colorScaleR="4" colorScaleG="5" colorScaleB="6" colorScaleA="7" sizeX="8" sizeY="9" sizeZ="10" sizeScaleX="11" sizeScaleY="12" sizeScaleZ="13" anchorMode="0x3" onInit="nothing" positionOverrideX="0x0" positionOverrideY="0x20" positionOverrideZ="0x30" sizeOverrideX="0x40" sizeOverrideY="0x50" sizeOverrideZ="0x60" planeImage="nothing" planeResizeMode="0x6"></Plane> | ||
</Page> | </Page> | ||
</ObjectTree> | </ObjectTree> | ||
Line 1,016: | Line 683: | ||
</RcoFile> | </RcoFile> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||