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 14: | Line 14: | ||
**ps3 standalone visualizer app released by "Q games" (responsibles of XMB design): http://blog.us.playstation.com/2013/08/08/new-ps3-visualizer-app-from-q-games-out-tuesday/ and http://www.ps3hax.net/2013/08/q-games-releases-new-visualizer-music-app-for-ps3-high/ | **ps3 standalone visualizer app released by "Q games" (responsibles of XMB design): http://blog.us.playstation.com/2013/08/08/new-ps3-visualizer-app-from-q-games-out-tuesday/ and http://www.ps3hax.net/2013/08/q-games-releases-new-visualizer-music-app-for-ps3-high/ | ||
== QRC containers == | == Files inside QRC containers == | ||
=== icons.qrc & icontex.qrc === | === icons.qrc & icontex.qrc === | ||
Line 40: | Line 40: | ||
{{store.qrc}} | {{store.qrc}} | ||
== QRC | == File formats inside QRC containers == | ||
See [[Multimedia Formats and Tools]] page for a general description of DDS, GTF, BMP, TGA, FPO, VPO and JPEG image formats) | See [[Multimedia Formats and Tools]] page for a general description of DDS, GTF, BMP, TGA, FPO, VPO and JPEG image formats) | ||
Line 62: | Line 62: | ||
**CRC32 hashes generated with quickSFV http://pastebin.com/raw.php?i=40h6iMCA | **CRC32 hashes generated with quickSFV http://pastebin.com/raw.php?i=40h6iMCA | ||
== | == Tools == | ||
=== ZLIB === | === ZLIB === | ||
QRC files uses [[Template:Zlib Header|ZLIB]] compression level 9, there are 2 types of QRC files that can be recognized by reading the first 4 bytes either QRCC or QRCF, the next 4 bytes indicates the decompressed size. The first step to extract QRC contents is to remove this 8 bytes at the start of the file. After removed the resulting file is in zlib format | QRC files uses [[Template:Zlib Header|ZLIB]] compression level 9, there are 2 types of QRC files that can be recognized by reading the first 4 bytes either QRCC or QRCF, the next 4 bytes indicates the decompressed size. The first step to extract QRC contents is to remove this 8 bytes at the start of the file. After removed the resulting file is in zlib format | ||
*'''Zlib GUI v1.0''' - Nice GUI to work with the zlib dll. Download: [http://www.f2065.ru/soft/ZLib_GUI_en.htm official link], or [http://www.psx-place.com/resources/zlib-gui.716/ alternative link] | |||
*'''QGL converter''' - This code can decompress a QRCC to QRCF and compress a QRCF to QRCC (it crops/generates the first 8 bytes and manages the zlib decompression/compression) [https://raw.github.com/wargio/ps3tools/master/QGL.c QGL.c] | *'''QGL converter''' - This code can decompress a QRCC to QRCF and compress a QRCF to QRCC (it crops/generates the first 8 bytes and manages the zlib decompression/compression) [https://raw.github.com/wargio/ps3tools/master/QGL.c QGL.c] | ||
=== QRC Extractors === | === QRC Extractors === | ||
After the ZLIB decompression (needed for all .qrc files except icontex.qrc) the contents can be extracted individually using different tools | After the ZLIB decompression (needed for all .qrc files except icontex.qrc) the contents can be extracted individually using different tools | ||
* | *'''P3Textractor''' - <s>Is posible to use a theme extractor to extract the contents from .qrc files, but first is needed to replace the characters '''/''' by '''_''' of the text strings inside the '''Name table''' with a hexeditor (e.g: the string '''override/black/ICONS.mnu''' needs to be replaced by '''override_black_ICONS.mnu''')</s>. Dont use this method, is too much innacurate and obsolete, is kept here only for historical purposes | ||
*'''CXML decompiler v4 alpha''' - Is a python script to extract the | *'''Generic Tiny little extractor''' - This little tools extract files blindly. Heavily based on [http://www.ps3devwiki.com/wiki/Talk:Content_Information_Files MPO splitter] by Christian Steinruecken. Formats supported DDS/MNU/JPG/MPO/PNG (and virtually any other by modifying the source code) http://rghost.net/49340892 (include Code-Compile-Credit. Drag and drop your file into them), mirror: http://mir.cr/0R78ED3U | ||
*'''CXML decompiler v4 alpha''' - Is a python script to extract the files inside CXML containers (CXML, QRCF, P3TF, RAFO, etc...), and generates an .xml that represents the original CXML structure, copy the script from [[CXML_Containers]], save it as script.py and run it from command line, requires [https://www.python.org/downloads/ python 2] | |||
=== QRC Compilers === | === QRC Compilers === | ||
There are no .qrc compilers, the | There are no .qrc compilers, the commonly used method to modify them consist in patching the text strings of the .MNU settings or to inject the custom files with a hexeditor overriting the original .qrc file | ||
The patches should never exceeed the size of the original data, incase of patching an predefined area with an smaller patch is recommended to "blank" the original data with zeroes before writing the new data | The patches should never exceeed the size of the original data, incase of patching an predefined area with an smaller patch is recommended to "blank" the original data with zeroes before writing the new data | ||
Line 83: | Line 84: | ||
The format allows also to "remap" the contained files by modifying the entries in the index to make them point to the offset/size of a different file | The format allows also to "remap" the contained files by modifying the entries in the index to make them point to the offset/size of a different file | ||
==== Patching strings in hexeditor ==== | |||
Mostly used with the settings inside .mnu files | |||
First extract the files with the CXML decompiler script, look at the main .xml to identify the file names, open the .mnu file you want to modify in notepad++ to be able to read the settings in a easy way | |||
Select the string you want to modify and "copy" his name | |||
Open the .qrc file in a hexeditor (after ZLIB decompression if needed) and use the search funtion to locate the string you copyed previously | |||
*Notes | |||
**Most of the settings inside .mnu files are repeated several times inside the .qrc file because are used in several .mnu files... be sure to patch the correct .mnu file by comparing the rest of the data at his side | |||
==== Injecting files in hexeditor ==== | |||
Similar than patching a text string, but with a bigger chunk of data | |||
== External Links == | == External Links == |