Editing Qt Resource Container (QRC)

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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:
== Description ==
[[Category:Software]]
QRC files ('''Q'''t '''R'''esources '''C'''ontainer) are located inside a QGL folder ('''Q'''t '''G'''raphics '''L'''ibrary) in path: '''dev_flash/vsh/resource/qgl''' with names: [[canyon.qrc]], [[earth.qrc]], [[icons.qrc]], [[icontex.qrc]], [[lines.qrc]], [[raf.qrc]], [[rhm.qrc]], and [[store.qrc]]. The contents of QRC files are compatible/generated with/by: [http://en.wikipedia.org/wiki/Qt_%28framework%29 Qt framework] and [http://en.wikipedia.org/wiki/OpenGL OpenGL]
location: /dev_flash/vsh/resource/qgl


The internal structure of QRC files can be clasifyed as one of the variants of a group of containers named: [[CXML Containers]]
== 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]


*QRC related firmware modules in '''dev_flashvsh/modules/''':
=== QRCC ===
**qglbase.sprx <--- generic
QRCC ('''Q'''t '''R'''esources '''C'''ontainer '''C'''ompressed)
**qgl_gaia_app.sprx <--- earth animation inside music player
**qgl_canyon_app.sprx <--- abstract animation inside music player
**custom_render_plugin.sprx


