Editing Qt Resource Container (QRC)
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 1: | Line 1: | ||
[[Category:Software]] | |||
location: /dev_flash/vsh/resource/qgl | |||
== General format == | |||
QGL ('''Q'''t '''G'''raphics '''L'''ibrary) based in [http://en.wikipedia.org/wiki/Qt_%28framework%29 Qt framework] and [http://en.wikipedia.org/wiki/OpenGL OpenGL] | |||
=== QRCC === | |||
QRCC ('''Q'''t '''R'''esources '''C'''ontainer '''C'''ompressed) | |||
QRC file ZLIB Compressed level 9. | |||
== | *Example from 3.55 rhm.qrc: | ||
'''Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F''' | |||
'''00000000''' <span style="background:#ff6666;">51 52 43 43</span> <span style="background:#6666ff;">00 00 28 00</span> QRCC..z` | |||
=== | {| class="wikitable sortable" | ||
|- | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Name''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Offset''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Size''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Example''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Remark''' | |||
|- | |||
| <span style="background:#ff6666;">Magic header || 0x00 || 0x04 || 51 52 43 43 || 'QRCC' | |||
|- | |||
| <span style="background:#6666ff;">size of ZLIB unpacked (QRCF) file || 0x04 || 0x04 || 00 00 28 00 | |||
|} | |||
=== | === QRCF === | ||
QRCF ('''Q'''t '''R'''esources '''C'''ontainer '''F'''?) | |||
QRC "container" with an structure similar than themes .p3t | |||
=== | ====Main Header==== | ||
* | *Example from fw 3.55 rhm.qrc: | ||
'''Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F''' | |||
'''00000000''' <span style="background:#ff6666;">51 52 43 46 00 00 01 10 00 00 00 40 00 00 02 CC</span> QRCF.......@..%| | |||
'''00000010''' <span style="background:#66ff66;">00 00 03 10 00 00 01 2B</span> <span style="background:#ffff66;">00 00 04 40 00 00 00 1B</span> ..%À......9Ð.... | |||
'''00000020''' <span style="background:#ffff66;">00 00 04 60</span> 00 00 00 00 <span style="background:#ffff66;">00 00 04 60</span> 00 00 00 00 ..9ð......9ð.... | |||
'''00000030''' <span style="background:#ffff66;">00 00 04 60 00 00 23 A0</span> 00 00 00 00 00 00 00 00..9ð..@p........ | |||
=== | {| class="wikitable sortable" | ||
|- | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Name''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Offset''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Size''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Example''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Remark''' | |||
|- | |||
| <span style="background:#ff6666;">Magic || 0x00 || 0x04 || 51 52 43 46 || 'QRCF' | |||
|- | |||
| <span style="background:#ff6666;">Version || 0x04 || 0x04 || 00 00 01 10 || | |||
|- | |||
| <span style="background:#ff6666;">Data table start offset || 0x08 || 0x04 || 00 00 00 40 || | |||
|- | |||
| <span style="background:#ff6666;">Data table size || 0x0C || 0x04 || 00 00 02 CC || | |||
|- | |||
| <span style="background:#66ff66;">Filename table start offset || 0x10 || 0x04 || 00 00 03 10 || | |||
|- | |||
| <span style="background:#66ff66;">Filename table size || 0x14 || 0x04 || 00 00 01 2B || without the padding at the end | |||
|- | |||
| <span style="background:#ffff66;">File table header start offset || 0x18 || 0x04 || 00 00 04 40 || | |||
|- | |||
| <span style="background:#ffff66;">File table header size || 0x1C || 0x04 || 00 00 00 1B || without the padding at the end | |||
|- | |||
| <span style="background:#ffff66;">File table start offset || 0x20 || 0x04 || 00 00 04 60 || | |||
|- | |||
| ''Not used'' || 0x24 || 0x04 || 00 00 00 00 || | |||
|- | |||
| <span style="background:#ffff66;">File table start offset || 0x28 || 0x04 || 00 00 04 60 || | |||
|- | |||
| ''Not used'' || 0x2C || 0x04 || 00 00 00 00 || | |||
|- | |||
| <span style="background:#ffff66;">File table start offset || 0x30 || 0x04 || 00 00 04 60 || | |||
|- | |||
| <span style="background:#ffff66;">File table size || 0x34 || 0x04 || 00 00 23 A0 || | |||
|- | |||
| ''Not used'' || 0x38 || 0x04 || 00 00 00 00 || | |||
|- | |||
| ''Not used'' || 0x3C || 0x04 || 00 00 00 00 || | |||
|- | |||
|} | |||
== | ====Data Table==== | ||
Default entry size is 60 bytes (0x3C) but the first and last entries has a different size | |||
Offset (without the 0x40 header in all qrc files) | |||
http://666kb.com/i/cib5c7q4y7rpcx9x1.gif | |||
{| class="wikitable" | |||
|- | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Offset''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Size''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Example''' | |||
| style="background-color:#515243; color:#FFFFFF;" |'''Remark''' | |||
|- | |||
| 0x00 || 0x08 || 00 00 00 00 00 00 00 00 || similar all qrc files | |||
|- | |||
| 0x08 || 0x08 || FF FF FF FF FF FF FF FF || similar all qrc files | |||
|- | |||
| 0x10 || 0x04 || FF FF FF FF || similar all qrc files | |||
|- | |||
| 0x14 || 0x04 || 00 00 00 1C || similar all qrc files | |||
|- | |||
| 0x18 || 0x04 || 00 00 00 1C || similar all qrc files | |||
|- | |||
| 0x1C || 0x04 || 00 00 00 04 || similar all qrc files | |||
|- | |||
| 0x20 || 0x08 || 00 00 00 00 00 00 00 00 || similar all qrc files | |||
|- | |||
| 0x28 || 0x08 || FF FF FF FF FF FF FF FF || similar all qrc files | |||
|- | |||
| 0x30 || 0x04 || 00 00 00 38 || similar all qrc files: first entrance? | |||
|- | |||
| 0x34 || 0x04 || 00 00 02 90 || size body data table | |||
|- | |||
| 0x38 || 0x04 || 00 00 00 0F || similar all qrc files | |||
|- | |||
| 0x3F || 0x04 || 00 00 00 02 || 00 00 00 03 on icontex.qrc | |||
|- | |||
| 0x40 || 0x04 || 00 00 00 1C || similar all qrc files | |||
|- | |||
| 0x44 || 0x04 || FF FF FF FF || similar all qrc files | |||
|- | |||
| 0x48 || 0x04 || 00 00 00 74 || 00 00 00 84 on icontex.qrc: : second entrance? | |||
|- | |||
| 0x4C || 0x08 || FF FF FF FF FF FF FF FF || similar all qrc files | |||
|- | |||
| 0x54 || 0x04 || 00 00 00 14 || similar all qrc files | |||
|- | |||
| 0x58 || 0x04 || 00 00 00 06 || similar all qrc files | |||
|- | |||
| 0x5C || 0x04 || 00 00 00 00 || similar all qrc files | |||
|- | |||
| 0x5C || 0x04 || 00 00 00 00 || similar all qrc files | |||
|- | |||
| 0x60 || 0x04 || 00 00 01 50 || size of first file without padding | |||
|- | |||
| 0x64 || 0x04 || 00 00 00 18 || similar all qrc files | |||
|- | |||
| 0x68 || 0x04 || 00 00 00 07 || similar all qrc files | |||
|- | |||
| 0x6C || 0x08 || 00 00 00 00 00 00 00 00 || similar all qrc files | |||
|- | |||
| 0x74 || 0x04 || 00 00 00 0F || 00 00 00 1B on icontex.qrc | |||
|- | |||
|} | |||
== | ====Filename Table==== | ||
Each entry is composed by: | |||
= | {| class="wikitable" | ||
|- | |||
! Offset !! Length !! Example !! Name !! Notes | |||
|- | |||
| 0x0 || 0x4 || 00000038 || '''Data Table entry offset''' || Same value than in the '''Data Table''' | |||
|- | |||
| 0x4 || ''variable'' || lib/rhm/Clear.fpo || '''File name''' || | |||
|- | |||
| ''variable'' || 0x1 || 00 || '''NULL byte''' || | |||
|} | |||
*The end of the table has a padding to align to 0x10 bytes | |||
====File Table==== | |||
=== | The table starts with 0x20 bytes, are always present in all the .qrc files | ||
'''Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F''' | |||
'''00000440''' <span style="background:#ffff66;">71 72 63 00 66 69 6C 65 2D 74 61 62 6C 65 00 66</span> qrc.file-table.f | |||
'''00000450''' <span style="background:#ffff66;">69 6C 65 00 73 72 63 00 69 64 00</span> <span style="background:#ff6666;">00 00 00 00 00</span> ile.src.id...... | |||
*Marked in red: padding to align to 0x10 bytes | |||
After this, the files are concatenated in the same order than in the '''Filename Table''' | |||
=== | == Mods == | ||
=== [[canyon.qrc|canyon.qrc]] === | |||
=== [[earth.qrc|earth.qrc]] === | |||
=== [[icons.qrc|icons.qrc]] === | |||
=== [[icontex.qrc|icontex.qrc]] === | |||
=== [[lines.qrc|lines.qrc]] === | |||
=== [[raf.qrc|raf.qrc]] === | |||
=== [[rhm.qrc|rhm.qrc]] === | |||
=== [[store.qrc|store.qrc]] === | |||
== Tools == | |||
=== QGL === | |||
*this tool can decompress a QRCC to QRCF and compress a QRCF to QRCC | |||
https://raw.github.com/wargio/ps3tools/master/QGL.c (just run make to compile it) | |||
* | === Generic Tiny little extractor embedded DDS/MNU/JPG/MPO/PNG === | ||
*Theses generic tiny little tools extract blindly & embedded files and are means to be tiny and independent. Heavily based on an [http://www.ps3devwiki.com/wiki/Talk:Content_Information_Files MPO splitter] by Christian Steinruecken. | |||
http://rghost.net/49340892 (include Code-Compile-Credit. Drag and drop your file into them) & | |||
mirror links: http://mir.cr/0R78ED3U | |||