Talk:Resource Container (RCO): Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 42: Line 42:


=RCO versions=
=RCO versions=
{| class="wikitable"
{| class="wikitable"
|-
|-
! Console !! Firmware !! RCO version !! <abbr title="release date of the first firmware using that rco version">Release date</abbr>
! RCO version !! Firmware !! <abbr title="release date of the first firmware using that rco version in format YYYY/MM/DD">Release date</abbr> !! Notes
|-
|-
| {{icon content psp}} || 0.6.5 || 0x55 ||  
| 0x55 || {{icon content psp}} 0.6.5 || pre-retail ||  
|-
|-
| {{icon content psp}} || 1.00 || 0x70 || 2004 December 12
| 0x70 || {{icon content psp}} 1.00 || 2004 / 12 / 12 ||  
|-
|-
| {{icon content psp}} || 1.50~2.50 || 0x71 || 2005 March 24
| 0x71 || {{icon content psp}} 1.50~2.50 || 2005 / 3 / 24 ||  
|-
|-
| {{icon content psp}} || 2.60 || 0x90 || 2005 November 29
| 0x90 || {{icon content psp}} 2.60 || 2005 / 11 / 29 ||  
|-
|-
| {{icon content psp}} || 2.70~2.71 || 0x95 || 2006 April 25
| 0x95 || {{icon content psp}} 2.70~2.71 || 2006 / 4 / 25 ||  
|-
|-
| {{icon content psp}} || 2.80~3.40 || 0x96 || 2006 July 27
| 0x96 || {{icon content psp}} 2.80~3.40 || 2006 / 7 / 27 ||  
|-
|-
| {{icon content ps3}} || 1.00~1.54 || 0x97 || 2006 November 11
| 0x97 || {{icon content ps3}} 1.00~1.54 || 2006 / 11 / 11 ||  
|-
|-
| {{icon content psp}} || 3.50~6.61 || 0x100 || 2007 May 31
| 0x100 || {{icon content psp}} 3.50~6.61 || 2007 / 5 / 31 ||  
|-
|-
| {{icon content ps3}} || 1.60~1.70 || 0x102 || 2007 March 22
| 0x102 || {{icon content ps3}} 1.60~1.70 || 2007 / 3 / 22 ||  
|-
|-
| {{icon content ps3}} || 1.80~1.82 || 0x104 || 2007 May 24
| 0x104 || {{icon content ps3}} 1.80~1.82 || 2007 / 5 / 24 ||  
|-
|-
| {{icon content ps3}} || 1.90~1.94 || 0x105 || 2007 July 24
| 0x105 || {{icon content ps3}} 1.90~1.94 || 2007 / 7 / 24 ||  
|-
|-
| {{icon content ps3}} || 2.00~2.17 || 0x106 || 2007 November 8
| 0x106 || {{icon content ps3}} 2.00~2.17 || 2007 / 11 / 8 ||  
|-
|-
| {{icon content ps3}} || 2.20~2.80 || 0x107 || 2008 March 25
| 0x107 || {{icon content ps3}} 2.20~2.80 || 2008 / 3 / 25 ||  
|-
|-
| {{icon content ps3}} || 3.00~3.01 || 0x108 || 2009 September 1
| 0x108 || {{icon content ps3}} 3.00~3.01 || 2009 / 9 / 1 ||  
|-
|-
| {{icon content ps3}} || 3.10~3.74 || 0x110 || 2009 November 19
| 0x110 || {{icon content ps3}} 3.10~3.74 || 2009 / 11 / 19 ||  
|-
|-
| {{icon content ps3}} || 4.00~4.25 || 0x120 || 2011 November 29
| 0x120 || {{icon content ps3}} 4.00~4.25 || 2011 / 11 / 29 ||  
|-
|-
| {{icon content ps3}} || 4.30~4.76 || 0x130 || 2012 October 24
| 0x130 || {{icon content ps3}} 4.30~4.76 || 2012 / 10 / 24 ||  
|}
|}



Revision as of 16:53, 7 September 2016

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

RCO version Firmware Release date Notes
0x55 PSP icon 0.6.5 pre-retail
0x70 PSP icon 1.00 2004 / 12 / 12
0x71 PSP icon 1.50~2.50 2005 / 3 / 24
0x90 PSP icon 2.60 2005 / 11 / 29
0x95 PSP icon 2.70~2.71 2006 / 4 / 25
0x96 PSP icon 2.80~3.40 2006 / 7 / 27
0x97 PS3 icon 1.00~1.54 2006 / 11 / 11
0x100 PSP icon 3.50~6.61 2007 / 5 / 31
0x102 PS3 icon 1.60~1.70 2007 / 3 / 22
0x104 PS3 icon 1.80~1.82 2007 / 5 / 24
0x105 PS3 icon 1.90~1.94 2007 / 7 / 24
0x106 PS3 icon 2.00~2.17 2007 / 11 / 8
0x107 PS3 icon 2.20~2.80 2008 / 3 / 25
0x108 PS3 icon 3.00~3.01 2009 / 9 / 1
0x110 PS3 icon 3.10~3.74 2009 / 11 / 19
0x120 PS3 icon 4.00~4.25 2011 / 11 / 29
0x130 PS3 icon 4.30~4.76 2012 / 10 / 24
  • 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)
    • 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)
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")
custom_render_plugin.xml (changelog)
  • 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)
custom_render_plugin.rco Firmware 1.00~1.02 (complete)
Edit-copy purple.svg.png
<?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>
custom_render_plugin.rco Firmware 1.10~1.11 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 1.30~1.32 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 1.50~1.54 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 1.60~1.70 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 1.80~1.82 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 1.90~1.94 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.00~2.01 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.10~2.17 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.20 (changes only)
Edit-copy purple.svg.png
<RcoFile minFirmwareVer="unknownId0x107">
</RcoFile>
custom_render_plugin.rco Firmware 2.30~2.36 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.40~2.43 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.50~2.53 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.60 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.70~2.76 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 2.80 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 3.00~3.01 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 3.10~3.21 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 3.30 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 3.40~3.56 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 3.60~3.74 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 4.00~4.25 (changes only)
Edit-copy purple.svg.png
<RcoFile minFirmwareVer="unknownId0x120">
</RcoFile>
custom_render_plugin.rco Firmware 4.30~4.46 (changes only)
Edit-copy purple.svg.png
<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>
custom_render_plugin.rco Firmware 4.50~4.89 (complete)
Edit-copy purple.svg.png
<?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 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