Talk:Qt Resource Container (QRC)

From PS3 Developer wiki
Jump to navigation Jump to search

QRC filebase

External Links

  • 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)
    • 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


VPO FPO Decoding

If you are interested in decoding the vpo & fpo files, use cgc-disasm.exe (wrote by eustolio at: http://www.ps3hax.net/showthread.php?t=25618&p=229602&viewfull=1#post229602 )

sce-cgcdisasm -o outfile imputfile (shader)
# profile sce_vp_rsx
# parameterCount 20
# instructionCount 4
# registerCount 1
# attributeInputMask Attr0
# attributeOutputMask None
# userClipMask 0: DISABLE, 1: DISABLE, 2: DISABLE, 3: DISABLE, 4: DISABLE, 5: DISABLE

index: type: name: semantic: res or resIndex
#0: float4: oldpos: in.POSITION0: ATTR0
#1: float4: newpos: out.POSITION0: HPOS
#2: float2: oldcrd: in.TEXCOORD0: ATTR8
#3: float4: oldnrm: in.TEXCOORD1: ATTR9
#4: float4: newcol: out.COLOR0: COL0
#5: float: _Fresnel: : UNDEFINED
#6: float: _Falloff: : UNDEFINED
#7: float: _Brightness: : UNDEFINED
#8: float: _MipmapBias: : UNDEFINED
#9: float4: _Eye: : UNDEFINED
#10: float4x4: _MVM: : C[256]
#11: float4: _MVM[0]: : C[256]
#12: float4: _MVM[1]: : C[257]
#13: float4: _MVM[2]: : C[258]
#14: float4: _MVM[3]: : C[259]
#15: float4x4: _MIT: : UNDEFINED
#16: float4: _MIT[0]: : UNDEFINED
#17: float4: _MIT[1]: : UNDEFINED
#18: float4: _MIT[2]: : UNDEFINED
#19: float4: _MIT[3]: : UNDEFINED

DP4 o[0].w, v[0], c[259];
DP4 o[0].z, v[0], c[258];
DP4 o[0].y, v[0], c[257];
DP4 o[0].x, v[0], c[256];
END
sce-cgcdisasm -h outfile imputfile (for header)
#ifndef _lib_moyou_lines0_params_H_
#define _lib_moyou_lines0_params_H_

typedef struct {
	int res;
	int resindex;
	int dvindex;
} CellGcm_lib_moyou_lines0_params_Table;

typedef struct {
	float defaultvalue[4];
} CellGcm_lib_moyou_lines0_params_DefaultValueTable;

enum CellGcm_lib_moyou_lines0_params_Enum {
	CELL_GCM_lib_moyou_lines0_params_oldpos = 0,
	CELL_GCM_lib_moyou_lines0_params_newpos = 1,
	CELL_GCM_lib_moyou_lines0_params_oldcrd = 2,
	CELL_GCM_lib_moyou_lines0_params_oldnrm = 3,
	CELL_GCM_lib_moyou_lines0_params_newcol = 4,
	CELL_GCM_lib_moyou_lines0_params___Fresnel = 5,
	CELL_GCM_lib_moyou_lines0_params___Falloff = 6,
	CELL_GCM_lib_moyou_lines0_params___Brightness = 7,
	CELL_GCM_lib_moyou_lines0_params___MipmapBias = 8,
	CELL_GCM_lib_moyou_lines0_params___Eye = 9,
	CELL_GCM_lib_moyou_lines0_params___MVM = 10,
	CELL_GCM_lib_moyou_lines0_params___MVM_0 = 11,
	CELL_GCM_lib_moyou_lines0_params___MVM_1 = 12,
	CELL_GCM_lib_moyou_lines0_params___MVM_2 = 13,
	CELL_GCM_lib_moyou_lines0_params___MVM_3 = 14,
	CELL_GCM_lib_moyou_lines0_params___MIT = 15,
	CELL_GCM_lib_moyou_lines0_params___MIT_0 = 16,
	CELL_GCM_lib_moyou_lines0_params___MIT_1 = 17,
	CELL_GCM_lib_moyou_lines0_params___MIT_2 = 18,
	CELL_GCM_lib_moyou_lines0_params___MIT_3 = 19,
};

CellGcm_lib_moyou_lines0_params_Table lib_moyou_lines0_params[20] = {
	{2113, -1, -1}, /* index:0, "oldpos" */
	{2243, -1, -1}, /* index:1, "newpos" */
	{2121, -1, -1}, /* index:2, "oldcrd" */
	{2122, -1, -1}, /* index:3, "oldnrm" */
	{2245, -1, -1}, /* index:4, "newcol" */
	{3256, -1, -1}, /* index:5, "_Fresnel" */
	{3256, -1, -1}, /* index:6, "_Falloff" */
	{3256, -1, -1}, /* index:7, "_Brightness" */
	{3256, -1, -1}, /* index:8, "_MipmapBias" */
	{3256, -1, -1}, /* index:9, "_Eye" */
	{2178, 256, -1}, /* index:10, "_MVM" */
	{2178, 256, -1}, /* index:11, "_MVM[0]" */
	{2178, 257, -1}, /* index:12, "_MVM[1]" */
	{2178, 258, -1}, /* index:13, "_MVM[2]" */
	{2178, 259, -1}, /* index:14, "_MVM[3]" */
	{3256, -1, -1}, /* index:15, "_MIT" */
	{3256, -1, -1}, /* index:16, "_MIT[0]" */
	{3256, -1, -1}, /* index:17, "_MIT[1]" */
	{3256, -1, -1}, /* index:18, "_MIT[2]" */
	{3256, -1, -1}, /* index:19, "_MIT[3]" */
};

CellGcm_lib_moyou_lines0_params_DefaultValueTable lib_moyou_lines0_params_default_value[0] = {
};

#endif //_lib_moyou_lines0_params_H_


Temporal Section (RHM.QRC 1.00 MAP)

Boring/interesting info about the creation and publishing of this table at date: --Sandungas (talk) 00:43, 7 June 2014 (EDT)

QRC page in wiki started as notes documenting the files and qrc modifications methods found along internet, later there was a need to start mapping the qrc structure because none of the methods found was stable enougth and there was no tools to manage the container

For this reason ada and me started mapping .qrc files from 3.55 firmware that we thougth could be considered as a "standard" firmware version to work with and the example tables started increasing in size, complexity, and mistakes too, at the same time we realized the same .qrc container is used in .raf and .p3t (there are at least 4 variations of the same container)

At some point the complete collection of .qrc files from all firmwares was made available (can be downloaded from the link above) and after a bit of analisys i realized the better one to use for the examples in wiki was rhm.qrc from firmware 1.00 (because only contains 5 files and his size is much smaller than the others so the examples in wiki could be smaller too)... this implyed mapping the file again and replacing all examples from the frontpage (long, boring, and problematic work because doesnt consists simply in erasing the old info, is needed to verify all you are erasing was wrong and in this case to give a reason why was wrong, and to be sure that you are improving the info instead of removing it)

This is why i decided to start mapping the whole rhm.qrc from 1.00 in my PC as an attempt to replace all the examples in frontpage later in a strike because there was too much differences in my notes compared with the notes in wiki, and at the same time to help me continue reversing the structure of the container. Initially the table i made contained the first 4 columns at the left: (Offset, Size, Example, Name) that are the important columns that needs to be included in the examples in the frontpage in wiki. The next column (notes) are calculations of offsets, sizes, or important notes for myself to understand the structure while reversing it, are not supposed to be needed and i guess could be explained later out of the table. The next columns was added later because are variations of the structure of the same container used by rhm.qrc (icontex.qrc from 2.00 firmware... a random example of a theme.ps3.... and coldboot.raf from firmware 2.70) are there temporally and needs to be moved out of the table later (mostly because his entry sizes are different than rhm.qrc so is not posible to display all them together in the same table)

The reason why i didnt published the table before is because his size, the differences with info in wiki, and the amount of temporall notes went out of controll, needs to be cropped in sections, and also because has been needed lot of hours to verify all, maybe for "you" is a big disaster but for me is the most accurate explain of the structure of this containers i have, and i would not like to see how the table is messed up by others because i need it... but well, now is public and this is a wiki so anyone can modify it but PLEASE in case of changing something give a good argument of why is needed the change, and make changes 1 by 1 (dont mix several important changes in a single edit) because is very hard to keep a record and verify all calculations. Keep in mind that the final purpose is to move all the info to the front page when verifyed or completed, so by now (as a pacific developing collaboration) i suggest to copypaste parts of this table to the frontpage and then modify the pasted copy in the frontpage if needed, also keep in mind there will be needed at some point to move all the info related with .QRC structure to a new common page about this container where will be included the container variations used with .P3T and .RAF

The table was made some months ago and i scared when i looked at it today, so i publish it now "exactly as it was at that date" (is not complete at all, and the names are a bit outdated, i know), if i publish it now is because the last wiki edits from cfwprophet have pushed me in looking at this again and seems to be the perfect timing for a polite edit-war

Default entry size is 60 bytes (0x3C), but the first area is special (seems to be the header of the data table), and there is a padding at the end of the tables

  • Offset (without the 0x40 header in all qrc files) ---> http://666kb.com/i/cib5c7q4y7rpcx9x1.gif
  • rhm.qrc v1.00 datatable ---> http://i.imgur.com/P9K2rYj.jpg
    • The hexeditor view is resized to a width of 0x3C, the marked lines are the 5 entries
    • At the start of the first line at top (the line not marked) has been added 4 bytes to be able to align the others to the correct width, this first line at top of the table is the header of the data table
rhm.qrc (v1.00)
Offset Size Example Name Notes icontex.qrc (v2.00) theme.p3t coldboot.raf (v2.70)
QRCF Header
0x00 0x04 QRCF Magic QRCF PT3F RAFO
0x04 0x04 00000110 Version 110 110 110
0x08 0x04 00000040 Data table absolute start offset 40 40 40
0x0C 0x04 00000164 Data table size without the padding at the end 1ECC 19E8 1288
0x10 0x04 000001B0 Filename table absolute start offset 1F10 1A30 12D0
0x14 0x04 00000071 Filename table size without the padding at the end 326 599 21C
0x18 0x04 00000230 Strings table absolute start offset 2240 1FD0 14F0
0x1C 0x04 0000001B Strings table size without the padding at the end 20 1CE 1B1
0x20 0x04 00000250 Integer array absolute start offset Overlapped 2260 (overlapped) 21A0 (overlapped) 16B0 (overlapped)
0x24 0x04 00000000 Integer array size Empty 0 0 0
0x28 0x04 00000250 Float array absolute start offset Overlapped 2260 (overlapped) 21A0 (overlapped) 16B0
0x2C 0x04 00000000 Float array size Empty 0 0 A0
0x30 0x04 00000250 File table absolute start offset Overlaps the previous 2 tables 2260 21A0 1750
0x34 0x04 00000DD0 File table size Overlaps the previous 2 tables AA7F0 149890 18F9F0
0x38 0x04 00000000 Unknown area absolute start offset Not used 0 0
0x3C 0x04 00000000 Unknown area size Empty 0 0
Data Table (first colored area is the header of the data table)
0x40 0x04 00000000 always 0 ? 0 0 0
0x44 0x04 00000000 0=?, 1=? 0 0 1
0x48 0x04 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
0x4C 0x04 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
0x50 0x04 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
0x54 0x04 0000001C data table entry block 1 length 28 bytes (7 chunks of 4 bytes) 1C 1C 2C (11 chunks of 4 bytes)
0x58 0x04 0000001C data table entry block 2 length 28 bytes (7 chunks of 4 bytes) 1C 19CC FB0
0x5C 0x04 00000004 data table entry block 3 length 4 (1 chunk of 4 bytes) 4 6 4
0x60 0x04 00000000 data table entry block 4 length ? 0=?, 2=? 0 0 2
0x64 0x04 00000000 data table entry block 5 length ? 0 0 3F800000
0x68 0x04 FFFFFFFF data table entry block 6 length ? FFFFFFFF FFFFFFFF 0
0x6C 0x04 FFFFFFFF data table entry block 7 length ? FFFFFFFF 141C C
0x70 0x04 00000038 first data table entry, start offset (relative to data table start offset) 0x40 + 0x38 = 0x78 38 38 4
0x74 0x04 00000128 last data table entry, start offset (relative to data table start offset) 0x40 + 0x128 = 0x168 1E80 13D0 0
0x78 0x04 0000000F F 10 FFFFFFFF
0x7C 0x04 00000002 3 3 750
0x80 0x04 0000001C 1C 1C 88 ---first entry---
0x84 0x04 FFFFFFFF previous data table entry, start offset (relative to data table start offset) first entry mark (FFFFFFFF) FFFFFFFF FFFFFFFF 714 ---last entry---
0x88 0x04 00000074 next data table entry, start offset (relative to data table start offset) 0x40 + 0x74 = 0xB4 84 84 12
0x8C 0x04 FFFFFFFF FFFFFFFF FFFFFFFF 1
0x90 0x04 FFFFFFFF FFFFFFFF FFFFFFFF 1
0x94 0x04 00000014 14 15 0
0x98 0x04 00000006 6 6 1D
0x9C 0x04 00000000 1st file, start offset (relative to file table start offset) 0x250 + 0x0 = 0x250 0 0 1
0xA0 0x04 00000150 1st file, size 15FF 29BB 2
0xA4 0x04 00000018 18 19 0
0xA8 0x04 00000007 7 7 27
0xAC 0x04 00000000 1st filename, start offset (relative to filename table start offset) 0x1B0 + 0x0 = 0x1B0 0 0 1
0xB0 0x04 00000000 0 0 1
0xB4 0x04 0000000F 1B 1C 0
0xB8 0x04 00000002 1 1 32
0xBC 0x04 0000001C 55D5 (size uncompressed?) 10080 1
0xC0 0x04 00000038 previous data table entry, start offset (relative to data table start offset) 0x40 + 0x38 = 0x78 0 0 6
0xC4 0x04 000000B0 next data table entry, start offset (relative to data table start offset) 0x40 + 0xB0 = 0xF0 F --entry start-- 10 --entry start-- 0
0xC8 0x04 FFFFFFFF 3 3 3C --entry start--
0xCC 0x04 FFFFFFFF 1C 1C C
0xD0 0x04 00000014 38 --previous entry-- 38 --previous entry-- 2C
0xD4 0x04 00000006 D0 --next entry-- D0 --next entry-- FFFFFFFF --previous entry--
0xD8 0x04 00000150 2th file, start offset (relative to file table start offset) 0x250 + 0x150 = 0x3A0 FFFFFFFF FFFFFFFF 164 --next entry--
0xDC 0X04 000000E0 2th file, size FFFFFFFF FFFFFFFF FFFFFFFF
0xE0 0x04 00000018 14 15 FFFFFFFF
0xE4 0x04 00000007 6 6 42
0xE8 0x04 00000016 2th filename, start offset (relative to filename table start offset) 0x1B0 + 0x16 = 0x1C6 1600 ---file start--- 29C0 ---file start--- 5
0xEC 0x04 00000000 1B51 ---file size--- 2500 ---file size--- 0
0xF0 0x04 0000000F 18 19 4
0xF4 0x04 00000002 7 7 4D
0xF8 0x04 0000001C 7 ---filename start--- E ---filename start--- 5
0xFC 0x04 00000074 previous data table entry, start offset (relative to data table start offset) 0x40 + 0x74 = 0xB4 0 0 4
0x100 0x04 000000EC next data table entry, start offset (relative to data table start offset) 0x40 + 0xEC = 0x12C 1B 1C 3
0x104 0x04 FFFFFFFF 1 1 53
0x108 0x04 FFFFFFFF 155D4 10080 5
0x10C 0x04 00000014 0 0 7
0x110 0x04 00000006 F --entry start-- 10 --entry start-- 2
0x114 0x04 00000230 3th file, start offset (relative to file table start offset) 0x250 + 0x230 = 0x480 3 5D
0x118 0x04 00000120 3th file, size 1C 5
0x11C 0x04 00000018
0x120 0x04 00000007
0x124 0x04 0000002C 3th filename, start offset (relative to filename table start offset) 0x1B0 + 0x2C = 0x1DC
0x128 0x04 00000000
0x12C 0x04 0000000F
0x130 0x04 00000002
0x134 0x04 0000001C
0x138 0x04 000000B0 previous data table entry, start offset (relative to data table start offset) 0x40 + 0xB0 = 0xF0
0x13C 0x04 00000128 next data table entry, start offset (relative to data table start offset) 0x40 + 0x128 = 0x168
0x140 0x04 FFFFFFFF
0x144 0x04 FFFFFFFF
0x148 0x04 00000014
0x14C 0x04 00000006
0x150 0x04 00000350 4th file, start offset (relative to file table start offset) 0x250 + 0x350 = 0x5A0
0x154 0x04 000001F0 4th file, size
0x158 0x04 00000018
0x15C 0x04 00000007
0x160 0x04 00000041 4th filename, start offset (relative to filename table start offset) 0x1B0 + 0x41 = 0x1F1
0x164 0x04 00000000
0x168 0x04 0000000F
0x16C 0x04 00000002
0x170 0x04 0000001C
0x174 0x04 000000EC previous data table entry, start offset (relative to data table start offset) 0x40 + 0xEC = 0x12C
0x178 0x04 FFFFFFFF next data table entry, start offset (relative to data table start offset) last entry mark (FFFFFFFF)
0x17C 0x04 FFFFFFFF
0x180 0x04 FFFFFFFF
0x184 0x04 00000014
0x188 0x04 00000006
0x18C 0x04 00000540 5th file, start offset (relative to file table start offset) 0x250 + 0x540 = 0x790
0x190 0x04 00000890 5th file, size
0x194 0x04 00000018
0x198 0x04 00000007
0x19C 0x04 00000059 5th filename, start offset (relative to filename table start offset) 0x1B0 + 0x59 = 0x209
0x1A0 0x04 00000000
0x1A4 0x0C 00000000... padding to align to a multiply of 0x10 3C ---entry start---
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
0x221 0xF 00000000... padding to align the filename table to a multiply of 0x10
Strings table
0x230 0x1B qrc.file-table.file.src.id Container type identifyer ? qrc.file-table.file.src.id.size
0x24B 0x5 00000000... padding to align the filename table to a multiply of 0x10
File Table
0x250 0x150 00001B5C... 1st file
0x3A0 0x1E0 00001B5B... 2nd file
0x480 0x120 00001B5C... 3rd file
0x5A0 0x1F0 00001B5C... 4th file
0x790 0x890 00001B5B... 5th file

rhm.qrc (from firmware 1.00)

Offset(h) 00       04       08       0C

00000000  51524346 00000110 00000040 00000164  [email protected]
00000010  000001B0 00000071 00000230 0000001B  ...°...q...0....
00000020  00000250 00000000 00000250 00000000  ...P.......P....
00000030  00000250 00000DD0 00000000 00000000  ...P...Ð........
00000040  00000000 00000000 FFFFFFFF FFFFFFFF  ........ÿÿÿÿÿÿÿÿ
00000050  FFFFFFFF 0000001C 0000001C 00000004  ÿÿÿÿ............
00000060  00000000 00000000 FFFFFFFF FFFFFFFF  ........ÿÿÿÿÿÿÿÿ
00000070  00000038 00000128 0000000F 00000002  ...8...(........
00000080  0000001C FFFFFFFF 00000074 FFFFFFFF  ....ÿÿÿÿ...tÿÿÿÿ
00000090  FFFFFFFF 00000014 00000006 00000000  ÿÿÿÿ............
000000A0  00000150 00000018 00000007 00000000  ...P............
000000B0  00000000 0000000F 00000002 0000001C  ................
000000C0  00000038 000000B0 FFFFFFFF FFFFFFFF  ...8...°ÿÿÿÿÿÿÿÿ
000000D0  00000014 00000006 00000150 000000E0  ...........P...à
000000E0  00000018 00000007 00000016 00000000  ................
000000F0  0000000F 00000002 0000001C 00000074  ...............t
00000100  000000EC FFFFFFFF FFFFFFFF 00000014  ...ìÿÿÿÿÿÿÿÿ....
00000110  00000006 00000230 00000120 00000018  .......0... ....
00000120  00000007 0000002C 00000000 0000000F  .......,........
00000130  00000002 0000001C 000000B0 00000128  ...........°...(
00000140  FFFFFFFF FFFFFFFF 00000014 00000006  ÿÿÿÿÿÿÿÿ........
00000150  00000350 000001F0 00000018 00000007  ...P...ð........
00000160  00000041 00000000 0000000F 00000002  ...A............
00000170  0000001C 000000EC FFFFFFFF FFFFFFFF  .......ìÿÿÿÿÿÿÿÿ
00000180  FFFFFFFF 00000014 00000006 00000540  ÿÿÿÿ...........@
00000190  00000890 00000018 00000007 00000059  ...............Y
000001A0  00000000 00000000 00000000 00000000  ................
000001B0  00000038 6C69622F 72686D2F 436C6561  ...8lib/rhm/Clea
000001C0  722E6670 6F000000 00746C69 622F7268  r.fpo....tlib/rh
000001D0  6D2F436C 6561722E 76706F00 000000B0  m/Clear.vpo....°
000001E0  6C69622F 72686D2F 436F7079 2E66706F  lib/rhm/Copy.fpo
000001F0  00000000 EC6C6962 2F72686D 2F646566  ....ìlib/rhm/def
00000200  61756C74 2E66706F 00000001 286C6962  ault.fpo....(lib
00000210  2F72686D 2F646566 61756C74 2E76706F  /rhm/default.vpo
00000220  00000000 00000000 00000000 00000000  ................
00000230  71726300 66696C65 2D746162 6C650066  qrc.file-table.f
00000240  696C6500 73726300 69640000 00000000  ile.src.id......
00000250  00001B5C 00000006 00000150 00000003  ...\.......P....
00000260  00000020 000000F0 00000040 00000110  ... ...ð...@....
00000270  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000280  000000BC 00000000 000000B0 00000000  ...¼.......°....
00000290  00001001 00000000 00000001 00000000  ................
000002A0  00000418 00000AC5 00001005 FFFFFFFF  .......Å....ÿÿÿÿ
000002B0  000000CC 00000000 00000000 000000C6  ...Ì...........Æ
000002C0  00001002 FFFFFFFF 00000001 00000000  ....ÿÿÿÿ........
000002D0  00000418 00000AC6 00001005 FFFFFFFF  .......Æ....ÿÿÿÿ
000002E0  000000DC 00000000 00000000 000000D5  ...Ü...........Õ
000002F0  00001002 FFFFFFFF 00000001 00000000  ....ÿÿÿÿ........
00000300  00000002 00000030 00000010 5F436C65  .......0...._Cle
00000310  6172436F 6C00434F 4C4F5200 6D61696E  arCol.COLOR.main
00000320  2E636F6C 00434F4C 4F523100 6D61696E  .col.COLOR1.main
00000330  2E636F6C 31000000 00000000 00000000  .col1...........
00000340  00000004 00000000 00000000 0000FFFF  ..............ÿÿ
00000350  00000300 00000000 00000000 00000000  ................
00000360  1E000100 C8021C9D C8000001 C8000001  ....È...È...È...
00000370  00000000 00000000 00000000 00000000  ................
00000380  1E050100 C8021C9D C8000001 C8000001  ....È...È...È...
00000390  00000000 00000000 00000000 00000000  ................
000003A0  00001B5B 00000006 000000E0 00000002  ...[.......à....
000003B0  00000020 000000B0 00000010 000000D0  ... ...°.......Ð
000003C0  00000418 00000841 00001005 FFFFFFFF  .......A....ÿÿÿÿ
000003D0  00000089 00000000 00000000 00000080  ...‰...........€
000003E0  00001001 00000000 00000001 00000000  ................
000003F0  00000418 000008C3 00001005 FFFFFFFF  .......Ã....ÿÿÿÿ
00000400  00000099 00000000 00000000 00000090  ...™............
00000410  00001002 00000001 00000001 00000000  ................
00000420  504F5349 54494F4E 00706F73 5F696E00  POSITION.pos_in.
00000430  504F5349 54494F4E 00706F73 5F6F7574  POSITION.pos_out
00000440  00000000 00000000 00000000 00000000  ................
00000450  00000001 00000000 00000001 00000001  ................
00000460  00000000 00000000 00000000 00000000  ................
00000470  401F9C6C 0040000D 8106C083 6041FF81  @.œl.@....Àƒ`Aÿ.
00000480  00001B5C 00000006 00000120 00000003  ...\....... ....
00000490  00000020 000000F0 00000010 00000110  ... ...ð........
000004A0  00000417 00000C94 00001005 FFFFFFFF  .......”....ÿÿÿÿ
000004B0  000000BA 00000000 00000000 000000B0  ...º...........°
000004C0  00001001 00000000 00000001 00000000  ................
000004D0  0000042A 00000800 00001006 FFFFFFFF  ...*........ÿÿÿÿ
000004E0  000000CC 00000000 00000000 000000C3  ...Ì...........Ã
000004F0  00001001 00000001 00000001 00000000  ................
00000500  00000418 00000AC5 00001005 FFFFFFFF  .......Å....ÿÿÿÿ
00000510  000000DB 00000000 00000000 000000D5  ...Û...........Õ
00000520  00001002 FFFFFFFF 00000001 00000000  ....ÿÿÿÿ........
00000530  54455843 4F4F5244 30007465 78636F6F  TEXCOORD0.texcoo
00000540  72640054 4558554E 49543000 5F436F70  rd.TEXUNIT0._Cop
00000550  79546578 00434F4C 4F52006D 61696E2E  yTex.COLOR.main.
00000560  636F6C00 00000000 00000000 00000000  col.............
00000570  00000001 00004000 00000000 0001FFFE  ......@.......ÿþ
00000580  00000200 00000000 00000000 00000000  ................
00000590  9E011700 C8011C9D C8000001 C8003FE1  ž...È...È...È.?á
000005A0  00001B5C 00000006 000001F0 00000005  ...\.......ð....
000005B0  00000020 00000170 00000060 00000190  ... ...p...`....
000005C0  00000418 00000AC5 00001005 FFFFFFFF  .......Å....ÿÿÿÿ
000005D0  00000117 00000000 00000000 00000110  ................
000005E0  00001001 00000000 00000001 00000000  ................
000005F0  00000418 00000C94 00001005 FFFFFFFF  .......”....ÿÿÿÿ
00000600  00000128 00000000 00000000 0000011E  ...(............
00000610  00001001 00000001 00000001 00000000  ................
00000620  00000418 00000AC5 00001005 FFFFFFFF  .......Å....ÿÿÿÿ
00000630  00000136 00000000 00000000 0000012F  ...6.........../
00000640  00001002 00000002 00000001 00000000  ................
00000650  0000042A 00000800 00001006 FFFFFFFF  ...*........ÿÿÿÿ
00000660  00000147 00000000 00000000 0000013E  ...G...........>
00000670  00001001 00000003 00000001 00000000  ................
00000680  00000415 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000690  00000158 00000000 00000150 00000000  ...X.......P....
000006A0  00001001 00000004 00000001 00000000  ................
000006B0  434F4C4F 52300063 6F6C5F69 6E005445  COLOR0.col_in.TE
000006C0  58434F4F 52443000 7465785F 696E0043  XCOORD0.tex_in.C
000006D0  4F4C4F52 3000636F 6C5F6F75 74005445  OLOR0.col_out.TE
000006E0  58554E49 5430005F 54657800 00000000  XUNIT0._Tex.....
000006F0  00000001 00000050 5F546578 456E6162  .......P_TexEnab
00000700  6C656400 00000000 00000000 00000000  led.............
00000710  00000006 00004005 00000000 0001FFFE  ......@.......ÿþ
00000720  00000200 00000000 00000000 00000000  ................
00000730  3F800140 C8011C9D C8000001 C8003FE1  ?€.@È...È...È.?á
00000740  9E021700 C8011C95 C8000001 C8003FE1  ž...È..•È...È.?á
00000750  1E020400 C9001C9D C8040001 C9000003  ....É...È...É...
00000760  1E7E7E00 C8001C9D C8000001 C8000001  .~~.È...È...È...
00000770  1E010400 C8041C9D 00020000 C9000001  ....È.......É...
00000780  00000000 00000000 00000000 00000000  ................
00000790  00001B5B 00000006 00000890 0000001D  ...[............
000007A0  00000020 000007F0 00000080 00000810  ... ...ð...€....
000007B0  00000418 00000841 00001005 FFFFFFFF  .......A....ÿÿÿÿ
000007C0  0000059A 00000000 00000000 00000590  ...š............
000007D0  00001001 00000000 00000001 00000000  ................
000007E0  00000418 00000844 00001005 FFFFFFFF  .......D....ÿÿÿÿ
000007F0  000005A8 00000000 00000000 000005A1  ...¨...........¡
00000800  00001001 00000001 00000001 00000000  ................
00000810  00000418 00000843 00001005 FFFFFFFF  .......C....ÿÿÿÿ
00000820  000005B6 00000000 00000000 000005AF  ...¶...........¯
00000830  00001001 00000002 00000000 00000000  ................
00000840  00000418 00000849 00001005 FFFFFFFF  .......I....ÿÿÿÿ
00000850  000005C7 00000000 00000000 000005BD  ...Ç...........½
00000860  00001001 00000003 00000001 00000000  ................
00000870  00000418 000008C3 00001005 FFFFFFFF  .......Ã....ÿÿÿÿ
00000880  000005D8 00000000 00000000 000005CE  ...Ø...........Î
00000890  00001002 00000004 00000001 00000000  ................
000008A0  00000418 000008C5 00001005 FFFFFFFF  .......Å....ÿÿÿÿ
000008B0  000005E7 00000000 00000000 000005E0  ...ç...........à
000008C0  00001002 00000005 00000001 00000000  ................
000008D0  00000418 00000C94 00001005 FFFFFFFF  .......”....ÿÿÿÿ
000008E0  000005F9 00000000 00000000 000005EF  ...ù...........ï
000008F0  00001002 00000006 00000001 00000000  ................
00000900  00000417 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000910  00000601 00000000 00000000 00000000  ................
00000920  00001001 00000007 00000000 00000000  ................
00000930  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000940  00000611 00000000 00000000 00000000  ................
00000950  00001001 00000008 00000000 00000000  ................
00000960  00000415 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000970  0000061E 00000000 00000000 00000000  ................
00000980  00001001 00000009 00000000 00000000  ................
00000990  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
000009A0  00000632 00000000 00000000 00000000  ...2............
000009B0  00001001 0000000A 00000000 00000000  ................
000009C0  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
000009D0  0000063B 00000000 00000000 00000000  ...;............
000009E0  00001001 0000000B 00000000 00000000  ................
000009F0  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000A00  00000644 00000000 00000000 00000000  ...D............
00000A10  00001001 0000000C 00000000 00000000  ................
00000A20  00000428 00000882 00001006 00000100  ...(...‚........
00000A30  0000064E 00000000 00000000 00000000  ...N............
00000A40  00001001 0000000D 00000001 00000000  ................
00000A50  00000418 00000882 00001006 00000100  .......‚........
00000A60  00000663 00000000 00000000 00000000  ...c............
00000A70  00001001 0000000D 00000001 00000000  ................
00000A80  00000418 00000882 00001006 00000101  .......‚........
00000A90  0000067B 00000000 00000000 00000000  ...{............
00000AA0  00001001 0000000D 00000001 00000000  ................
00000AB0  00000418 00000882 00001006 00000102  .......‚........
00000AC0  00000693 00000000 00000000 00000000  ...“............
00000AD0  00001001 0000000D 00000001 00000000  ................
00000AE0  00000418 00000882 00001006 00000103  .......‚........
00000AF0  000006AB 00000000 00000000 00000000  ...«............
00000B00  00001001 0000000D 00000001 00000000  ................
00000B10  00000428 00000CB8 00001006 FFFFFFFF  ...(...¸....ÿÿÿÿ
00000B20  000006C3 00000000 00000000 00000000  ...Ã............
00000B30  00001001 0000000E 00000000 00000000  ................
00000B40  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000B50  000006DE 00000000 00000000 00000000  ...Þ............
00000B60  00001001 0000000E 00000000 00000000  ................
00000B70  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000B80  000006FC 00000000 00000000 00000000  ...ü............
00000B90  00001001 0000000E 00000000 00000000  ................
00000BA0  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000BB0  0000071A 00000000 00000000 00000000  ................
00000BC0  00001001 0000000E 00000000 00000000  ................
00000BD0  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000BE0  00000738 00000000 00000000 00000000  ...8............
00000BF0  00001001 0000000E 00000000 00000000  ................
00000C00  00000428 00000CB8 00001006 FFFFFFFF  ...(...¸....ÿÿÿÿ
00000C10  00000756 00000000 00000000 00000000  ...V............
00000C20  00001001 0000000F 00000000 00000000  ................
00000C30  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000C40  00000768 00000000 00000000 00000000  ...h............
00000C50  00001001 0000000F 00000000 00000000  ................
00000C60  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000C70  0000077D 00000000 00000000 00000000  ...}............
00000C80  00001001 0000000F 00000000 00000000  ................
00000C90  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000CA0  00000792 00000000 00000000 00000000  ...’............
00000CB0  00001001 0000000F 00000000 00000000  ................
00000CC0  00000418 00000CB8 00001006 FFFFFFFF  .......¸....ÿÿÿÿ
00000CD0  000007A7 00000000 00000000 00000000  ...§............
00000CE0  00001001 0000000F 00000000 00000000  ................
00000CF0  00000443 00000882 00001007 000001D3  ...C...‚.......Ó
00000D00  000007D0 000007C0 00000000 00000000  ...Ð...À........
00000D10  00001001 FFFFFFFE 00000001 00000000  ....ÿÿÿþ........
00000D20  504F5349 54494F4E 3000706F 735F696E  POSITION0.pos_in
00000D30  00434F4C 4F523000 636F6C5F 696E004E  .COLOR0.col_in.N
00000D40  4F524D41 4C006E6F 725F696E 00544558  ORMAL.nor_in.TEX
00000D50  434F4F52 44300074 65785F69 6E00504F  COORD0.tex_in.PO
00000D60  53495449 4F4E3000 706F735F 6F757400  SITION0.pos_out.
00000D70  434F4C4F 52300063 6F6C5F6F 75740054  COLOR0.col_out.T
00000D80  4558434F 4F524430 00746578 5F6F7574  EXCOORD0.tex_out
00000D90  005F4C69 67687444 69726563 74696F6E  ._LightDirection
00000DA0  005F476C 6F62616C 436F6C6F 72005F47  ._GlobalColor._G
00000DB0  6C6F6261 6C436F6C 6F72456E 61626C65  lobalColorEnable
00000DC0  64005F41 6D626961 6E74005F 44696666  d._Ambiant._Diff
00000DD0  75736500 5F537065 63756C61 72005F4D  use._Specular._M
00000DE0  6F64656C 76696577 50726F6A 65637469  odelviewProjecti
00000DF0  6F6E005F 4D6F6465 6C766965 7750726F  on._ModelviewPro
00000E00  6A656374 696F6E5B 305D005F 4D6F6465  jection[0]._Mode
00000E10  6C766965 7750726F 6A656374 696F6E5B  lviewProjection[
00000E20  315D005F 4D6F6465 6C766965 7750726F  1]._ModelviewPro
00000E30  6A656374 696F6E5B 325D005F 4D6F6465  jection[2]._Mode
00000E40  6C766965 7750726F 6A656374 696F6E5B  lviewProjection[
00000E50  335D005F 4D6F6465 6C766965 77496E76  3]._ModelviewInv
00000E60  65727365 5472616E 73706F73 65005F4D  erseTranspose._M
00000E70  6F64656C 76696577 496E7665 72736554  odelviewInverseT
00000E80  72616E73 706F7365 5B305D00 5F4D6F64  ranspose[0]._Mod
00000E90  656C7669 6577496E 76657273 65547261  elviewInverseTra
00000EA0  6E73706F 73655B31 5D005F4D 6F64656C  nspose[1]._Model
00000EB0  76696577 496E7665 72736554 72616E73  viewInverseTrans
00000EC0  706F7365 5B325D00 5F4D6F64 656C7669  pose[2]._Modelvi
00000ED0  6577496E 76657273 65547261 6E73706F  ewInverseTranspo
00000EE0  73655B33 5D005F54 65787475 72655472  se[3]._TextureTr
00000EF0  616E7366 6F726D00 5F546578 74757265  ansform._Texture
00000F00  5472616E 73666F72 6D5B305D 005F5465  Transform[0]._Te
00000F10  78747572 65547261 6E73666F 726D5B31  xtureTransform[1
00000F20  5D005F54 65787475 72655472 616E7366  ]._TextureTransf
00000F30  6F726D5B 325D005F 54657874 75726554  orm[2]._TextureT
00000F40  72616E73 666F726D 5B335D00 00000000  ransform[3].....
00000F50  3F800000 00000000 00000000 00000000  ?€..............
00000F60  696E7465 726E616C 2D636F6E 7374616E  internal-constan
00000F70  742D3000 00000000 00000000 00000000  t-0.............
00000F80  00000008 00000000 00000001 00000109  ................
00000F90  00004001 00000000 00000000 00000000  ..@.............
00000FA0  401F9C6C 0040030D 8106C083 6041FF84  @.œl.@....Àƒ`Aÿ„
00000FB0  401F9C6C 0040080D 8106C083 6041FF9C  @.œl.@....Àƒ`Aÿœ
00000FC0  00001C6C 005D3000 0186C083 60403FFC  ...l.]0..†Àƒ`@?ü
00000FD0  00001C6C 0040000C 0106C083 6041DFFC  ...l.@....Àƒ`Aßü
00000FE0  401F9C6C 01D0300D 8086C0C3 60403F80  @.œl.Ð0.€†ÀÃ`@?€
00000FF0  401F9C6C 01D0200D 8086C0C3 60405F80  @.œl.Ð .€†ÀÃ`@_€
00001000  401F9C6C 01D0100D 8086C0C3 60409F80  @.œl.Ð..€†ÀÃ`@Ÿ€
00001010  401F9C6C 01D0000D 8086C0C3 60411F81  @.œl.Ð..€†ÀÃ`A..