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 406: | Line 356: | ||
==ImageTree with 1 image== | ==ImageTree with 1 image== | ||
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 367: | ||
</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 397: | ||
! 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 488: | ||
|- | |- | ||
| 0xA0 || 0x04 || FF FF FF FF || ''unknown'' || | | 0xA0 || 0x04 || FF FF FF FF || ''unknown'' || | ||
|-{{cellcolors|#000000}} | |||
| colspan="5" | | |||
|- | |- | ||
| rowspan="46" | TOC | | rowspan="46" | TOC | ||
|- | |- | ||
| 0xA4 || 0x01 || 01 || ''' | | 0xA4 || 0x01 || 01 || '''hierarchy_depth''' || | ||
|- | |- | ||
| 0xA5 || 0x01 || 01 || ''' | | 0xA5 || 0x01 || 01 || '''entry_type''' || 0x1=MainTree | ||
|- | |- | ||
| 0xA6 || 0x02 || 00 00 || ''unknown'' || | | 0xA6 || 0x02 || 00 00 || ''unknown'' || | ||
Line 569: | Line 519: | ||
| colspan="5" | | | colspan="5" | | ||
|- | |- | ||
| 0xCC || 0x01 || 04 || ''' | | 0xCC || 0x01 || 04 || '''hierarchy_depth''' || {{cellcolors|#ff7777}} 0x4=ImageTree | ||
|- | |- | ||
| 0xCD || 0x01 || 00 || ''' | | 0xCD || 0x01 || 00 || '''entry_type''' || | ||
|- | |- | ||
| 0xCE || 0x02 || 00 00 || ''unknown'' || | | 0xCE || 0x02 || 00 00 || ''unknown'' || | ||
Line 595: | Line 545: | ||
| colspan="5" | | | colspan="5" | | ||
|- | |- | ||
| 0xF4 || 0x01 || 04 || ''' | | 0xF4 || 0x01 || 04 || '''hierarchy_depth''' || {{cellcolors|#ff7777}} 0x4=ImageTree | ||
|- | |- | ||
| 0xF5 || 0x01 || 01 || ''' | | 0xF5 || 0x01 || 01 || '''entry_type''' || | ||
|- | |- | ||
| 0xF6 || 0x02 || 00 00 || ''unknown'' || | | 0xF6 || 0x02 || 00 00 || ''unknown'' || | ||
Line 623: | Line 573: | ||
| 0x11C || 0x02 || 00 05 || '''file_format''' || 0x5=GIM | | 0x11C || 0x02 || 00 05 || '''file_format''' || 0x5=GIM | ||
|- | |- | ||
| 0x11E || | | 0x11E || 0x02 || 01 00 || '''file_compression''' || {{cellcolors|#ff7777}} 0x0=NONE<br>0x1=ZLIB<br>0x2=RLZ | ||
|- | |- | ||
| 0x120 || 0x04 || 00 00 00 08 || '''file_size''' || | | 0x120 || 0x04 || 00 00 00 08 || '''file_size''' || | ||
Line 632: | Line 580: | ||
|- | |- | ||
| 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 606: | ||
|- | |- | ||
| 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}} | |-{{cellcolors|#000000}} | ||
| colspan="5" | | | colspan="5" | | ||
|- | |- | ||
| | | files || 0x148 || 0x8 || 0x8888888888888888 || || image_test.gim | ||
| | |||
| | |||
|} | |} | ||