Resource Container (RCO)

From PS3 Developer wiki
Revision as of 22:11, 6 September 2016 by Sandungas (talk | contribs) (→‎Header)
Jump to navigation Jump to search

Description

Resource Container Objet (RCO) contents are loaded by XMB modules (also known as .sprx plugins), see Plugin Interfaces and VSH

  • Compression types availables:
    • ZLIB
    • RLZ
    • Uncompressed

Contents

Text for all languages, textures, sounds (for cursor navigation, trophy unlocking, etc...) and models

RCO format Embedded code Text Textures Sounds Models Script
Generic RCOXML utf8, utf16, utf32 gim, png, jpg, tif, gif, bmp vag, unknown0x0 gmo PlayStation JavaScript
PS3 specific RCOXML utf16 gim, png, jpg vag n/a n/a

RCO Structure

The container structure can be represented as an XML (see RCOXML), with rcomage is posible to generate this XML when extracting, and for rebuilding the rco using the XML as a layout

http://endlessparadigm.com/forum/showthread.php?tid=231 (outdated)

Header

Offset Length Name Example Notes
0x00 0x04 magic FRP In PS3 is "FRP" (big endian). In PSP is "PRF" (little endian)
0x04 0x04 version 00 00 01 30 named minFirmwareVer in rcomage, see Discussion page
0x08 0x04 unknown 00 00 00 00
0x0C 0x04 compress_header 00 00 00 00 *0x00 no compress
*0x10 zlib
*0x20 rlz ?
0x10 0x04 info_table_offset 00 00 00 A4 usually 0xA4
0x14 0x04 vsmx_table_offset
0x18 0x04 text_table_offset
0x1C 0x04 sound_table_offset
0x20 0x04 model_table_offset
0x24 0x04 image_table_offset
0x28 0x04 unknown FF FF FF FF Always seems to be 0xFFFFFF
0x2C 0x04 font_table_offset
0x30 0x04 page_table_offset
0x34 0x04 anim_table_offset
strings
Offset Length Name Example Notes
0x38 0x04 text_table_offset
0x3C 0x04 text_table_length
0x40 0x04 label_table_offset
0x44 0x04 label_table_length
0x48 0x04 native_table_offset
0x4C 0x04 native_table_length
pointers
Offset Length Name Example Notes
0x50 0x04 text_pointer_table_offset
0x54 0x04 text_pointer_table_length
0x58 0x04 image_pointer_table_offset
0x5C 0x04 image_pointer_table_length
0x60 0x04 model_pointer_table_offset
0x64 0x04 model_pointer_table_length
0x68 0x04 sound_pointer_table_offset
0x6C 0x04 sound_pointer_table_length
0x70 0x04 page_pointer_table_offset
0x74 0x04 page_pointer_table_length
0x78 0x04 anim_pointer_table_offset
0x7C 0x04 anim_pointer_table_length
files
Offset Length Name Example Notes
0x80 0x04 image_data_section_offset
0x84 0x04 image_data_section_length
0x88 0x04 sound_data_section_offset
0x8C 0x04 sound_data_section_length
0x90 0x04 model_data_section_offset
0x94 0x04 model_data_section_length
0x98 0x04 unknown Always seems to be 0xFFFFFF
0x9C 0x04 unknown Always seems to be 0xFFFFFF
0xA0 0x04 unknown Always seems to be 0xFFFFFF

Tables

Etc...