Talk:Resource Container (RCO): Difference between revisions
m (→PSP 6.61 RCO MD5 hashreport: XMB archeology) |
|||
Line 100: | Line 100: | ||
=PSP 6.61 RCO MD5 hashreport= | =PSP 6.61 RCO MD5 hashreport= | ||
*PSP 6.61 firmware contains | *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) | *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 to extract his contents) | ||
*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) | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
Line 232: | Line 236: | ||
</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 | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | {{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 |
Revision as of 11:27, 13 December 2015
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 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, 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"
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"
Code Sample
After extracting the contents of the RCO with RCOmage, the "rco set" 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 "rco set" version 0x106
Code Sample
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
If there is no formula, the only thing we can do is to make a list with the versions used in the "rco set" from all PS3 firmwares. Probably this list will be included in the next version of rcomage to improve PS3 compatibility so please help completing the collection
Console | System firmware version | "RCO set" version |
---|---|---|
PSP | 1.0 | 0x70 |
PSP | 1.5 | 0x71 |
PSP | 2.6 | 0x90 |
PSP | 2.7 | 0x95 |
PSP | 2.8 | 0x96 |
PSP | 3.5 | 0x100 |
PSP | 6.60 | 0x100 |
PSP | 6.61 | 0x100 |
Console | System firmware version | "RCO set" version |
---|---|---|
PS3 | 1.00~1.54 | 0x97 |
PS3 | 1.60~1.70 | 0x102 |
PS3 | 1.80~1.82 | 0x104 |
PS3 | 1.90~1.94 | 0x105 |
PS3 | 2.00~2.17 | 0x106 |
PS3 | 2.20~2.80 | 0x107 |
PS3 | 3.00~3.01 | 0x108 |
PS3 | 3.10~3.74 | 0x110 |
PS3 | 4.00~4.25 | 0x120 |
PS3 | 4.30~4.76 | 0x130 |
- The PS3 versions in the table above are based in the changelog of custom_render_plugin.rco.For a more detailed changelog see the page: Talk:Custom render plugin
- 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)
Firmware Version |
MD5 | RCOset | RCOXML Objects <ObjectTree> | RCOXML Animations <AnimTree> see also: RCOXML ofw animations |
RCOXML Images <ImageTree> | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scelogo plane | ps3logo plane | other objects | |||||||||||||||||||||
stdOverridePositionX | stdOverridePositionY | stdOverrideSizeX | stdOverrideSizeY | stdOverrideSizeX | stdOverrideSizeY | ||||||||||||||||||
value | grid | factor | value | grid | factor | value | grid | factor | value | grid | factor | value | grid | factor | value | grid | factor | ||||||
1.00~1.02 | 957F706965F317698EFEB7FE3D878D18 | 0x97 | 0xe9010000 | 489+1 | 0+1 | 0xea010000 | 490+1 | 0+1 | 0xeb010100 | 491+1 | 1+1 | 0xec010100 | 492+1 | 1+1 | 0xed010100 | 493+1 | 1+1 | 0xee010100 | 494+1 | 1+1 | Initial version | Initial version | Initial version |
1.10~1.11 | AA737527F6A61CEE01924044DBDB48F3 | 0x97 | 0xee010000 | 494+1 | 0+1 | 0xef010000 | 495+1 | 0+1 | 0xf0010100 | 496+1 | 1+1 | 0xf1010100 | 497+1 | 1+1 | 0xf2010100 | 498+1 | 1+1 | 0xf3010100 | 499+1 | 1+1 | No changes | No changes | No changes |
1.30~1.32 | 7F5C343DB404DE3701B885BEAA7BE6CD | 0x97 | 0xef010000 | 495+1 | 0+1 | 0xf0010000 | 496+1 | 0+1 | 0xf1010100 | 497+1 | 1+1 | 0xf2010100 | 498+1 | 1+1 | 0xf3010100 | 499+1 | 1+1 | 0xf4010100 | 500+1 | 1+1 | |||
1.50~1.54 | AA737527F6A61CEE01924044DBDB48F3 | 0x97 | 0xee010000 | 494+1 | 0+1 | 0xef010000 | 495+1 | 0+1 | 0xf0010100 | 496+1 | 1+1 | 0xf1010100 | 497+1 | 1+1 | 0xf2010100 | 498+1 | 1+1 | 0xf3010100 | 499+1 | 1+1 | |||
1.60~1.70 | 3D1DDD9E61045D37EDBDA930FEB1B341 | 0x102 | 0xd2010000 | 466+1 | 0+1 | 0xd3010000 | 467+1 | 0+1 | 0xd4010100 | 468+1 | 1+1 | 0xd5010100 | 469+1 | 1+1 | 0xd6010100 | 470+1 | 1+1 | 0xd7010100 | 471+1 | 1+1 | |||
1.80~1.82 | D7E4F234F6C0D564C81E65B04C2E283D | 0x104 | 0xd3010000 | 467+1 | 0+1 | 0xd4010000 | 468+1 | 0+1 | 0xd5010100 | 469+1 | 1+1 | 0xd6010100 | 470+1 | 1+1 | 0xd7010100 | 471+1 | 1+1 | 0xd8010100 | 472+1 | 1+1 | |||
1.90~1.94 | 55E2E5125019CF23B65933B0DB4388DE | 0x105 | 0xd5010000 | 469+1 | 0+1 | 0xd6010000 | 470+1 | 0+1 | 0xd7010100 | 471+1 | 1+1 | 0xd8010100 | 472+1 | 1+1 | 0xd9010100 | 473+1 | 1+1 | 0xda010100 | 474+1 | 1+1 | |||
2.00~2.01 | 2282751BD5FE8F58D5849959C021BCC4 | 0x106 | 0xd6010000 | 470+1 | 0+1 | 0xd7010000 | 471+1 | 0+1 | 0xd8010100 | 472+1 | 1+1 | 0xd9010100 | 473+1 | 1+1 | 0xda010100 | 474+1 | 1+1 | 0xdb010100 | 475+1 | 1+1 | |||
2.10~2.17 | 075C785C3B310D4D4F99CE9CD6A652B4 | 0x106 | 0xe3010000 | 483+1 | 0+1 | 0xe4010000 | 484+1 | 0+1 | 0xe5010100 | 485+1 | 1+1 | 0xe6010100 | 486+1 | 1+1 | 0xe7010100 | 487+1 | 1+1 | 0xe8010100 | 488+1 | 1+1 | |||
2.20 | BB10C1C57EB9DD91532CAFD865B80DAD | 0x107 | |||||||||||||||||||||
2.30~2.36 | 8C070B74082E2B7650D0358E347AED80 | 0x107 | 0xe5010000 | 485+1 | 0+1 | 0xe6010000 | 486+1 | 0+1 | 0xe7010100 | 487+1 | 1+1 | 0xe8010100 | 488+1 | 1+1 | 0xe9010100 | 489+1 | 1+1 | 0xea010100 | 490+1 | 1+1 | |||
2.40~2.43 | 2CA56107EDE4A0E83C8B706C2B7A2F1B | 0x107 | 0x24020000 | 548+1 | 0+1 | 0x25020000 | 549+1 | 0+1 | 0x26020100 | 550+1 | 1+1 | 0x27020100 | 551+1 | 1+1 | 0x28020100 | 552+1 | 1+1 | 0x29020100 | 553+1 | 1+1 | |||
2.50~2.53 | E4F69377DF56EC728DC29D6AB814ED63 | 0x107 | 0x3a020000 | 570+1 | 0+1 | 0x3b020000 | 571+1 | 0+1 | 0x3c020100 | 572+1 | 1+1 | 0x3d020100 | 573+1 | 1+1 | 0x3e020100 | 574+1 | 1+1 | 0x3f020100 | 575+1 | 1+1 | |||
2.60 | EBCB8B2BF2D0122A7E7AA43459B989A3 | 0x107 | 0x49020000 | 585+1 | 0+1 | 0x4a020000 | 586+1 | 0+1 | 0x4b020100 | 587+1 | 1+1 | 0x4c020100 | 588+1 | 1+1 | 0x4d020100 | 589+1 | 1+1 | 0x4e020100 | 590+1 | 1+1 | |||
2.70~2.76 | 07A2E2F30C97FFE508234585420C1BCF | 0x107 | 0x4c020000 | 588+1 | 0+1 | 0x4d020000 | 589+1 | 0+1 | 0x4e020100 | 590+1 | 1+1 | 0x4f020100 | 591+1 | 1+1 | 0x50020100 | 592+1 | 1+1 | 0x51020100 | 593+1 | 1+1 | page_coldboot2 (page added) | anim_coldboot2 (animation added) | |
2.80 | 52551D13219AF705B1EE17B80B611948 | 0x107 | 0x4e020000 | 590+1 | 0+1 | 0x4f020000 | 591+1 | 0+1 | 0x50020100 | 592+1 | 1+1 | 0x51020100 | 593+1 | 1+1 | 0x52020100 | 594+1 | 1+1 | 0x53020100 | 595+1 | 1+1 | No changes | No changes | |
3.00~3.01 | 7540C3BAF80AD5BAE4B4342149BC5116 | 0x108 | 0x6f020000 | 623+1 | 0+1 | 0x70020000 | 624+1 | 0+1 | 0x71020100 | 625+1 | 1+1 | 0x72020100 | 626+1 | 1+1 | 0x73020100 | 627+1 | 1+1 | 0x74020100 | 628+1 | 1+1 | blur (page added) | anim_coldboot2 (minor changes) anim_otherboot (decreased duration, FireEvent added) | |
3.10~3.21 | 5B821E62F74ECBA55C02CB90D88ED929 | 0x110 | 0x70020000 | 624+1 | 0+1 | 0x71020000 | 625+1 | 0+1 | 0x72020100 | 626+1 | 1+1 | 0x73020100 | 627+1 | 1+1 | 0x74020100 | 628+1 | 1+1 | 0x75020100 | 629+1 | 1+1 | No changes | No changes | |
3.30 | 9F16A32EF5EDBB802A9DFD2E5F46E88E | 0x110 | 0x72020000 | 626+1 | 0+1 | 0x73020000 | 627+1 | 0+1 | 0x74020100 | 628+1 | 1+1 | 0x75020100 | 629+1 | 1+1 | 0x76020100 | 630+1 | 1+1 | 0x77020100 | 631+1 | 1+1 | |||
3.40~3.56 | 0D6054717B3C7573047BBF8CF0C37E32 | 0x110 | 0x7d020000 | 637+1 | 0+1 | 0x7e020000 | 638+1 | 0+1 | 0x7f020100 | 639+1 | 1+1 | 0x80020100 | 640+1 | 1+1 | 0x81020100 | 641+1 | 1+1 | 0x82020100 | 642+1 | 1+1 | |||
3.60~3.74 | 56CFE845364C511FC2C5D4154FFD2CCD | 0x110 | 0x85020000 | 645+1 | 0+1 | 0x86020000 | 646+1 | 0+1 | 0x87020100 | 647+1 | 1+1 | 0x88020100 | 648+1 | 1+1 | 0x89020100 | 649+1 | 1+1 | 0x8a020100 | 650+1 | 1+1 | |||
4.00~4.25 | 9764A4790A360C0769359DE8741A55AE | 0x120 | |||||||||||||||||||||
4.30~4.46 | 02251196DCEF6ABC756499A18B6A9BFC | 0x130 | 0x97020000 | 663+1 | 0+1 | 0x98020000 | 664+1 | 0+1 | 0x99020100 | 665+1 | 1+1 | 0x9a020100 | 666+1 | 1+1 | 0x9b020100 | 667+1 | 1+1 | 0x9c020100 | 668+1 | 1+1 | |||
4.50~4.78 | FB9C8E467A0A1E2C38397D6F266FC997 | 0x130 | 0x98020000 | 664+1 | 0+1 | 0x99020000 | 665+1 | 0+1 | 0x9a020100 | 666+1 | 1+1 | 0x9b020100 | 667+1 | 1+1 | 0x9c020100 | 668+1 | 1+1 | 0x9d020100 | 669+1 | 1+1 | |||
4.80~4.89 | 9441159906B3A81E9A4DAD58CD995ED8 | 0x130 | 0x98020000 | 664+1 | 0+1 | 0x99020000 | 665+1 | 0+1 | 0x9a020100 | 666+1 | 1+1 | 0x9b020100 | 667+1 | 1+1 | 0x9c020100 | 668+1 | 1+1 | 0x9d020100 | 669+1 | 1+1 | tex_scelogo.gim (image updated) |
- File Contents:
- tex_ps3logo.gim
- 1.00-4.89 (MD5: 87068679DB28FE5347700FADBF281E5A) 1200x128 pixels size (it says: "Playstation 3"), see: [1]
- tex_scelogo.gim
- 1.00-4.78 (MD5: 6158E31B5274DEE04F6193873F731B7F) 1024x64 pixels size (it says: "Sony Computer Entertainment"), see: [2]
- 4.80~4.89 (MD5: 44A1C6660B77703E1E9DA3816F345400) 1024x64 pixels size (it says: "Sony Interactive Entertainment")
- tex_ps3logo.gim
- The examples below only shows completly the rcoxml code from firmware 1.00 and 4.89 (first and latest retail firmware at this date). For the other firmwares is shown only the changes, either a complete line if a whole line was added, or only the specific attributes that was changed if the line existed before. All this examples has been extracted with a modifyed version of Rcomage using a custom objattribdef-ps3.ini with the "override" attributes configured as data type "unk" (for a raw extraction of the values related to XMB Layouts)
<?xml version="1.0" encoding="iso-8859-1"?> <!-- This XML representation of an RCO structure was generated by Rcomage v1.1.2 --> <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x97"> <MainTree name="custom_render_plugin"> <ImageTree> <Image name="tex_scelogo" src=".\custom_render_plugin_RCO\custom_render_plugin_100_102\Images\tex_scelogo.gim" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_ps3logo" src=".\custom_render_plugin_RCO\custom_render_plugin_100_102\Images\tex_ps3logo.gim" format="gim" compression="zlib" unknownByte="0" /> </ImageTree> <ObjectTree> <Page name="page_null" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"></Page> <Page name="page_coldboot" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="scelogo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0xe9010000" stdOverridePositionY="0xea010000" stdOverridePositionZ="0x0" stdOverrideSizeX="0xeb010100" stdOverrideSizeY="0xec010100" stdOverrideSizeZ="0x100" planeImage="image:tex_scelogo" planeResizeMode="0x0"></Plane> </Page> <Page name="page_gameboot" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="ps3logo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0x0" stdOverridePositionY="0x0" stdOverridePositionZ="0x0" stdOverrideSizeX="0xed010100" stdOverrideSizeY="0xee010100" stdOverrideSizeZ="0x100" planeImage="image:tex_ps3logo" planeResizeMode="0x0"></Plane> </Page> </ObjectTree> <AnimTree> <Animation name="anim_coldboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_coldboot_BootBG1" /> <Delay time="0" /> <FireEvent event="event:native:/anim_coldboot_NormalBG" /> <Delay time="1500" /> <Fade object="object:scelogo" duration="1000" accelMode="0x3" transparency="0.8" /> <Delay time="2500" /> <Fade object="object:scelogo" duration="1000" accelMode="0x3" transparency="0" /> <Delay time="1000" /> <Delay time="500" /> <FireEvent event="event:native:/anim_coldboot_ShowGUI" /> <Unlock unknownInt0="0xffffffff" /> <Delay time="4500" /> <FireEvent event="event:native:/anim_coldboot_Finished" /> </Animation> <Animation name="anim_gameboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:ps3logo" duration="0" accelMode="0x0" transparency="0" /> <Resize object="object:ps3logo" duration="0" accelMode="0x0" width="0.938" height="0.938" depth="1" /> <FireEvent event="event:native:/anim_gameboot_BG2" /> <Delay time="500" /> <Fade object="object:ps3logo" duration="863" accelMode="0x3" transparency="1" /> <Resize object="object:ps3logo" duration="863" accelMode="0x4" width="1" height="1" depth="1" /> <FireEvent event="event:native:/anim_gameboot_BG3" /> <Delay time="1100" /> <Fade object="object:ps3logo" duration="174" accelMode="0x1" transparency="0" /> <Resize object="object:ps3logo" duration="174" accelMode="0x1" width="1.284" height="1.284" depth="1" /> <Delay time="1000" /> <Delay time="200" /> <FireEvent event="event:native:/anim_gameboot_Finished" /> </Animation> <Animation name="anim_otherboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:ps3logo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_otherboot_BG3" /> <Delay time="1000" /> <FireEvent event="event:native:/anim_otherboot_Finished" /> </Animation> </AnimTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xee010000" stdOverridePositionY="0xef010000" stdOverrideSizeX="0xf0010100" stdOverrideSizeY="0xf1010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xf2010100" stdOverrideSizeY="0xf3010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xef010000" stdOverridePositionY="0xf0010000" stdOverrideSizeX="0xf1010100" stdOverrideSizeY="0xf2010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xf3010100" stdOverrideSizeY="0xf4010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xee010000" stdOverridePositionY="0xef010000" stdOverrideSizeX="0xf0010100" stdOverrideSizeY="0xf1010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xf2010100" stdOverrideSizeY="0xf3010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x102"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xd2010000" stdOverridePositionY="0xd3010000" stdOverrideSizeX="0xd4010100" stdOverrideSizeY="0xd5010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xd6010100" stdOverrideSizeY="0xd7010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x104"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xd3010000" stdOverridePositionY="0xd4010000" stdOverrideSizeX="0xd5010100" stdOverrideSizeY="0xd6010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xd7010100" stdOverrideSizeY="0xd8010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x105"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xd5010000" stdOverridePositionY="0xd6010000" stdOverrideSizeX="0xd7010100" stdOverrideSizeY="0xd8010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xd9010100" stdOverrideSizeY="0xda010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x106"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xd6010000" stdOverridePositionY="0xd7010000" stdOverrideSizeX="0xd8010100" stdOverrideSizeY="0xd9010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xda010100" stdOverrideSizeY="0xdb010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xe3010000" stdOverridePositionY="0xe4010000" stdOverrideSizeX="0xe5010100" stdOverrideSizeY="0xe6010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xe7010100" stdOverrideSizeY="0xe8010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x107"> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0xe5010000" stdOverridePositionY="0xe6010000" stdOverrideSizeX="0xe7010100" stdOverrideSizeY="0xe8010100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0xe9010100" stdOverrideSizeY="0xea010100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x24020000" stdOverridePositionY="0x25020000" stdOverrideSizeX="0x26020100" stdOverrideSizeY="0x27020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x28020100" stdOverrideSizeY="0x29020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x3a020000" stdOverridePositionY="0x3b020000" stdOverrideSizeX="0x3c020100" stdOverrideSizeY="0x3d020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x3e020100" stdOverrideSizeY="0x3f020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x49020000" stdOverridePositionY="0x4a020000" stdOverrideSizeX="0x4b020100" stdOverrideSizeY="0x4c020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x4d020100" stdOverrideSizeY="0x4e020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x4c020000" stdOverridePositionY="0x4d020000" stdOverrideSizeX="0x4e020100" stdOverrideSizeY="0x4f020100"></Plane> </Page> <Page name="page_coldboot2" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="coldboot_ps3logo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0x0" stdOverridePositionY="0x0" stdOverridePositionZ="0x0" stdOverrideSizeX="0x100" stdOverrideSizeY="0x100" stdOverrideSizeZ="0x100" planeImage="nothing" planeResizeMode="0x0"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x50020100" stdOverrideSizeY="0x51020100"></Plane> </Page> </ObjectTree> <AnimTree> <Animation name="anim_coldboot2"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_coldboot_BootBG2" /> <Delay time="5500" /> <FireEvent event="event:native:/anim_coldboot_NormalBG2" /> <FireEvent event="event:native:/anim_coldboot_ShowGUI" /> <Unlock unknownInt0="0xffffffff" /> <Delay time="4500" /> <FireEvent event="event:native:/anim_coldboot_Finished" /> </Animation> </AnimTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x4e020000" stdOverridePositionY="0x4f020000" stdOverrideSizeX="0x50020100" stdOverrideSizeY="0x51020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x52020100" stdOverrideSizeY="0x53020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x108"> <MainTree> <ObjectTree> <Page name="blur" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"></Page> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x6f020000" stdOverridePositionY="0x70020000" stdOverrideSizeX="0x71020100" stdOverrideSizeY="0x72020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x73020100" stdOverrideSizeY="0x74020100"></Plane> </ObjectTree> <AnimTree> <Animation name="anim_coldboot2"> <Delay time="4000" /> <Delay time="1500" /> </Animation> <Animation name="anim_otherboot"> <Delay time="200" /> <FireEvent event="event:native:/anim_otherboot_BG4" /> <Delay time="300" /> </AnimTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x110"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x70020000" stdOverridePositionY="0x71020000" stdOverrideSizeX="0x72020100" stdOverrideSizeY="0x73020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x74020100" stdOverrideSizeY="0x75020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x72020000" stdOverridePositionY="0x73020000" stdOverrideSizeX="0x74020100" stdOverrideSizeY="0x75020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x76020100" stdOverrideSizeY="0x77020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x7d020000" stdOverridePositionY="0x7e020000" stdOverrideSizeX="0x7f020100" stdOverrideSizeY="0x80020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x81020100" stdOverrideSizeY="0x82020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x85020000" stdOverridePositionY="0x86020000" stdOverrideSizeX="0x87020100" stdOverrideSizeY="0x88020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x89020100" stdOverrideSizeY="0x8a020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<RcoFile minFirmwareVer="unknownId0x130"> <MainTree> <ObjectTree> <Page name="page_coldboot"> <Plane name="scelogo" stdOverridePositionX="0x97020000" stdOverridePositionY="0x98020000" stdOverrideSizeX="0x99020100" stdOverrideSizeY="0x9a020100"></Plane> </Page> <Page name="page_gameboot"> <Plane name="ps3logo" stdOverrideSizeX="0x9b020100" stdOverrideSizeY="0x9c020100"></Plane> </ObjectTree> </MainTree> </RcoFile>
<?xml version="1.0" encoding="iso-8859-1"?> <!-- This XML representation of an RCO structure was generated by Rcomage v1.1.2 --> <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> <MainTree name="custom_render_plugin"> <ImageTree> <Image name="tex_scelogo" src=".\custom_render_plugin_RCO\custom_render_plugin\Images\tex_scelogo.gim" format="gim" compression="zlib" unknownByte="0" /> <Image name="tex_ps3logo" src=".\custom_render_plugin_RCO\custom_render_plugin\Images\tex_ps3logo.gim" format="gim" compression="zlib" unknownByte="0" /> </ImageTree> <ObjectTree> <Page name="page_null" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"></Page> <Page name="blur" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"></Page> <Page name="page_coldboot" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="scelogo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0x98020000" stdOverridePositionY="0x99020000" stdOverridePositionZ="0x0" stdOverrideSizeX="0x9a020100" stdOverrideSizeY="0x9b020100" stdOverrideSizeZ="0x100" planeImage="image:tex_scelogo" planeResizeMode="0x0"></Plane> </Page> <Page name="page_coldboot2" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="coldboot_ps3logo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0x0" stdOverridePositionY="0x0" stdOverridePositionZ="0x0" stdOverrideSizeX="0x100" stdOverrideSizeY="0x100" stdOverrideSizeZ="0x100" planeImage="nothing" planeResizeMode="0x0"></Plane> </Page> <Page name="page_gameboot" pageMode="0x1110000" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> <Plane name="ps3logo" stdPositionX="0" stdPositionY="0" stdPositionZ="0" stdColorScaleR="1" stdColorScaleG="1" stdColorScaleB="1" stdColorScaleA="1" stdSizeX="0" stdSizeY="0" stdSizeZ="0" stdSizeScaleX="1" stdSizeScaleY="1" stdSizeScaleZ="1" stdAnchorPointMode="0x0" stdOnInit="nothing" stdOverridePositionX="0x0" stdOverridePositionY="0x0" stdOverridePositionZ="0x0" stdOverrideSizeX="0x9c020100" stdOverrideSizeY="0x9d020100" stdOverrideSizeZ="0x100" planeImage="image:tex_ps3logo" planeResizeMode="0x0"></Plane> </Page> </ObjectTree> <AnimTree> <Animation name="anim_coldboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_coldboot_BootBG1" /> <Delay time="0" /> <FireEvent event="event:native:/anim_coldboot_NormalBG" /> <Delay time="1500" /> <Fade object="object:scelogo" duration="1000" accelMode="0x3" transparency="0.8" /> <Delay time="2500" /> <Fade object="object:scelogo" duration="1000" accelMode="0x3" transparency="0" /> <Delay time="1000" /> <Delay time="500" /> <FireEvent event="event:native:/anim_coldboot_ShowGUI" /> <Unlock unknownInt0="0xffffffff" /> <Delay time="4500" /> <FireEvent event="event:native:/anim_coldboot_Finished" /> </Animation> <Animation name="anim_coldboot2"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:scelogo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_coldboot_BootBG2" /> <Delay time="4000" /> <FireEvent event="event:native:/anim_coldboot_NormalBG2" /> <Delay time="1500" /> <FireEvent event="event:native:/anim_coldboot_ShowGUI" /> <Unlock unknownInt0="0xffffffff" /> <Delay time="4500" /> <FireEvent event="event:native:/anim_coldboot_Finished" /> </Animation> <Animation name="anim_gameboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:ps3logo" duration="0" accelMode="0x0" transparency="0" /> <Resize object="object:ps3logo" duration="0" accelMode="0x0" width="0.938" height="0.938" depth="1" /> <FireEvent event="event:native:/anim_gameboot_BG2" /> <Delay time="500" /> <Fade object="object:ps3logo" duration="863" accelMode="0x3" transparency="1" /> <Resize object="object:ps3logo" duration="863" accelMode="0x4" width="1" height="1" depth="1" /> <FireEvent event="event:native:/anim_gameboot_BG3" /> <Delay time="1100" /> <Fade object="object:ps3logo" duration="174" accelMode="0x1" transparency="0" /> <Resize object="object:ps3logo" duration="174" accelMode="0x1" width="1.284" height="1.284" depth="1" /> <Delay time="1000" /> <Delay time="200" /> <FireEvent event="event:native:/anim_gameboot_Finished" /> </Animation> <Animation name="anim_otherboot"> <Lock unknownInt0="0xffffffff" /> <Fade object="object:ps3logo" duration="0" accelMode="0x0" transparency="0" /> <FireEvent event="event:native:/anim_otherboot_BG3" /> <Delay time="200" /> <FireEvent event="event:native:/anim_otherboot_BG4" /> <Delay time="300" /> <FireEvent event="event:native:/anim_otherboot_Finished" /> </Animation> </AnimTree> </MainTree> </RcoFile>
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"
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)
- 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 to extract his contents)
- 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)
- TRIANGLE or CROSS - only rebuilds
Code Sample
- PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ)
Code Sample