Qt Resource Container (QRC): Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
mNo edit summary
(→‎General format: replaced examples by "rhm.qrc" because is tinyest and easyer for study)
Line 10: Line 10:
QRC file ZLIB Compressed level 9.
QRC file ZLIB Compressed level 9.


*Example from 3.55 lines.qrc:
*Example from 3.55 rhm.qrc:
  '''Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F'''
  '''Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F'''
  '''00000000'''  51 52 43 43 00 08 7A 60                         QRCC..z`
  '''00000000'''  <span style="background:#ff6666;">51 52 43 43</span> <span style="background:#6666ff;">00 00 28 00</span>                         QRCC..z`


51 52 43 43   magic header 'QRCC'
{| class="wikitable sortable"
00            divisor
|-
08 7A 60      size of ZLIB unpacked (QRCF) file
| 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 ===
Line 23: Line 32:
QRC "container" with an structure similar than themes .p3t
QRC "container" with an structure similar than themes .p3t


*Example from fw 3.55 lines.qrc (difference header on fw 4.46 lines.qrc: Size embedded files is 0x00 08 60 F0):
*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'''
  '''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 25 7C</span>  QRCF.......@..%|
  '''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 25 C0 00 00 14 02</span>  <span style="background:#ffff66;">00 00 39 D0 00 00 00 1B</span>  ..%À......9Ð....
  '''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 39 F0</span>  00 00 00 00  <span style="background:#ffff66;">00 00 39 F0</span>  00 00 00 00  ..9ð......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 39 F0 00 08 40 70</span>  00 00 00 00  00 00 00 00..9ð..@p........
  '''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"
{| class="wikitable sortable"
Line 44: Line 53:
| <span style="background:#ff6666;">Size header                  || 0x08 || 0x04 || 00 00 00 40 ||  
| <span style="background:#ff6666;">Size header                  || 0x08 || 0x04 || 00 00 00 40 ||  
|-
|-
| <span style="background:#ff6666;">Size extended header        || 0x0C || 0x04 || 00 00 25 7C ||
| <span style="background:#ff6666;">Size extended header        || 0x0C || 0x04 || 00 00 02 CC ||
|-
|-
| <span style="background:#66ff66;">Offset file list            || 0x10 || 0x04 || 00 00 25 C0 ||
| <span style="background:#66ff66;">Offset file list            || 0x10 || 0x04 || 00 00 03 10 ||
|-
|-
| <span style="background:#66ff66;">Size file list              || 0x14 || 0x04 || 00 00 14 02 ||
| <span style="background:#66ff66;">Size file list              || 0x14 || 0x04 || 00 00 01 2B ||
|-
|-
| <span style="background:#ffff66;">Offset Header embedded files || 0x18 || 0x04 || 00 00 39 D0 ||
| <span style="background:#ffff66;">Offset Header embedded files || 0x18 || 0x04 || 00 00 04 40 ||
|-
|-
| <span style="background:#ffff66;">Size Header embedded files  || 0x1C || 0x04 || 00 00 00 1B || without zeroed padding alignment
| <span style="background:#ffff66;">Size Header embedded files  || 0x1C || 0x04 || 00 00 00 1B || without zeroed padding alignment
|-
|-
| <span style="background:#ffff66;">Offset embedded files        || 0x20 || 0x04 || 00 00 39 F0 ||
| <span style="background:#ffff66;">Offset embedded files        || 0x20 || 0x04 || 00 00 04 60 ||
|-
|-
| Not used                    || 0x24 || 0x04 || 00 00 00 00 ||
| Not used                    || 0x24 || 0x04 || 00 00 00 00 ||
|-
|-
| <span style="background:#ffff66;">Offset embedded files        || 0x28 || 0x04 || 00 00 39 F0 ||
| <span style="background:#ffff66;">Offset embedded files        || 0x28 || 0x04 || 00 00 04 60 ||
|-
|-
| Not used                    || 0x2C || 0x04 || 00 00 00 00 ||
| Not used                    || 0x2C || 0x04 || 00 00 00 00 ||
|-
|-
| <span style="background:#ffff66;">Offset embedded files        || 0x30 || 0x04 || 00 00 39 F0 ||
| <span style="background:#ffff66;">Offset embedded files        || 0x30 || 0x04 || 00 00 04 60 ||
|-
|-
| <span style="background:#ffff66;">Size embedded files          || 0x34 || 0x04 || 00 08 40 70 ||
| <span style="background:#ffff66;">Size embedded files          || 0x34 || 0x04 || 00 00 23 A0 ||
|-
|-
| Not used                    || 0x38 || 0x04 || 00 00 00 00 ||
| Not used                    || 0x38 || 0x04 || 00 00 00 00 ||

Revision as of 18:39, 12 October 2013

location: /dev_flash/vsh/resource/qgl

General format

QGL (Qt Graphics Library) based in Qt framework and OpenGL

QRCC

QRCC (Qt Resources Container Compressed)

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  51 52 43 43 00 00 28 00                          QRCC..z`
Name Offset Size Example Remark
Magic header 0x00 0x04 51 52 43 43 'QRCC'
size of ZLIB unpacked (QRCF) file 0x04 0x04 00 00 28 00

QRCF

QRCF (Qt Resources Container F?)

QRC "container" with an structure similar than themes .p3t

  • 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  51 52 43 46  00 00 01 10  00 00 00 40  00 00 02 CC  QRCF.......@..%|
00000010  00 00 03 10  00 00 01 2B  00 00 04 40  00 00 00 1B  ..%À......9Ð....
00000020  00 00 04 60  00 00 00 00  00 00 04 60  00 00 00 00  ..9ð......9ð....
00000030  00 00 04 60  00 00 23 A0  00 00 00 00  00 00 00 00..9ð..@p........
Name Offset Size Example Remark
Magic header 0x00 0x04 51 52 43 46 'QRCF'
Version 0x04 0x04 00 00 01 10
Size header 0x08 0x04 00 00 00 40
Size extended header 0x0C 0x04 00 00 02 CC
Offset file list 0x10 0x04 00 00 03 10
Size file list 0x14 0x04 00 00 01 2B
Offset Header embedded files 0x18 0x04 00 00 04 40
Size Header embedded files 0x1C 0x04 00 00 00 1B without zeroed padding alignment
Offset embedded files 0x20 0x04 00 00 04 60
Not used 0x24 0x04 00 00 00 00
Offset embedded files 0x28 0x04 00 00 04 60
Not used 0x2C 0x04 00 00 00 00
Offset embedded files 0x30 0x04 00 00 04 60
Size embedded files 0x34 0x04 00 00 23 A0
Not used 0x38 0x04 00 00 00 00
Not used 0x3C 0x04 00 00 00 00

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

lines.qrc

location: /dev_flash/vsh/resource/qgl

  • 159 Contents (by file extensions):
    • 02 .ELF (wave and sparks animations)
    • 47 .FPO (fragment program objects)
    • 11 .VPO (vertex program objects)
    • 69 .MNU (openGL settings)
    • 24 .DDS (wallpapers)
    • 06 .TGA (sparks texture + unknown)


File list (fw 4.46) :

Name Type Remark
BACKGROUND.mnu .mnu
HDR.mnu .mnu
LINE1.mnu .mnu
override/black/BACKGROUND.mnu .mnu
override/black/HDR.mnu .mnu
override/black/LINE1.mnu .mnu
override/black/PARTICLES.mnu .mnu
override/bright/BACKGROUND.mnu .mnu
override/bright/HDR.mnu .mnu
override/bright/LINE1.mnu .mnu
override/coldboot1/BACKGROUND.mnu .mnu
override/coldboot1/HDR.mnu .mnu
override/coldboot1/LINE1.mnu .mnu
override/coldboot1/PARTICLES.mnu .mnu
override/coldboot2/BACKGROUND.mnu .mnu
override/coldboot2/HDR.mnu .mnu
override/coldboot2/LINE1.mnu .mnu
override/coldboot2/PARTICLES.mnu .mnu
override/day/BACKGROUND.mnu .mnu
override/day/HDR.mnu .mnu
override/day/LINE1.mnu .mnu
override/day/PARTICLES.mnu .mnu
override/gameboot1/BACKGROUND.mnu .mnu
override/gameboot1/HDR.mnu .mnu
override/gameboot1/LINE1.mnu .mnu
override/gameboot2/BACKGROUND.mnu .mnu
override/gameboot2/HDR.mnu .mnu
override/gameboot2/LINE1.mnu .mnu
override/gameboot3/BACKGROUND.mnu .mnu
override/gameboot3/HDR.mnu .mnu
override/gameboot3/LINE1.mnu .mnu
override/gameboot3/PARTICLES.mnu .mnu
override/gameboot4/BACKGROUND.mnu .mnu
override/gameboot4/HDR.mnu .mnu
override/gameboot4/LINE1.mnu .mnu
override/gameboot4/PARTICLES.mnu .mnu
override/gameboot5/BACKGROUND.mnu .mnu
override/gameboot5/HDR.mnu .mnu
override/gameboot5/LINE1.mnu .mnu
override/higure/BACKGROUND.mnu .mnu
override/higure/HDR.mnu .mnu
override/higure/LINE1.mnu .mnu
override/higure/PARTICLES.mnu .mnu
override/initial_setting/BACKGROUND.mnu .mnu
override/initial_setting/HDR.mnu .mnu
override/initial_setting/LINE1.mnu .mnu
override/music_1/BACKGROUND.mnu .mnu
override/music_1/HDR.mnu .mnu
override/music_1/LINE1.mnu .mnu
override/music_1/PARTICLES.mnu .mnu
override/night/BACKGROUND.mnu .mnu
override/night/HDR.mnu .mnu
override/night/LINE1.mnu .mnu
override/night/PARTICLES.mnu .mnu
override/yoake/BACKGROUND.mnu .mnu
override/yoake/HDR.mnu .mnu
override/yoake/LINE1.mnu .mnu
override/yoake/PARTICLES.mnu .mnu
override/welcome_1/BACKGROUND.mnu .mnu
override/welcome_1/HDR.mnu .mnu
override/welcome_1/LINE1.mnu .mnu
override/welcome_1/PARTICLES.mnu .mnu
override/welcome_2/BACKGROUND.mnu .mnu
override/welcome_2/HDR.mnu .mnu
override/welcome_2/LINE1.mnu .mnu
override/welcome_2/PARTICLES.mnu .mnu
textures/TGA/Noise.tga .tga
textures/TGA/freslut0.tga .tga
textures/TGA/freslut1.tga .tga
textures/TGA/freslut2.tga .tga
textures/TGA/freslut.tga .tga
textures/month_bg/rgb/01.dds .dds Textures month bg rgb 01.jpg
textures/month_bg/rgb/02.dds .dds Textures month bg rgb 02.jpg
textures/month_bg/rgb/03.dds .dds Textures month bg rgb 03.jpg
textures/month_bg/rgb/04.dds .dds Textures month bg rgb 04.jpg
textures/month_bg/rgb/05.dds .dds Textures month bg rgb 05.jpg
textures/month_bg/rgb/06.dds .dds Textures month bg rgb 06.jpg
textures/month_bg/rgb/07.dds .dds Textures month bg rgb 07.jpg
textures/month_bg/rgb/08.dds .dds Textures month bg rgb 08.jpg
textures/month_bg/rgb/09.dds .dds Textures month bg rgb 09.jpg
textures/month_bg/rgb/10.dds .dds Textures month bg rgb 10.jpg
textures/month_bg/rgb/11.dds .dds Textures month bg rgb 11.jpg
textures/month_bg/rgb/12.dds .dds Textures month bg rgb 12.jpg
textures/month_bg/night/01.dds .dds Textures month bg night 01.jpg
textures/month_bg/night/02.dds .dds Textures month bg night 02.jpg
textures/month_bg/night/03.dds .dds Textures month bg night 03.jpg
textures/month_bg/night/04.dds .dds Textures month bg night 04.jpg
textures/month_bg/night/05.dds .dds Textures month bg night 05.jpg
textures/month_bg/night/06.dds .dds Textures month bg night 06.jpg
textures/month_bg/night/07.dds .dds Textures month bg night 07.jpg
textures/month_bg/night/08.dds .dds Textures month bg night 08.jpg
textures/month_bg/night/09.dds .dds Textures month bg night 09.jpg
textures/month_bg/night/10.dds .dds Textures month bg night 10.jpg
textures/month_bg/night/11.dds .dds Textures month bg night 11.jpg
textures/month_bg/night/12.dds .dds Textures month bg night 12.jpg
spurs/moyou/spline/spline.elf .elf
lib/glutils/AccGlare.fpo .fpo
lib/gutils/ApplyDisplay.fpo .fpo
lib/glutils/ApplyGlare.fpo .fpo
lib/glutils/BloomCone.fpo .fpo
lib/glutils/BloomDecay.fpo .fpo
lib/glutils/BlurAcc.fpo .fpo
lib/glutils/BlurOutput.fpo .fpo
lib/glutils/BlurOutputFG.fpo .fpo
lib/glutils/ConeFilter.fpo .fpo
lib/glutils/CookieCutter.fpo .fpo
lib/glutils/CookieCutter.vpo .vpo
lib/glutils/Copy.fpo .fpo
lib/glutils/CopyMRT.fpo .fpo
lib/glutils/CopyVarAlpha.fpo .fpo
lib/glutils/DoubleGaussian.fpo .fpo
lib/glutils/GaussBloomAndBlur.fpo .fpo
lib/glutils/Gaussian.fpo .fpo
lib/glutils/Gaussian.vpo .vpo
lib/glutils/GlareSource.fpo .fpo
lib/glutils/GlareSourceMRT.fpo .fpo
lib/glutils/GlareSourceNoTone.fpo .fpo
lib/glutils/GlareSourcePre.fpo .fpo
lib/glutils/ScreenCopy.fpo .fpo
lib/glutils/ToneApplyDisplay.fpo .fpo
lib/glutils/ToneApplyDisplayMRT.fpo .fpo
lib/glutils/ToneMap.fpo .fpo
lib/glutils/ToneMerge.fpo .fpo
lib/glutils/ToneSplit.fpo .fpo
lib/moyou/background.fpo .fpo
lib/moyou/background.vpo .vpo
lib/moyou/back_colours0.fpo .fpo
lib/moyou/back_colours1.fpo .fpo
lib/moyou/back_colours2.fpo .fpo
lib/moyou/back_colours_cpy.fpo .fpo
lib/moyou/ffd_alpha_blend.fpo .fpo
lib/moyou/ffd_shader0.fpo .fpo
lib/moyou/ffd_shader1.fpo .fpo
lib/moyou/ffd_shader2.fpo .fpo
lib/moyou/ffd_shader3.fpo .fpo
lib/moyou/lines0.fpo .fpo
lib/moyou/lines0.vpo .vpo
lib/moyou/lines1.fpo .fpo
lib/moyou/lines1.vpo .vpo
lib/moyou/lines2.fpo .fpo
lib/moyou/lines2.vpo .vpo
lib/moyou/LinesController.fpo .fpo
lib/moyou/LinesController.vpo .vpo
lib/moyou/LinesControllerQuin.fpo .fpo
lib/moyou/LinesEdge.fpo .fpo
lib/moyou/bg_copy.fpo .fpo
particles/proc_iridescent.tga .tga Iridescence
spurs/particles/particles/particles.elf .elf
lib/particles/particles_quads.fpo .fpo
lib/particles/particles_quads_debug.fpo .fpo
lib/particles/particles_second.fpo .fpo
lib/particles/particles_quads.vpo .vpo
lib/particles/particles_quads_debug.vpo .vpo
lib/particles/particles_second.vpo .vpo
PARTICLES.mnu .mnu
PARTICLES_SPE.mnu .mnu
PARTICLES_UI.mnu .mnu
lib/devgui/DebugGui.vpo .vpo
lib/devgui/DebugGui.fpo .fpo



Notes (this section is speculative until someone finds where the values are stored, feel free to improve it)

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

raf.qrc

location: /dev_flash/vsh/resource/qgl

rhm.qrc

location: /dev_flash/vsh/resource/qgl

  • 11 Contents (by file extensions):
    • 08 .FPO (fragment program objects)
    • 03 .VPO (vertex program objects)


Name Type Remark
lib/rhm/Clear.fpo .fpo
lib/rhm/Clear.vpo .vpo
lib/rhm/Copy.fpo .fpo
lib/rhm/default.fpo .fpo
lib/rhm/default.vpo .vpo
lib/glutils/ConeFilter.fpo .fpo
lib/glutils/ConeFilter.vpo .vpo
lib/glutils/ConeFilterSimple.fpo .fpo
lib/glutils/ScreenCopy.fpo .fpo
lib/glutils/Blur2.fpo .fpo
lib/glutils/Blur2Mask.fpo .fpo

store.qrc

location: /dev_flash/vsh/resource/qgl


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)

Tiny little extractor embedded DDS/MNU/JPG

  • Theses tiny little tools extract blindly & only embedded files and are means to be tiny and independent. Heavily based on an MPO splitter by Christian Steinruecken, they

http://rghost.net/49331859 (include Code-Compile-Credit. Drag and drop your file with embedded .dds/mnu/jpg) & mirror links: http://mir.cr/6N9JRFRD