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 versioning= | |||
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 | 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 sequence 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) | It seems all the RCO's of a specific firmware shares the same version (verifyed for firmware 4.76, all 4.76 .rco's are minFirmwareVer="unknownId0x130"). It seems to be the version of the "rco set", or the version of the "rco tool" used to compile the whole "rco set" | ||
{{Boxcode| | Is posible to create a correspondecy between the "rco set" version and the firmwares versions where a specific "rco set" version was used. RCOmage v1.1.1 (latest stable) identifyes the version with a list of hardcoded values associated with a "system firmware version" | ||
{{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 19: | Line 20: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
After extracting the contents of the RCO with RCOmage, the version is stored for rebuilding purposes in the [[RCOXML Coding|RCOXML]] descriptor file as an attribute with the name '''minFirmwareVer''' | After extracting the contents of the RCO with RCOmage, the "rco set" version is stored for rebuilding purposes in the [[RCOXML Coding|RCOXML]] descriptor file as an attribute with the name '''minFirmwareVer''' | ||
If the version is unknown is stored as '''<nowiki>unknownId0x%x</nowiki>''' using '''unknownId''' to specify the fact that is unknown + the real hex value '''<nowiki>0x%x</nowiki>''' | If the version is unknown is stored as '''<nowiki>unknownId0x%x</nowiki>''' using '''unknownId''' to specify the fact that is unknown + the real hex value '''<nowiki>0x%x</nowiki>''' | ||
Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106 | Example... sysconf_plugin.rco from PS3 firmware 2.00 with "rco set" version 0x106 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="iso-8859-1"?> | |||
<!-- This XML representation of an RCO structure was generated by Rcomage v1.1.1 --> | |||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | ||
<MainTree name="sysconf_plugin"> | |||
<ImageTree> | |||
<Image name="tex_sysconf_icon" src="Images\tex_sysconf_icon.png" format="gim" compression="zlib" unknownByte="0" /> | |||
<Image ... | |||
<Image .. | |||
<Image . | |||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
'''Speculation''' | |||
There is no known formula to make a direct conversion from the hex value to the system firmware... speculative ideas post here | |||
=RCO versions= | |||
{ | {| class="wikitable" | ||
|- | |||
! RCO version !! Firmware !! <abbr title="release date of the first firmware using that rco version in format YYYY/MM/DD">Release date</abbr> !! Notes | |||
|- | |||
| 0x55 || {{icon content psp}} 0.6.5 || pre-retail || | |||
|- | |||
| 0x70 || {{icon content psp}} 1.00 || 2004 / 12 / 12 || | |||
|- | |||
| 0x71 || {{icon content psp}} 1.50~2.50 || 2005 / 3 / 24 || | |||
|- | |||
| 0x90 || {{icon content psp}} 2.60 || 2005 / 11 / 29 || | |||
|- | |||
| 0x95 || {{icon content psp}} 2.70~2.71 || 2006 / 4 / 25 || | |||
|- | |||
| 0x96 || {{icon content psp}} 2.80~3.40 || 2006 / 7 / 27 || | |||
|- | |||
| 0x97 || {{icon content ps3}} 1.00~1.54 || 2006 / 11 / 11 || | |||
|- | |||
| 0x100 || {{icon content psp}} 3.50~6.61 || 2007 / 5 / 31 || | |||
|- | |||
| 0x102 || {{icon content ps3}} 1.60~1.70 || 2007 / 3 / 22 || | |||
|- | |||
| 0x104 || {{icon content ps3}} 1.80~1.82 || 2007 / 5 / 24 || | |||
|- | |||
| 0x105 || {{icon content ps3}} 1.90~1.94 || 2007 / 7 / 24 || | |||
|- | |||
| 0x106 || {{icon content ps3}} 2.00~2.17 || 2007 / 11 / 8 || | |||
|- | |||
| 0x107 || {{icon content ps3}} 2.20~2.80 || 2008 / 3 / 25 || | |||
|- | |||
| 0x108 || {{icon content ps3}} 3.00~3.01 || 2009 / 9 / 1 || | |||
|- | |||
| 0x110 || {{icon content ps3}} 3.10~3.74 || 2009 / 11 / 19 || | |||
|- | |||
| 0x120 || {{icon content ps3}} 4.00~4.25 || 2011 / 11 / 29 || | |||
|- | |||
| 0x130 || {{icon content ps3}} 4.30~4.76 || 2012 / 10 / 24 || | |||
|} | |||
*The | *The list above is completed, includes all retails firmwares from PSP and PS3, and is based in the changelog of PS3 '''custom_render_plugin.rco''', rcomage source '''rcofile.h''', and info in endlessparadigm forum | ||
** | **All the .rco files from a specific firmware uses the same "RCO set" version (this has been verifyed for PS3 firmware 4.76) | ||
** | **All the .rco files from a specific firmware are build together, if for some reason there is need to add or modify one of the .rco files all the others are rebuilded too (this depends of the official compile enviroment for the firmware and is partially speculative) | ||
**The | **based on the rco version | ||
***0x70 or 0x71 means normal table section | |||
***0x90 means zlib compressed table section | |||
***larger values means rlz compressed table section | |||
**The PSP 0.6.5 firmware is pre-retail, it uses a different rco format than the others (header is 12 bytes smaller) and is not compatible with rcomage | |||
{{custom_render_plugin.rco changelog}} | |||
= RCO hashreport = | |||
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 6.61 RCO MD5 hashreport= | |||
*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 103: | ||
***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 231: | ||
</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 362: | ||
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 411: | ||
ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ||
87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | 87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||