*Other stuff related with QRC:
QRC file ZLIB Compressed level 9.
**http://blog.us.playstation.com/2009/09/04/q-games-update-star-dust-dynamic-themes-our-favorite-little-tikiman/
**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 ==
*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`


=== icons.qrc & icontex.qrc ===
{| class="wikitable sortable"
*See: [[icons.qrc]] and [[icontex.qrc]] pages
|-
{{icons.qrc}}
| style="background-color:#515243; color:#FFFFFF;" |'''Name'''
{{icontex.qrc}}
| 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
 
http://666kb.com/i/cib5c7q4y7rpcx9x1.gif
 
====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 ===
location: /dev_flash/vsh/resource/qgl
 
=== earth.qrc ===
location: /dev_flash/vsh/resource/qgl
 
=== icons.qrc ===
location: /dev_flash/vsh/resource/qgl
 
=== icontex.qrc ===
location: /dev_flash/vsh/resource/qgl (icontex.qrc contains 71 embedded zlibs files)
 
*71 Contents (by file extensions):
 
**71 <span style="background-color:#444453; color:#FFFFFF;">.DDS</span> (70 textures icons:128x128, diff.dds: 64x64)
 
See [http://www.psdevwiki.com/ps3/Themes_%28.p3t%29#Theme_Name_.28.XML.29 Theme Icons ID]
 
File list (fw 4.46) :
 
{| class="wikitable sortable"
|-
! style="background-color:#515243; color:#FFFFFF;" |'''Name'''
! style="background-color:#515243; color:#FFFFFF;" |'''Type'''
! style="background-color:#515243; color:#FFFFFF;" |'''Icons ID'''
! style="background-color:#515243; color:#FFFFFF;" |'''Icons table'''
|-
|01 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_user" || horizontal row {{icon category users}}
|-
|02 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_setting" || horizontal row {{icon category settings}}
|-
|03 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_photo" || horizontal row {{icon category photo}}
|-
|04 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_music" || horizontal row {{icon category music}}
|-
|05 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_video" || horizontal row {{icon category video}}
|-
|06 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_game" || horizontal row {{icon category game}}
|-
|07 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_network" || horizontal row {{icon category network}}
|-
|08 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_friend" || horizontal row {{icon category friends}}
|-
|09 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_update" || settings column
|-
|10 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_bdvd_setting" || settings column
|-
|11 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_printer_setting" || settings column
|-
|12 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_music_setting" || settings column
|-
|13 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_system_setting" || settings column
|-
|14 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_game_setting" || settings column
|-
|15 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_datetime_setting" || settings column
|-
|16 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_accessory" || settings column
|-
|17 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_display_setting" || settings column
|-
|18 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_sound_setting" || settings column
|-
|19 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_security_setting" || settings column
|-
|20 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_network_setting" || settings column
|-
|21 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_remoteplay_setting" || settings column
|-
|22 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_pspms" || devices
|-
|23 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_setting_item" || settings column
|-
|24 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_theme_setting" || settings column
|-
|25 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_ms" || devices
|-
|26 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_cf" || devices
|-
|27 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_sd" || devices
|-
|28 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_psp" || devices
|-
|29 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_usb" || devices
|-
|30 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_newvmc" || game column
|-
|31 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_onlinemanual" || network column
|-
|32 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Atrac) ||
|-
|33 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_download" || network column
|-
|34 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_chat" || friends column
|-
|35 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_tv" || horizontal row {{icon category tv}}
|-
|36 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_mediaserver_search" || media player
|-
|37 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_remoteplay" || network column
|-
|38 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_playlist" || media player
|-
|39 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_playlist_add" || media player
|-
|40 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_trophy" || game column
|-
|41 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_browser" || network column
|-
|42 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_newuser" || user column
|-
|43 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_chat_setting" || settings column
|-
|44 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_blocklist" || friends column
|-
|45 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_playermet" || friends column
|-
|46 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_addfriend" || friends column
|-
|47 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_playing" || media player
|-
|48 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_accountmanage" || psn column
|-
|49 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_mbox" || friends column
|-
|50 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_mbox_received" || friends column
|-
|51 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_mbox_sent" || friends column
|-
|52 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_mbox_create" || friends column
|-
|53 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_usbcamera" || devices
|-
|54 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_usbaad" || devices
|-
|55 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_poweroff" || user column
|-
|56 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_inet_search" || network column
|-
|57 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_powersave_setting" || settings column
|-
|58 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Account information) ||
|-
|59 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Sub Account Management) ||
|-
|60 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Transaction Management) ||
|-
|61 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Redeem PSN cards and promotional codes)||
|-
|62 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (System Activation) ||
|-
|63 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_gamedata" || game column
|-
|64 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_savedata" || game column
|-
|65 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_vmc" || game column
|-
|66 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_chatroom" || friends column
|-
|67 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_savedata_minis" || game column
|-
|68 || style="background-color:#444453; color:#FFFFFF;" |.dds ||"icon_video_upload" || media player
|-
|69 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (create New Video) || (media player)
|-
|70 || style="background-color:#444453; color:#FFFFFF;" |.dds ||not in Theme? (Privacy Settings) ||
|-
|dif|| style="background-color:#444453; color:#FFFFFF;" |.dds ||- ||
|-
|}


=== lines.qrc ===
=== lines.qrc ===
*See: [[lines.qrc]] page
location: /dev_flash/vsh/resource/qgl
{{lines.qrc}}
 
*159 Contents (by file extensions):
**02 <span style="background-color:#6D6E75; color:#FFFFFF;">.ELF</span> (wave and sparks animations)
**47 <span style="background-color:#46504F; color:#FFFFFF;">.FPO</span> (fragment program objects)
**11 <span style="background-color:#76706F; color:#FFFFFF;">.VPO</span> (vertex program objects)
**69 <span style="background-color:#6D6E75; color:#FFFFFF;">.MNU</span> (openGL settings)
**24 <span style="background-color:#444453; color:#FFFFFF;">.DDS</span> (wallpapers)
**06 <span style="background-color:#544741; color:#FFFFFF;">.TGA</span> (sparks texture + unknown)
 
 
File list (fw 4.46) :


=== rhm.qrc & raf.qrc ===
{| class="wikitable sortable"
*See: [[rhm.qrc]] and [[raf.qrc]] pages
|-
{{rhm.qrc}}
! style="background-color:#515243; color:#FFFFFF;" |'''Name'''
{{raf.qrc}}
! style="background-color:#515243; color:#FFFFFF;" |'''Type'''
! style="background-color:#515243; color:#FFFFFF;" |'''Remark'''
|-
|BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/black/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/black/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/black/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/black/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/bright/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/bright/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/bright/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot1/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot1/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot1/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot1/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot2/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot2/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot2/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/coldboot2/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/day/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/day/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/day/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/day/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot1/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot1/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot1/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot2/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot2/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot2/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot3/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot3/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot3/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot3/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot4/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot4/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot4/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot4/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot5/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot5/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/gameboot5/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/higure/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/higure/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/higure/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/higure/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/initial_setting/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/initial_setting/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/initial_setting/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/music_1/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/music_1/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/music_1/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/music_1/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/night/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/night/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/night/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/night/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/yoake/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/yoake/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/yoake/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/yoake/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_1/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_1/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_1/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_1/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_2/BACKGROUND.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_2/HDR.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_2/LINE1.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|override/welcome_2/PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|textures/TGA/Noise.tga || style="background-color:#544741; color:#FFFFFF;" |.tga ||
|-
|textures/TGA/freslut0.tga || style="background-color:#544741; color:#FFFFFF;" |.tga ||
|-
|textures/TGA/freslut1.tga || style="background-color:#544741; color:#FFFFFF;" |.tga ||
|-
|textures/TGA/freslut2.tga || style="background-color:#544741; color:#FFFFFF;" |.tga ||
|-
|textures/TGA/freslut.tga || style="background-color:#544741; color:#FFFFFF;" |.tga ||
|-
|textures/month_bg/rgb/01.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 01.jpg]]
|-
|textures/month_bg/rgb/02.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 02.jpg]]
|-
|textures/month_bg/rgb/03.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||[[File:Textures month bg rgb 03.jpg]]
|-
|textures/month_bg/rgb/04.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||[[File:Textures month bg rgb 04.jpg]]
|-
|textures/month_bg/rgb/05.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 05.jpg]]
|-
|textures/month_bg/rgb/06.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 06.jpg]]
|-
|textures/month_bg/rgb/07.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 07.jpg]]
|-
|textures/month_bg/rgb/08.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 08.jpg]]
|-
|textures/month_bg/rgb/09.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 09.jpg]]
|-
|textures/month_bg/rgb/10.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 10.jpg]]
|-
|textures/month_bg/rgb/11.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 11.jpg]]
|-
|textures/month_bg/rgb/12.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures month bg rgb 12.jpg]]
|-
|textures/month_bg/night/01.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_01.jpg]]
|-
|textures/month_bg/night/02.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_02.jpg]]
|-
|textures/month_bg/night/03.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_03.jpg]]
|-
|textures/month_bg/night/04.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_04.jpg]]
|-
|textures/month_bg/night/05.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_05.jpg]]
|-
|textures/month_bg/night/06.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_06.jpg]]
|-
|textures/month_bg/night/07.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_07.jpg]]
|-
|textures/month_bg/night/08.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_08.jpg]]
|-
|textures/month_bg/night/09.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_09.jpg]]
|-
|textures/month_bg/night/10.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_10.jpg]]
|-
|textures/month_bg/night/11.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_11.jpg]]
|-
|textures/month_bg/night/12.dds || style="background-color:#444453; color:#FFFFFF;" |.dds || [[File:Textures_month_bg_night_12.jpg]]
|-
|spurs/moyou/spline/spline.elf || style="background-color:#656C66; color:#FFFFFF;" |.elf ||
|-
|lib/glutils/AccGlare.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/gutils/ApplyDisplay.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ApplyGlare.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/BloomCone.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/BloomDecay.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/BlurAcc.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/BlurOutput.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/BlurOutputFG.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/CookieCutter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/CookieCutter.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/glutils/Copy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/CopyMRT.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/CopyVarAlpha.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/DoubleGaussian.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/GaussBloomAndBlur.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/Gaussian.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/Gaussian.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/glutils/GlareSource.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/GlareSourceMRT.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/GlareSourceNoTone.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/GlareSourcePre.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ScreenCopy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ToneApplyDisplay.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ToneApplyDisplayMRT.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ToneMap.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ToneMerge.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ToneSplit.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/background.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/background.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/moyou/back_colours0.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/back_colours1.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/back_colours2.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/back_colours_cpy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/ffd_alpha_blend.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/ffd_shader0.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/ffd_shader1.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/ffd_shader2.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/ffd_shader3.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/lines0.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/lines0.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/moyou/lines1.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/lines1.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/moyou/lines2.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/lines2.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/moyou/LinesController.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/LinesController.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/moyou/LinesControllerQuin.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/LinesEdge.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/moyou/bg_copy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|particles/proc_iridescent.tga || style="background-color:#544741; color:#FFFFFF;" |.tga || [http://en.wikipedia.org/wiki/Iridescence Iridescence]
|-
|spurs/particles/particles/particles.elf || style="background-color:#656C66; color:#FFFFFF;" |.elf ||
|-
|lib/particles/particles_quads.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/particles/particles_quads_debug.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/particles/particles_second.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/particles/particles_quads.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/particles/particles_quads_debug.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/particles/particles_second.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|PARTICLES.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|PARTICLES_SPE.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|PARTICLES_UI.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|lib/devgui/DebugGui.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/devgui/DebugGui.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|}
*Notes
** The size of lines.qrc is different between 3.55 and 4.46 (there are changes in some of the contained files)


=== canyon.qrc & earth.qrc ===
*XMB wave modding: http://www.ps3hax.net/showthread.php?t=25618 and http://www.ps3hax.net/showthread.php?t=58673
*See: [[canyon.qrc]] and [[earth.qrc]] pages
**Thread corrections: The wave is common for all PS3 models, resolutions, aspect ratios, and regions. The concept of PAL/NTSC wave is wrong
*Music player visualizers (a.k.a. 'valley' and 'gaia'), the other music player visualizer available is a modification of the [[XMB]] wave/sparks animation, and is stored inside [[lines.qrc]] using specific .MNU settings in path: '''override/music_1/''')
{{canyon.qrc}}
{{earth.qrc}}


=== store.qrc ===
----
*See: [[store.qrc]] page
Notes (this section is speculative until someone finds where the values are stored, feel free to improve it)
{{store.qrc}}
 
'''Sparks dynamic animation''' (sparks movement affected by cursor position and "fluid density")
 
The sparks movement is affected by the displacement of the cursor when moving along XMB columns and rows (left-right, or up-down directions). When the cursor moves fast to a new position the sparks "tends" to move in the opposite direction trying to mimic a real fluid like air or water
 
To see this effect is good to configure a black wallpaper and enable all the options iside "theme settings" to "original" (this will make the sparks very visibles). Then start moving the cursor from left column (user) <---> to right column (friends)... or from top item <---> to bottom item in any colums (more visible in a column with several items, like game)... and note how the sparks directions are affected :)
 
This proves the sparks is a dynamic animation, is constantly "reading" the position of the cursor to adjust particle directions
 
'''wallpapers'''
After extraction, the 24 .dds images used as wallpapers shares the same header (0x80 bytes), after the header starts the pixel info (each pixel is 4 bytes length in RGBA format). Is posible to change the pixel info without changing the header
 
00 00 00 FF = black pixel


== QRC contents ==
=== raf.qrc ===
See [[Multimedia Formats and Tools]] page for a general description of DDS, GTF, BMP, TGA, FPO, VPO and JPEG image formats)
location: /dev_flash/vsh/resource/qgl


*ELF (Executable and Linkable Format) See Specifications here: [http://www.sco.com/developers/gabi/latest/ch4.eheader.html ELF Header] and [http://www.openwatcom.com/ftp/devel/docs/elf-64-gen.pdf ELF-64 Object File Format]
*23 Contents (by file extensions):
*BIN (Binary)
**01 <span style="background-color:#62696E; color:#FFFFFF;">.BIN</span> (bin)
*MNU ?
**20 <span style="background-color:#46504F; color:#FFFFFF;">.FPO</span> (fragment program objects)
*PATH (Camera path)
**02 <span style="background-color:#76706F; color:#FFFFFF;">.VPO</span> (vertex program objects)
*DUMP ?
*TXT ?
*INI ?
*DDS (Direct Draw Surface)
*GTF (Graphics Texture Format)
*BMP (Bitmap)
*TGA (Targa)
*JPEG (Joint Photographic Experts Group)
*FPO (Fragment Program Objects)
*VPO (Vertex Program Objects)


*QRC files from firmware version 1.00 up and including 4.50 : http://mir.cr/TSR5E8PM (32078 KB RAR / unpacked size 243425713 bytes)
**MD5 hashes generated with quickSFV http://pastebin.com/raw.php?i=ATvKyMRC
**CRC32 hashes generated with quickSFV http://pastebin.com/raw.php?i=40h6iMCA


== QRC related tools ==
{| class="wikitable sortable"
|-
! style="background-color:#515243; color:#FFFFFF;" |'''Name'''
! style="background-color:#515243; color:#FFFFFF;" |'''Type'''
! style="background-color:#515243; color:#FFFFFF;" |'''Remark'''
|-
|spurs/spu_utils/eventjob/eventjob.bin || style="background-color:#62696E; color:#FFFFFF;" |.bin ||
|-
|lib/raf/vert0.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/raf/_gen_ubber1_0000.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1000.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0100.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1100.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0010.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1010.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0110.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1110.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0001.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1001.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0101.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1101.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0011.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1011.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_0111.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/_gen_ubber1_1111.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/raf/sce01.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ScreenCopy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilterSimple.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilter.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|}


=== ZLIB ===
=== rhm.qrc ===
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
location: /dev_flash/vsh/resource/qgl


*'''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]
*11 Contents (by file extensions):
*'''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]
**08 <span style="background-color:#46504F; color:#FFFFFF;">.FPO</span> (fragment program objects)
**03 <span style="background-color:#76706F; color:#FFFFFF;">.VPO</span> (vertex program objects)


=== QRC Extractors ===
After the ZLIB decompression (needed for all .qrc files except icontex.qrc) the contents can be extracted individually using different tools


*<s>'''P3Textractor''' - 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
{| class="wikitable sortable"
*'''CXML decompiler v4 alpha''' - Is a python script to extract the contents of CXML containers (CXML, QRCF, P3TF, RAFO, etc...), and also generates an .xml that represents the original CXML structure. To use it copy the script at bottom of [[CXML Containers]] page and save it to your PC as '''script.py'''. Then run it from the command line and follow the instructions, it requires [https://www.python.org/downloads/ python 2]
|-
! style="background-color:#515243; color:#FFFFFF;" |'''Name'''  
! style="background-color:#515243; color:#FFFFFF;" |'''Type'''  
! style="background-color:#515243; color:#FFFFFF;" |'''Remark'''
|-
| lib/rhm/Clear.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/rhm/Clear.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
| lib/rhm/Copy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/rhm/default.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/rhm/default.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
| lib/glutils/ConeFilter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/glutils/ConeFilter.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
| lib/glutils/ConeFilterSimple.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/glutils/ScreenCopy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/glutils/Blur2.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
| lib/glutils/Blur2Mask.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|}


=== QRC Compilers ===
=== store.qrc ===
There are no .qrc compilers, the usual method to modify qrc files is by patching the text strings of the .MNU settings or to inject the custom files with a hexeditor overriting the original .qrc file structure
location: /dev_flash/vsh/resource/qgl


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
*80 Contents (by file extensions):
**41 <span style="background-color:#46504F; color:#FFFFFF;">.FPO</span> (fragment program objects)
**13 <span style="background-color:#76706F; color:#FFFFFF;">.VPO</span> (vertex program objects)
**20 <span style="background-color:#6D6E75; color:#FFFFFF;">.MNU</span> (openGL settings)
**05 <span style="background-color:#444453; color:#FFFFFF;">.DDS</span> (wallpapers)
**01 <span style="background-color:#677466; color:#FFFFFF;">.GTF</span> (texture?)


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'''
{| class="wikitable sortable"
**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
! style="background-color:#515243; color:#FFFFFF;" |'''Name'''  
**Select the string you want to modify and copy it
! style="background-color:#515243; color:#FFFFFF;" |'''Type'''
**Open the .qrc file in a hexeditor (after ZLIB decompression if needed) and use the search funtion to locate the string you copyed in the previous step
! style="background-color:#515243; color:#FFFFFF;" |'''Remark'''
**Notes
|-
***Most of the settings from .mnu files are repeated several times inside the .qrc file. Be sure to patch the correct .mnu file by comparing the data before or/and after
|lib/store/test.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/test.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/work.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/work.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/panel.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/panel2d.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel2d_simple.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_distort.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_distort.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_textured.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_textured_distort.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_textured.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_textured_distort.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_distort_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_distort_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_textured_distort_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_edge_aa_textured_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_textured_distort_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/_gen_panel3d_textured_middle.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/thumbnail.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel_glow.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel_glow_area.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/capsule_glow_corner.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/capsule_glow_side.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/capsule_glow_middle.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/capsule_glow.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel3d.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/white_background.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/white_background.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/white_background_high.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/white_background_low.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/blur.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/blur_mask.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/default_aaa1.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/aa_edge.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/store/aa_edge.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/copy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/copy3d.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel3d_aa.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/store/panel3d_aa.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|datacom/border_donuts-nnha.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||
|-
|datacom/border_sphere-nnha.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||
|-
|datacom/arrow_A-nnha.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||
|-
|datacom/arrow_B-nnha.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||
|-
|datacom/bg_specular_map.gtf || style="background-color:#677466; color:#FFFFFF;" |.gtf ||
|-
|datacom/blur_mask.dds || style="background-color:#444453; color:#FFFFFF;" |.dds ||
|-
|datacom/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/panels.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/panels_sd/panels.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset0/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset1/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset2/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset3/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset4/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset5/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset6/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset7/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset8/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset9/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset10/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset11/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset12/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset13/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset14/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset15/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|datacom/preset16/store.mnu || style="background-color:#6D6E75; color:#FFFFFF;" |.mnu ||
|-
|lib/glutils/CookieCutter.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/glutils/CookieCutter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ScreenCopy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilter.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilterSimple.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/ConeFilter.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/glutils/msaa.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/glutils/msaa_copy.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|lib/devgui/DebugGui.vpo || style="background-color:#76706F; color:#FFFFFF;" |.vpo ||
|-
|lib/devgui/DebugGui.fpo || style="background-color:#46504F; color:#FFFFFF;" |.fpo ||
|-
|}


*'''Injecting files in hexeditor'''
== Tools ==
**Similar than patching a text string but with a bigger chunk of data


== External Links ==
=== QGL ===
*QRC modding by eustolio: http://www.scenespain.net/foro/tutoriales-ps3/tutorial-xmb-custom-cambia-el-color-e-iconos-base-del-xmb/ (2011 may 29)
*this tool can decompress a QRCC to QRCF and compress a QRCF to QRCC
**Corrections: None :)
*XMB wave modding by glowball: http://www.ps3hax.net/showthread.php?t=25618 (2011 july 1) and http://www.ps3hax.net/showthread.php?t=58673 (2013 july 4)
**Corrections:
***The concept of PAL/NTSC wave is wrong. The wave is common for all PS3 models, resolutions, aspect ratios, and regions. The 8 bytes at the start of the file doesnt has any relationship with PAL/NTSC
***There is no javascript inside the QRC container, the supposed .js file used in glowball method is a chunk of data containing several .mnu files (included the padding between them)
***The idea of an "imaginary" javascript hides the real explain of the structure or what you are patching, making users to dont understand a word and promoting the "blind testing"
***In the case you want to patch 1 byte... you are patching a huge area instead
***Using hardcoded offsets is a safe way to break compatility when the files changes in with newer firmwares and good for softbricking, there is no advise of incompatibility problems


*Qt Framework
https://raw.github.com/wargio/ps3tools/master/QGL.c (just run make to compile it)
**http://qt-project.org/doc/qt-5/rcc.html
**http://qt-project.org/doc/qt-5/resources.html
**https://qt.gitorious.org/qt/qtbase/source/fb20f9c2da369b07fc50857a90b596ae63f943da:src/tools/rcc
**https://qt.gitorious.org/qt-creator/qt-creator/source/1154a8c6c2bfb223f4239d7902c3755e8a9a1213:src/plugins/resourceeditor/qrceditor


=== 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.


{{File Formats}}<noinclude>[[Category:Main]]</noinclude>
http://rghost.net/49340892 (include Code-Compile-Credit. Drag and drop your file into them) &
mirror links: http://mir.cr/0R78ED3U
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)