Talk:Resource Container (RCO)

From PS3 Developer wiki
Jump to navigation Jump to search

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
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
PS3
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)
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 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)
Code Sample
  • PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ)
Code Sample