Editing CXML Containers
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 45: | Line 45: | ||
}; | }; | ||
struct | struct ElementBin | ||
{ | { | ||
int name; | int name; | ||
Line 55: | Line 55: | ||
int last_child; | int last_child; | ||
}; | }; | ||
struct AttributeBin | struct AttributeBin | ||
{ | { | ||
int name; | int name; | ||
int type; | int type; | ||
Line 186: | Line 169: | ||
===Element=== | ===Element=== | ||
{| class="wikitable | ===Attribute=== | ||
|+ | |||
! Offset !! Length !! | {| class="wikitable" | ||
|+ Attribute types structure | |||
! rowspan=2 | Offset !! rowspan=2 | Length !! rowspan=2 | Name !! colspan=8 | Attribute type | |||
|- | |- | ||
! Integer !! Float !! String !! Integer Array !! Float Array !! File !! ID with ref !! ID without ref | |||
|- | |- | ||
| | | 0x0 || 0x4 || Attribute name offset || colspan=8 {{cellcolors|lightgrey}} '''________________________________________________ xml tag string from the "strings table" ____________________________________________''' | ||
|} | |-___ | ||
| 0x4 || 0x4 || Attribute type || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 | |||
| | |||
| | |||
|- | |- | ||
| 0x8 || 0x4 || variable 1 || Integer value || Float value || String Offset || Integer Array Offset || Float Array Offset || File offset || Filename offset || Filename offset | |||
|- | |- | ||
| 0xC || 0x4 || variable 2 || unknown (usually 0) || unknown (usually 0) || String Length || Integer count || Float count || File size || unknown (usually 0) || unknown (usually 0) | |||
| | |||
| | |||
| | |||
|} | |} | ||
==Container Common Structure== | ==Container Common Structure== | ||
Line 270: | Line 213: | ||
*Notes | *Notes | ||
**The first 2 bytes of the compressed QRCF is the ZLIB header, | **The first 2 bytes of the compressed QRCF is the ZLIB header, in this example: 0x78DA | ||
**default/max level 9 | |||
==== QRCF ==== | ==== QRCF ==== | ||
Line 301: | Line 241: | ||
| Magic || 0x00 || 0x04 || {{cellcolors|#666666|#ffffff}} 51 52 43 46 || 'QRCF' | | Magic || 0x00 || 0x04 || {{cellcolors|#666666|#ffffff}} 51 52 43 46 || 'QRCF' | ||
|- | |- | ||
| Version || 0x04 || 0x04 || {{cellcolors|#888888|#ffffff}} 00 00 01 10 || | | Version || 0x04 || 0x04 || {{cellcolors|#888888|#ffffff}} 00 00 01 10 || | ||
|- | |- | ||
| Tree Table Offset || 0x08 || 0x04 || {{cellcolors|#dddd66}} 00 00 00 40 || | | Tree Table Offset || 0x08 || 0x04 || {{cellcolors|#dddd66}} 00 00 00 40 || | ||
Line 370: | Line 310: | ||
| 0x30 || 0x04 || 00 00 00 38 || First Entry | | 0x30 || 0x04 || 00 00 00 38 || First Entry | ||
|- | |- | ||
| 0x34 || 0x04 || | | 0x34 || 0x04 || xx xx xx xx || Last Entry | ||
|- | |- | ||
| 0x38 || 0x04 || 00 00 00 0F || String Pointer (Offset within '''String Table''', in this case it will be a Element <file>) | | 0x38 || 0x04 || 00 00 00 0F || String Pointer (Offset within '''String Table''', in this case it will be a Element <file>) | ||
Line 400: | Line 340: | ||
| 0x6C || 0x04 || 00 00 00 00 || Offset of filename within the ID Table | | 0x6C || 0x04 || 00 00 00 00 || Offset of filename within the ID Table | ||
|- | |- | ||
| 0x70 || 0x04 || 00 00 00 00 || | | 0x70 || 0x04 || 00 00 00 00 || on icontex here are additional 16 bytes | ||
|- | |||
| 0x74 || 0x04 || 00 00 00 0F || String Pointer | |||
|- | |||
| 0x78 || 0x04 || 00 00 00 02 || Attribute Counter | |||
|- | |||
| 0x7C || 0x04 || 00 00 00 1C || Parent Element | |||
|- | |||
| 0x80 || 0x04 || 00 00 00 38 || Previous Element | |||
|- | |||
| 0x84 || 0x04 || 00 00 00 B0 || Next Element | |||
|- | |- | ||
|} | |} | ||
On icontex.qrc there are additional 16 bytes added on offset 0x70 within the '''Tree Table | On icontex.qrc there are additional 16 bytes added on offset 0x70 within the '''Tree Table''' | ||
{| class="wikitable" | {| class="wikitable" | ||
! Offset !! Size !! Example !! Remark | ! Offset !! Size !! Example !! Remark | ||
|- | |||
| 0x70 || 0x04 || 00 00 00 00 || on icontex.qrc | |||
|- | |- | ||
| 0x74 || 0x04 || 00 00 00 1B || String Pointer (Offset within '''String Table''', in this case it will be a Attribute <size>) | | 0x74 || 0x04 || 00 00 00 1B || String Pointer (Offset within '''String Table''', in this case it will be a Attribute <size>) | ||
Line 414: | Line 366: | ||
| 0x7C || 0x04 || 00 01 55 D4 || on icontex.qrc (size of .dds uncompressed [Dec = 87508]) | | 0x7C || 0x04 || 00 01 55 D4 || on icontex.qrc (size of .dds uncompressed [Dec = 87508]) | ||
|- | |- | ||
| 0x80 || 0x04 || 00 00 00 00 || | | 0x80 || 0x04 || 00 00 00 00 || similar all qrc files | ||
|- | |||
| 0x84 || 0x04 || 00 00 00 0F || String Pointer | |||
|- | |||
| 0x88 || 0x04 || 00 00 00 02 || Attribute Count | |||
|- | |||
| 0x8C || 0x04 || 00 00 00 1C || Parent Element | |||
|- | |||
| 0x90 || 0x04 || 00 00 00 38 || Previous Element | |||
|- | |||
| 0x94 || 0x04 || 00 00 00 D0 || Next Element | |||
|- | |- | ||
|} | |} | ||
Line 425: | Line 387: | ||
*For QRCF_2 and P3T themes only is stored the "id" (the file "src" is missing so there is no way to read the original path or file extension from the container) | *For QRCF_2 and P3T themes only is stored the "id" (the file "src" is missing so there is no way to read the original path or file extension from the container) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<qrc> | <qrc> | ||
Line 1,118: | Line 1,080: | ||
*Example of the string table from frame_01.cxml | *Example of the string table from frame_01.cxml | ||
root.version.1.00.jacket.id.normal.base.position.rotation.scale.name.frame_01.filetable.num.file.src.frame_01_lo.gim.lod.frame_01_parallax_512.gtf.shadow_square_1.gtf.shadow_square_2.gtf.shadow_3.gtf.frame_01_mi.gim.frame_01_hi.gim.vptable.vp.vp_jacket_ezprim.vpo.optional.vp_jacket_normalmap.vpo.vp_jacket_ezshadow.vpo.fptable.fp.fp_jacket_ezprim_rgb.fpo.fp_jacket_normalmap_specL.fpo.fp_jacket_ezshadow.fpo.modeltable.model.color.uv.vertex.tangent.binormal.layertable.layer.priority.type.image-frame-static.order.duration.image-thumbnail-auto | root.version.1.00.jacket.id.normal.base.position.rotation.scale.name.frame_01.filetable.num.file.src.frame_01_lo.gim.lod.frame_01_parallax_512.gtf.shadow_square_1.gtf.shadow_square_2.gtf.shadow_3.gtf.frame_01_mi.gim.frame_01_hi.gim.vptable.vp.vp_jacket_ezprim.vpo.optional.vp_jacket_normalmap.vpo.vp_jacket_ezshadow.vpo.fptable.fp.fp_jacket_ezprim_rgb.fpo.fp_jacket_normalmap_specL.fpo.fp_jacket_ezshadow.fpo.modeltable.model.color.uv.vertex.tangent.binormal.layertable.layer.priority.type.image-frame-static.order.duration.image-thumbnail-auto | ||
*Notes: | *Notes: | ||
Line 1,140: | Line 1,099: | ||
In other words... the only difference between QRCF_1 and QRCF_2 is the added attribute '''size''' in every file entry that makes entries 16 bytes longer in QRCF_2... there is no need for an example of QRCF_2 because are almost the same | In other words... the only difference between QRCF_1 and QRCF_2 is the added attribute '''size''' in every file entry that makes entries 16 bytes longer in QRCF_2... there is no need for an example of QRCF_2 because are almost the same | ||
This .xml represents structure of rhm.qrc 1.00, can be used to build it, and can be generated by reading the "tree table" | |||
{{Boxcode|content=<syntaxhighlight lang="xml"> | |||
{{Boxcode| | |||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<qrc> | <qrc> | ||
<file-table> | <file-table> | ||
<file src=" | <file src="lib/rhm/Clear.fpo" id="lib/rhm/Clear.fpo"/> | ||
<file src=" | <file src="lib/rhm/Clear.vpo" id="lib/rhm/Clear.vpo"/> | ||
<file src=" | <file src="lib/rhm/Copy.fpo" id="lib/rhm/Copy.fpo"/> | ||
<file src=" | <file src="lib/rhm/default.fpo" id="lib/rhm/default.fpo"/> | ||
<file src=" | <file src="lib/rhm/default.vpo" id="lib/rhm/default.vpo"/> | ||
</file-table> | </file-table> | ||
</qrc> | </qrc> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
When the | When the qrc container is build all the info from he .xml is stored in the "tree table" (at offset 0x40) that is the first area after the CXML header, and the files itself are stored in a "file table" placed at bottom of the container (at offset 0x250) | ||
The | The "tree table" (colored in red tones in the example) starts with the elements: "qrc" and "file-table"... and after this, the element "file" is repeated 5 times (first file entry at 0x78)... all this 5 "file" belongs to "file-table" element | ||
{| class="wikitable" style="font-size:x-small;" | {| class="wikitable" style="font-size:x-small;" | ||
|+[[rhm.qrc]] (v1.00) | |+[[rhm.qrc]] (v1.00) | ||
! Offset !! Size !! Example !! Name !! Notes !! icontex.qrc (v2.00) !! theme.p3t | |||
|- | |- | ||
! | ! colspan="5" | CXML Header | ||
|- {{cellcolors|#666666|#ffffff}} | |- {{cellcolors|#666666|#ffffff}} | ||
| 0x00 || 0x04 || QRCF || Magic || | | 0x00 || 0x04 || QRCF || Magic || QRCF (unnofficially: QRCF_1) || QRCF (unnofficially: QRCF_2) || P3TF | ||
|- {{cellcolors|#666666|#ffffff}} | |- {{cellcolors|#666666|#ffffff}} | ||
| 0x04 || 0x04 || 00000110 || Version || | | 0x04 || 0x04 || 00000110 || Version || 110 || 110 || 110 | ||
|- bgcolor="#ff8888" | |- bgcolor="#ff8888" | ||
| 0x08 || 0x04 || 00000040 || | | 0x08 || 0x04 || 00000040 || Tree table absolute start offset || 40 || 40 || 40 | ||
|- bgcolor="#ff8888" | |- bgcolor="#ff8888" | ||
| 0x0C || 0x04 || 00000164 || | | 0x0C || 0x04 || 00000164 || Tree table size || 164 (without the padding at the end) || 1ECC || 19E8 | ||
|- bgcolor="#88ff88" | |- bgcolor="#88ff88" | ||
| 0x10 || 0x04 || 000001B0 || | | 0x10 || 0x04 || 000001B0 || Filename table absolute start offset || 1B0 || 1F10 || 1A30 | ||
|- bgcolor="#88ff88" | |- bgcolor="#88ff88" | ||
| 0x14 || 0x04 || 00000071 || | | 0x14 || 0x04 || 00000071 || Filename table size || 71 (without the padding at the end) || 326 || 599 | ||
|- bgcolor="#8888ff" | |- bgcolor="#8888ff" | ||
| 0x18 || 0x04 || 00000230 || | | 0x18 || 0x04 || 00000230 || Strings table absolute start offset || 230 || 2240 || 1FD0 | ||
|- bgcolor="#8888ff" | |- bgcolor="#8888ff" | ||
| 0x1C || 0x04 || 0000001B || | | 0x1C || 0x04 || 0000001B || Strings table size || 1B without the padding at the end || 20 || 1CE | ||
|- bgcolor="#ffeedd" | |||
| 0x20 || 0x04 || 00000250 || Integer array absolute start offset || ''Overlapped'' || 2260 (overlapped) || 21A0 (overlapped) | |||
|- bgcolor="#ffeedd" | |||
| 0x24 || 0x04 || 00000000 || Integer array size || ''Empty'' || 0 || 0 | |||
|- bgcolor="#ffeebb" | |- bgcolor="#ffeebb" | ||
| | | 0x28 || 0x04 || 00000250 || Float array absolute start offset || ''Overlapped'' || 2260 (overlapped) || 21A0 (overlapped) | ||
|- bgcolor="#ffeebb" | |- bgcolor="#ffeebb" | ||
| | | 0x2C || 0x04 || 00000000 || Float array size || ''Empty'' || 0 || 0 | ||
|- bgcolor="# | |- bgcolor="#ffee99" | ||
| | | 0x30 || 0x04 || 00000250 || File table absolute start offset || ''Overlaps the previous 2 tables'' || 2260 || 21A0 | ||
|- bgcolor="#ffee99" | |||
| 0x34 || 0x04 || 00000DD0 || File table size || ''Overlaps the previous 2 tables'' || AA7F0 || 149890 | |||
|- bgcolor="# | |- bgcolor="#ffee77" | ||
| | | 0x38 || 0x04 || 00000000 || Unknown area absolute start offset || ''Not used'' || 0 || 0 | ||
|- bgcolor="#ffee77" | |||
| 0x3C || 0x04 || 00000000 || Unknown area size || ''Empty'' || 0 || 0 | |||
|- bgcolor="# | |||
| 0x38 || 0x04 || 00000000 || Unknown area absolute offset || | |||
|- bgcolor="# | |||
| 0x3C || 0x04 || 00000000 || Unknown area size | |||
|- | |- | ||
! | ! colspan="5" | Tree Table | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x40 || 0x04 || 00000000 || element name relative offset || '''qrc''' | | 0x40 || 0x04 || 00000000 || xml element TAG name relative offset || 0 = '''qrc''' || 0 = '''qrc''' || 0 = '''theme''' | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x44 || 0x04 || 00000000 || number of attributes || '''no attributes''' | | 0x44 || 0x04 || 00000000 || xml element number of attributes || 0 = '''no attributes''' || 0 || 0 | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x48 || 0x04 || FFFFFFFF || parent element relative offset || '''parent doesnt exists''' | | 0x48 || 0x04 || FFFFFFFF || parent element relative start offset || FFFFFFFF = '''parent doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x4C || 0x04 || FFFFFFFF || previous brother element relative offset || '''previous brother doesnt exists''' | | 0x4C || 0x04 || FFFFFFFF || previous brother element relative start offset || FFFFFFFF = '''previous brother doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x50 || 0x04 || FFFFFFFF || next brother element relative offset || '''next brother doesnt exists''' | | 0x50 || 0x04 || FFFFFFFF || next brother element relative start offset || FFFFFFFF = '''next brother doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x54 || 0x04 || 0000001C || first | | 0x54 || 0x04 || 0000001C || first children element relative start offset || 0x40 + 0x1C = '''first children at 0x5C absolute''' || 0x40 + 0x1C = 5C absolute || 0x40 + 0x1C = 5C absolute | ||
|- {{cellcolors|#ff7777}} | |- {{cellcolors|#ff7777}} | ||
| 0x58 || 0x04 || 0000001C || last | | 0x58 || 0x04 || 0000001C || last children element relative start offset || 0x40 + 0x1C = '''last children at 0x5C absolute''' || 0x40 + 0x1C = 5C absolute || 0x40 + 0x19CC = 0x1A0C absolute | ||
| | |||
| | |||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x5C || 0x04 || 00000004 || element name relative offset || '''file-table''' | | 0x5C || 0x04 || 00000004 || xml element TAG name relative offset || 4 = '''file-table''' || 4 = '''file-table''' || 6 = '''icontable''' | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x60 || 0x04 || 00000000 || number of attributes || '''no attributes''' | | 0x60 || 0x04 || 00000000 || xml element number of attributes || 0 = '''no attributes''' || 0 || 0 | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x64 || 0x04 || 00000000 || parent element relative offset || 0x40 + 0x0 = 0x40 absolute = ''' | | 0x64 || 0x04 || 00000000 || parent element relative start offset || 0x40 + 0x0 = 0x40 absolute = parent is '''qrc''' || 0 = '''qrc''' || 0 = '''theme''' | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x68 || 0x04 || FFFFFFFF || previous brother element relative offset || '''previous brother doesnt exists''' | | 0x68 || 0x04 || FFFFFFFF || previous brother element relative start offset || FFFFFFFF = '''previous brother doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x6C || 0x04 || FFFFFFFF || next brother element relative offset || '''next brother doesnt exists''' | | 0x6C || 0x04 || FFFFFFFF || next brother element relative start offset || FFFFFFFF = '''next brother doesnt exists''' || FFFFFFFF || 141C (related with value at 0x58, allways same or smaller) | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x70 || 0x04 || 00000038 || first | | 0x70 || 0x04 || 00000038 || first children element relative start offset || 0x40 + 0x38 = '''first children at 0x78 absolute''' || 38 || 38 | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x74 || 0x04 || 00000128 || last | | 0x74 || 0x04 || 00000128 || last children element relative start offset || 0x40 + 0x128 = '''last children at 0x168 absolute''' || 1E80 || 13D0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | | | colspan="5" | 1st entry start || colspan="2" | 1st entry start | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x78 || 0x04 || 0000000F || element name relative offset || '''file''' | | 0x78 || 0x04 || 0000000F || xml element TAG name relative offset || F = '''file''' || F = '''file''' || 10 = '''icon''' | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x7C || 0x04 || 00000002 || number of attributes || 2 attributes = '''src''' and '''id''' | | 0x7C || 0x04 || 00000002 || xml element number of attributes || 2 attributes = '''src''' and '''id''' || 3 attributes = '''src''', '''id''', and '''size''' || 3 attributes = '''src''', '''id''', and '''size''' | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x80 || 0x04 || 0000001C || parent element relative offset || 0x40 + 0x1C = 0x5C absolute = ''' | | 0x80 || 0x04 || 0000001C || parent element relative start offset || 0x40 + 0x1C = 0x5C absolute = parent is '''file-table''' || 1C || 1C | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x84 || 0x04 || FFFFFFFF || previous brother element relative offset || '''previous brother doesnt exists''' | | 0x84 || 0x04 || FFFFFFFF || previous brother element relative start offset || FFFFFFFF = '''previous brother doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x88 || 0x04 || 00000074 || next brother element relative offset || 0x40 + 0x74 = '''next brother at 0xB4 | | 0x88 || 0x04 || 00000074 || next brother element relative start offset || 0x40 + 0x74 = '''next brother at 0xB4''' || 84 || 84 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x8C || 0x04 || FFFFFFFF || first | | 0x8C || 0x04 || FFFFFFFF || first children element relative start offset || FFFFFFFF = '''first children doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x90 || 0x04 || FFFFFFFF || last | | 0x90 || 0x04 || FFFFFFFF || last children element relative start offset || FFFFFFFF = '''last children doesnt exists''' || FFFFFFFF || FFFFFFFF | ||
|- {{cellcolors|#ffaaaa}} | |- {{cellcolors|#ffaaaa}} | ||
| 0x94 || 0x04 || 00000014 || attribute name relative offset || '''src''' | | 0x94 || 0x04 || 00000014 || xml attribute TAG name relative offset || 14 = '''src''' || 14 = '''src''' || 15 = '''src''' | ||
|- {{cellcolors|#ffaaaa}} | |- {{cellcolors|#ffaaaa}} | ||
| 0x98 || 0x04 || 00000006 || | | 0x98 || 0x04 || 00000006 || || 6 || 6 || 6 | ||
|- {{cellcolors|#ffaaaa}} | |- {{cellcolors|#ffaaaa}} | ||
| 0x9C || 0x04 || 00000000 || | | 0x9C || 0x04 || 00000000 || 1st file relative start offset || 0x250 + 0x0 = '''file starts at 0x250''' absolute || 0 --1st file start-- || 0 --1st file start-- | ||
|- {{cellcolors|#ffaaaa}} | |- {{cellcolors|#ffaaaa}} | ||
| 0xA0 || 0x04 || 00000150 || | | 0xA0 || 0x04 || 00000150 || 1st file size || '''file size is 150''' || 15FF --1st file size-- || 29BB --1st file size-- | ||
|- {{cellcolors|#ffbbbb}} | |- {{cellcolors|#ffbbbb}} | ||
| 0xA4 || 0x04 || 00000018 || attribute name relative offset || '''id''' | | 0xA4 || 0x04 || 00000018 || xml attribute TAG name relative offset || 18 = '''id''' || 18 = '''id''' || 19 = '''id''' | ||
|- {{cellcolors|#ffbbbb}} | |- {{cellcolors|#ffbbbb}} | ||
| 0xA8 || 0x04 || 00000007 || | | 0xA8 || 0x04 || 00000007 || || 7 || 7 || 7 | ||
|- {{cellcolors|#ffbbbb}} | |- {{cellcolors|#ffbbbb}} | ||
| 0xAC || 0x04 || 00000000 || | | 0xAC || 0x04 || 00000000 || 1st filename relative start offset || 0x1B0 + 0x0 = '''filename starts at 0x1B0''' absolute || 0 --1st filename start-- || 0 --1st filename start-- | ||
|- {{cellcolors|#ffbbbb}} | |- {{cellcolors|#ffbbbb}} | ||
| 0xB0 || 0x04 || 00000000 || | | 0xB0 || 0x04 || 00000000 || 1st filename size related ? || '''filename size is... 0''' wtf ? || 0 || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | | | colspan="5" | 2nd entry start | ||
|- | |- | ||
| 0xB4 || 0x04 || 0000000F || element name relative offset || ''' | | 0xB4 || 0x04 || 0000000F || xml element TAG name relative offset || || {{cellcolors|#ffcccc}} 1B = '''size''' || {{cellcolors|#ffcccc}} 1C = '''size''' | ||
| | |- | ||
| 0xB8 || 0x04 || 00000002 || number of attributes || 2 | | 0xB8 || 0x04 || 00000002 || xml element number of attributes || 2 || {{cellcolors|#ffcccc}} 1 || {{cellcolors|#ffcccc}} 1 | ||
| | |- | ||
| 0xBC || 0x04 || 0000001C || parent element relative offset || | | 0xBC || 0x04 || 0000001C || parent element relative start offset || || {{cellcolors|#ffcccc}} 55D5 --1st file size uncompressed ?-- || {{cellcolors|#ffcccc}} 10080 --1st file size uncompressed ?-- | ||
| | |- | ||
| 0xC0 || 0x04 || 00000038 || previous brother element relative offset || 0x40 + 0x38 = | | 0xC0 || 0x04 || 00000038 || previous brother element relative start offset || 0x40 + 0x38 = 0x78 || {{cellcolors|#ffcccc}} 0 || {{cellcolors|#ffcccc}} 0 | ||
| | |- | ||
| 0xC4 || 0x04 || 000000B0 || next brother element relative offset || 0x40 + 0xB0 = | | 0xC4 || 0x04 || 000000B0 || next brother element relative start offset || 0x40 + 0xB0 = 0xF0 || {{cellcolors|#cccccc}} F --2nd entry start-- || {{cellcolors|#cccccc}} 10 --2nd entry start-- | ||
|- {{cellcolors|# | |- | ||
| 0xC8 || 0x04 || FFFFFFFF || first | | 0xC8 || 0x04 || FFFFFFFF || first children element relative start offset || || 3 = compressed ? || 3 = compressed ? | ||
|- | |- | ||
| 0xCC || 0x04 || FFFFFFFF || last | | 0xCC || 0x04 || FFFFFFFF || last children element relative start offset || || 1C || 1C | ||
|- | |- | ||
| 0xD0 || 0x04 || 00000014 || attribute name relative offset || | | 0xD0 || 0x04 || 00000014 || xml attribute TAG name relative offset || || 38 --previous entry-- || 38 --previous entry-- | ||
|- | |- | ||
| 0xD4 || 0x04 || 00000006 || | | 0xD4 || 0x04 || 00000006 || || || D0 --next entry-- || D0 --next entry-- | ||
|- | |- | ||
| 0xD8 || 0x04 || 00000150 || | | 0xD8 || 0x04 || 00000150 || 2th file relative start offset || 0x250 + 0x150 = 0x3A0 || FFFFFFFF || FFFFFFFF | ||
|- | |- | ||
| 0xDC || 0X04 || 000000E0 || | | 0xDC || 0X04 || 000000E0 || 2th file size || || FFFFFFFF || FFFFFFFF | ||
|- | |- | ||
| 0xE0 || 0x04 || 00000018 || attribute name relative offset || | | 0xE0 || 0x04 || 00000018 || xml attribute TAG name relative offset || || 14 || 15 | ||
|- | |- | ||
| 0xE4 || 0x04 || 00000007 || | | 0xE4 || 0x04 || 00000007 || || || 6 || 6 | ||
|- | |- | ||
| 0xE8 || 0x04 || 00000016 || | | 0xE8 || 0x04 || 00000016 || 2th filename relative start offset || 0x1B0 + 0x16 = 0x1C6 || 1600 ---2nd file start--- || 29C0 ---2nd file start--- | ||
|- | |- | ||
| 0xEC || 0x04 || 00000000 || | | 0xEC || 0x04 || 00000000 || || || 1B51 ---2nd file size--- || 2500 ---2nd file size--- | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | | | colspan="5" | 3rd entry start | ||
|- | |- | ||
| 0xF0 || 0x04 || 0000000F || element name relative offset || | | 0xF0 || 0x04 || 0000000F || xml element TAG name relative offset || || 18 || 19 | ||
|- | |- | ||
| 0xF4 || 0x04 || 00000002 || number of attributes || 2 | | 0xF4 || 0x04 || 00000002 || xml element number of attributes || 2 || 7 || 7 | ||
|- | |- | ||
| 0xF8 || 0x04 || 0000001C || parent element relative offset || | | 0xF8 || 0x04 || 0000001C || parent element relative start offset || || 7 ---2nd filename start--- || E ---2nd filename start--- | ||
|- | |- | ||
| 0xFC || 0x04 || 00000074 || previous brother element relative offset || 0x40 + 0x74 = | | 0xFC || 0x04 || 00000074 || previous brother element relative start offset || 0x40 + 0x74 = 0xB4 || 0 || 0 | ||
|- | |- | ||
| 0x100 || 0x04 || 000000EC || next brother element relative offset || 0x40 + 0xEC = | | 0x100 || 0x04 || 000000EC || next brother element relative start offset || 0x40 + 0xEC = 0x12C || 1B || 1C | ||
|- | |- | ||
| 0x104 || 0x04 || FFFFFFFF || first | | 0x104 || 0x04 || FFFFFFFF || first children element relative start offset || || 1 || 1 | ||
|- | |- | ||
| 0x108 || 0x04 || FFFFFFFF || last | | 0x108 || 0x04 || FFFFFFFF || last children element relative start offset || || 155D4 --2nd file size uncompressed-- || 10080 --2nd file size uncompressed-- | ||
|- | |- | ||
| 0x10C || 0x04 || 00000014 || attribute name relative offset || | | 0x10C || 0x04 || 00000014 || xml attribute TAG name relative offset || || 0 || 0 | ||
|- | |- | ||
| 0x110 || 0x04 || 00000006 || | | 0x110 || 0x04 || 00000006 || || || {{cellcolors|#cccccc}} F --3rd entry start-- || {{cellcolors|#cccccc}} 10 --3ed entry start-- | ||
|- {{cellcolors|# | |- | ||
| 0x114 || 0x04 || 00000230 || | | 0x114 || 0x04 || 00000230 || 3th file relative start offset || 0x250 + 0x230 = 0x480 || 3 = compressed ? || 3 = compressed ? | ||
|- | |- | ||
| 0x118 || 0x04 || 00000120 || | | 0x118 || 0x04 || 00000120 || 3th file size || || 1C || 1C | ||
|- | |- | ||
| 0x11C || 0x04 || 00000018 || attribute name relative offset || | | 0x11C || 0x04 || 00000018 || xml attribute TAG name relative offset || | ||
|- | |- | ||
| 0x120 || 0x04 || 00000007 || | | 0x120 || 0x04 || 00000007 || || | ||
|- | |- | ||
| 0x124 || 0x04 || 0000002C || | | 0x124 || 0x04 || 0000002C || 3th filename relative start offset || 0x1B0 + 0x2C = 0x1DC | ||
|- | |- | ||
| 0x128 || 0x04 || 00000000 || | | 0x128 || 0x04 || 00000000 || || | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | | | colspan="5" | 4th entry start | ||
|- | |- | ||
| 0x12C || 0x04 || 0000000F || element name relative offset || | | 0x12C || 0x04 || 0000000F || xml element TAG name relative offset || | ||
|- | |- | ||
| 0x130 || 0x04 || 00000002 || number of attributes || 2 | | 0x130 || 0x04 || 00000002 || xml element number of attributes || 2 | ||
|- | |- | ||
| 0x134 || 0x04 || 0000001C || parent element relative offset || | | 0x134 || 0x04 || 0000001C || parent element relative start offset || | ||
|- | |- | ||
| 0x138 || 0x04 || 000000B0 || previous brother element relative offset || 0x40 + 0xB0 = | | 0x138 || 0x04 || 000000B0 || previous brother element relative start offset || 0x40 + 0xB0 = 0xF0 | ||
|- | |- | ||
| 0x13C || 0x04 || 00000128 || next brother element relative offset || 0x40 + 0x128 = | | 0x13C || 0x04 || 00000128 || next brother element relative start offset || 0x40 + 0x128 = 0x168 | ||
|- | |- | ||
| 0x140 || 0x04 || FFFFFFFF || first | | 0x140 || 0x04 || FFFFFFFF || first children element relative start offset || | ||
|- | |- | ||
| 0x144 || 0x04 || FFFFFFFF || last | | 0x144 || 0x04 || FFFFFFFF || last children element relative start offset || | ||
|- | |- | ||
| 0x148 || 0x04 || 00000014 || attribute name relative offset || | | 0x148 || 0x04 || 00000014 || xml attribute TAG name relative offset || | ||
|- | |- | ||
| 0x14C || 0x04 || 00000006 || | | 0x14C || 0x04 || 00000006 || || | ||
|- | |- | ||
| 0x150 || 0x04 || 00000350 || | | 0x150 || 0x04 || 00000350 || 4th file relative start offset || 0x250 + 0x350 = 0x5A0 | ||
|- | |- | ||
| 0x154 || 0x04 || 000001F0 || | | 0x154 || 0x04 || 000001F0 || 4th file size || | ||
|- | |- | ||
| 0x158 || 0x04 || 00000018 || attribute name relative offset || | | 0x158 || 0x04 || 00000018 || xml attribute TAG name relative offset || | ||
|- | |- | ||
| 0x15C || 0x04 || 00000007 || | | 0x15C || 0x04 || 00000007 || || | ||
|- | |- | ||
| 0x160 || 0x04 || 00000041 || | | 0x160 || 0x04 || 00000041 || 4th filename relative start offset || 0x1B0 + 0x41 = 0x1F1 | ||
|- | |- | ||
| 0x164 || 0x04 || 00000000 || | | 0x164 || 0x04 || 00000000 || || | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | | | colspan="5" | 5th entry start | ||
|- | |- | ||
| 0x168 || 0x04 || 0000000F || element name relative offset || | | 0x168 || 0x04 || 0000000F || xml element TAG name relative offset || | ||
|- | |- | ||
| 0x16C || 0x04 || 00000002 || number of attributes || 2 | | 0x16C || 0x04 || 00000002 || xml element number of attributes || 2 | ||
|- | |- | ||
| 0x170 || 0x04 || 0000001C || parent element relative offset || | | 0x170 || 0x04 || 0000001C || parent element relative start offset || | ||
|- | |- | ||
| 0x174 || 0x04 || 000000EC || previous brother element relative offset || 0x40 + 0xEC = | | 0x174 || 0x04 || 000000EC || previous brother element relative start offset || 0x40 + 0xEC = 0x12C | ||
|- | |- | ||
| 0x178 || 0x04 || FFFFFFFF || next brother element relative offset || '''next | | 0x178 || 0x04 || FFFFFFFF || next brother element relative start offset || FFFFFFFF = '''next entry doesnt exists''' | ||
|- | |- | ||
| 0x17C || 0x04 || FFFFFFFF || first children element relative start offset || | |||
|- | |||
| | | 0x180 || 0x04 || FFFFFFFF || last children element relative start offset || | ||
|- | |- | ||
| | | 0x184 || 0x04 || 00000014 || xml attribute TAG name relative offset || | ||
|- | |- | ||
| | | 0x188 || 0x04 || 00000006 || || | ||
|- | |- | ||
| | | 0x18C || 0x04 || 00000540 || 5th file relative start offset || 0x250 + 0x540 = 0x790 | ||
|- | |- | ||
| | | 0x190 || 0x04 || 00000890 || 5th file size || | ||
|- | |- | ||
| | | 0x194 || 0x04 || 00000018 || xml attribute TAG name relative offset || | ||
|- | |- | ||
| | | 0x198 || 0x04 || 00000007 || || | ||
|- | |- | ||
| | | 0x19C || 0x04 || 00000059 || 5th filename relative start offset || 0x1B0 + 0x59 = 0x209 | ||
|- | |- | ||
| | | 0x1A0 || 0x04 || 00000000 || || | ||
|- | |||
| | |||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
|- | | 0x1A4 || 0x0C || 00000000... || ''padding'' to align to a multiply of 0x10 || | ||
| | |- | ||
! colspan="5" | Filename Table | |||
|- | |||
| 0x1B0 || 0x04 || 00000038 || 1st data, start offset (relative to data table start offset) || 0x40 + 0x38 = 0x78 | |||
|- | |||
| 0x1B4 || 0x12 || lib/rhm/Clear.fpo || 1st file name || included 1 NULL byte at the end | |||
|- | |||
| 0x1C6 || 0x04 || 00000074 || 2nd data, start offset (relative to data table start offset) || 0x40 + 0x74 = 0xB4 | |||
|- | |||
| 0x1CA || 0x12 || lib/rhm/Clear.vpo || 2nd file name || included 1 NULL byte at the end | |||
|- | |||
| 0x1DC || 0x04 || 000000B0 || 3rd data, start offset (relative to data table start offset) || 0x40 + 0xB0 = 0xF0 | |||
|- | |||
| 0x1E0 || 0x11 || lib/rhm/Copy.fpo || 3rd file name || included 1 NULL byte at the end | |||
|- | |||
| 0x1F1 || 0x04 || 000000EC || 4th data, start offset (relative to data table start offset) || 0x40 + 0xEC = 0x12C | |||
|- | |||
| 0x1F5 || 0x14 || lib/rhm/default.fpo || 4th file name || included 1 NULL byte at the end | |||
|- | |- | ||
| 0x209 || 0x04 || 00000128 || 5th data, start offset (relative to data table start offset) || 0x40 + 0x128 = 0x168 | |||
| | |- | ||
| | | 0x20D || 0x14 || lib/rhm/default.vpo || 5th file name || included 1 NULL byte at the end | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| | | 0x221 || 0xF || 00000000... || ''padding'' to align the filename table to a multiply of 0x10 || | ||
| | |- | ||
|- | ! colspan="5" | Strings table | ||
|- | |||
| | | 0x230 || 0x1B || qrc file-table file src id || Container identifyer (first tag) + other tags from MAKE.XML || <syntaxhighlight lang="xml"> <qrc> <file-table> <file src= id=/></syntaxhighlight> || <syntaxhighlight lang="xml"> <qrc> <file-table> <file src= id= size=/></syntaxhighlight> || <syntaxhighlight lang="xml"> <theme> <icontable> <icon src= id= size=/></syntaxhighlight> | ||
|- bgcolor="# | |- bgcolor="#cccccc" | ||
| 0x24B || 0x5 || 00000000... || ''padding'' to align the filename table to a multiply of 0x10 || | |||
| | |- | ||
! colspan="5" | File Table | |||
|- | |- | ||
| 0x250 || 0x150 || 00001B5C... || 1st file || | | 0x250 || 0x150 || 00001B5C... || 1st file || | ||
|- | |- | ||
| 0x3A0 || 0x1E0 || 00001B5B... || 2nd file || | | 0x3A0 || 0x1E0 || 00001B5B... || 2nd file || | ||
|- | |- | ||
| 0x480 || 0x120 || 00001B5C... || 3rd file || | | 0x480 || 0x120 || 00001B5C... || 3rd file || | ||
|- | |- | ||
| 0x5A0 || 0x1F0 || 00001B5C... || 4th file || | | 0x5A0 || 0x1F0 || 00001B5C... || 4th file || | ||
|- | |- | ||
| 0x790 || 0x890 || 00001B5B... || 5th file || | | 0x790 || 0x890 || 00001B5B... || 5th file || | ||
|- | |- | ||
|} | |} | ||
'''rhm.qrc (from firmware 1.00)''' | '''rhm.qrc (from firmware 1.00)''' | ||
< | <div style="height:450px; overflow:auto"> | ||
Offset(h) 00 04 08 0C | Offset(h) 00 04 08 0C | ||
Line 1,714: | Line 1,654: | ||
00001000 401F9C6C 01D0100D 8086C0C3 60409F80 @.œl.Ð..€†ÀÃ`@Ÿ€ | 00001000 401F9C6C 01D0100D 8086C0C3 60409F80 @.œl.Ð..€†ÀÃ`@Ÿ€ | ||
00001010 401F9C6C 01D0000D 8086C0C3 60411F81 @.œl.Ð..€†ÀÃ`A.. | 00001010 401F9C6C 01D0000D 8086C0C3 60411F81 @.œl.Ð..€†ÀÃ`A.. | ||
</ | </div> | ||
==P3T== | ==P3T== | ||
====P3TF==== | ====P3TF==== | ||
See: http://www.psdevwiki.com/ps3/Themes_%28.p3t%29#Theme_Name_.28.XML.29 for an example of an XML before compilation, and see: http://www.psdevwiki.com/ps3/Talk:Themes_%28.p3t%29#p3t_format.2C_p3tcompiler.2C_and_p3textractor_notes for a list of tags added by the compiler | |||
==RAF== | ==RAF== | ||
Line 1,790: | Line 1,725: | ||
| 0x60 || 0x04 || 00000002 || xml attribute TAG type || 2 | | 0x60 || 0x04 || 00000002 || xml attribute TAG type || 2 | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x64 || 0x04 || 3F800000 || float || 3F800000 | | 0x64 || 0x04 || 3F800000 || float ! || 3F800000 | ||
|- {{cellcolors|#ff8888}} | |- {{cellcolors|#ff8888}} | ||
| 0x68 || 0x04 || 00000000 || | | 0x68 || 0x04 || 00000000 || || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | element start "scene" (is the 1st children of "raf" element) | | colspan="5" | element start "scene" (is the 1st children of "raf" element) | ||
Line 1,818: | Line 1,753: | ||
| 0x90 || 0x04 || 00000001 || integer || 1 | | 0x90 || 0x04 || 00000001 || integer || 1 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x94 || 0x04 || 00000000 || | | 0x94 || 0x04 || 00000000 || || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "light_num" (is an attribute of "scene" element) | | colspan="5" | attribute start "light_num" (is an attribute of "scene" element) | ||
Line 1,828: | Line 1,763: | ||
| 0xA0 || 0x04 || 00000002 || integer || 2 | | 0xA0 || 0x04 || 00000002 || integer || 2 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xA4 || 0x04 || 00000000 || | | 0xA4 || 0x04 || 00000000 || || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "script_num" (is an attribute of "scene" element) | | colspan="5" | attribute start "script_num" (is an attribute of "scene" element) | ||
Line 1,838: | Line 1,773: | ||
| 0xB0 || 0x04 || 00000001 || integer || 1 | | 0xB0 || 0x04 || 00000001 || integer || 1 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xB4 || 0x04 || 00000000 || | | 0xB4 || 0x04 || 00000000 || || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "actor_num" (is an attribute of "scene" element) | | colspan="5" | attribute start "actor_num" (is an attribute of "scene" element) | ||
Line 1,848: | Line 1,783: | ||
| 0xC0 || 0x04 || 00000006 || integer || 6 | | 0xC0 || 0x04 || 00000006 || integer || 6 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xC4 || 0x04 || 00000000 || | | 0xC4 || 0x04 || 00000000 || || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | element start "actor" (is the children of "scene" element) | | colspan="5" | element start "actor" (is the children of "scene" element) | ||
Line 1,872: | Line 1,807: | ||
| 0xE8 || 0x04 || 00000005 || xml attribute TAG type || 5 | | 0xE8 || 0x04 || 00000005 || xml attribute TAG type || 5 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xEC || 0x04 || 00000000 || | | 0xEC || 0x04 || 00000000 || || 0 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xF0 || 0x04 || 00000004 || | | 0xF0 || 0x04 || 00000004 || || 4 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "scale" (is an attribute of "actor" element) | | colspan="5" | attribute start "scale" (is an attribute of "actor" element) | ||
Line 1,882: | Line 1,817: | ||
| 0xF8 || 0x04 || 00000005 || xml attribute TAG type || 5 | | 0xF8 || 0x04 || 00000005 || xml attribute TAG type || 5 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0xFC || 0x04 || 00000004 || | | 0xFC || 0x04 || 00000004 || || 4 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x100 || 0x04 || 00000003 || | | 0x100 || 0x04 || 00000003 || || 3 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "uv_offset" (is an attribute of "actor" element) | | colspan="5" | attribute start "uv_offset" (is an attribute of "actor" element) | ||
Line 1,892: | Line 1,827: | ||
| 0x108 || 0x04 || 00000005 || xml attribute TAG type || 5 | | 0x108 || 0x04 || 00000005 || xml attribute TAG type || 5 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x10C || 0x04 || 00000007 || | | 0x10C || 0x04 || 00000007 || || 7 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x110 || 0x04 || 00000002 || | | 0x110 || 0x04 || 00000002 || || 2 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="5" | attribute start "color" (is an attribute of "actor" element) | | colspan="5" | attribute start "color" (is an attribute of "actor" element) | ||
Line 1,902: | Line 1,837: | ||
| 0x118 || 0x04 || 00000005 || xml attribute TAG type || 5 | | 0x118 || 0x04 || 00000005 || xml attribute TAG type || 5 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x11C || 0x04 || 00000000 || | | 0x11C || 0x04 || 00000000 || || 0 | ||
|- {{cellcolors|#ff9999}} | |- {{cellcolors|#ff9999}} | ||
| 0x120 || 0x04 || 00000004 || | | 0x120 || 0x04 || 00000004 || || 4 | ||
|- | |- | ||
| | |} | ||
=Tools= | =Tools= | ||
. | |||
.. | |||
... | |||
{{File Formats}} | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> | <noinclude>[[Category:Main]]</noinclude> |