Talk:Resource Container (RCO): Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (→‎RCO versions: cleanup done)
m (moved to front page)
Line 1: Line 1:


=RCO versioning=
=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 sequence 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, 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"
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
 
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">
{{Boxcode|content=<syntaxhighlight lang="c">
Line 20: Line 18:
</syntaxhighlight>}}
</syntaxhighlight>}}


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'''
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'''


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 "rco set" version 0x106
Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106
{{Boxcode|content=<syntaxhighlight lang="xml">
{{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'''
=Hashreports=
 
==PS3 all versions==
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"
|-
! <abbr title="based in the changelog of custom_render_plugin.rco PS3, and rcomage source code">RCO version</abbr> !! 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 || archaic rco format, header is 12 bytes smaller
|-
| 0x70 || {{icon content psp}} 1.00 || 2004 / 12 / 12 ||
|-
| 0x71 || {{icon content psp}} 1.50~2.50 || 2005 / 3 / 24 || normal table section up to this version
|-
| 0x90 || {{icon content psp}} 2.60 || 2005 / 11 / 29 || zlib compressed table section implemented
|-
| 0x95 || {{icon content psp}} 2.70~2.71 || 2006 / 4 / 25 || rlz compressed table section implemented
|-
| 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 ||
|}
 
= 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.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)

Revision as of 18:04, 7 September 2016

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

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

Code Sample

After extracting the contents of the RCO with RCOmage, the version is stored for rebuilding purposes in the RCOXML descriptor file as an attribute with the name minFirmwareVer

If the version is unknown is stored as unknownId0x%x using unknownId to specify the fact that is unknown + the real hex value 0x%x

Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106

Code Sample

Hashreports

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"

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)
  • 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)
  • Resurssiklunssi rebuilds the .rco files and allows for two rebuild modes:
    • TRIANGLE or CROSS - only rebuilds
      • The converted files will have minFirmwareVer="1.5" (the original value is lost in the conversion)
    • SQUARE or CIRCLE - rebuilds and recompress in ZLIB
      • The converted files will have minFirmwareVer="2.6" (the original value is lost in the conversion)
Code Sample
  • PSP 6.60 and 6.61 firmware. RCO hashes after resurssiklunssi rebuild (cross option)
Code Sample
  • PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ)
Code Sample