Talk:Qt Resource Container (QRC): Difference between revisions
Line 145: | Line 145: | ||
}} | }} | ||
Default entry size is 60 bytes (0x3C), but the first | 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 | *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 | *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 | **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 | **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 | ||
{| class="wikitable" style="font-size:x-small;" | {| class="wikitable" style="font-size:x-small;" | ||
Line 190: | Line 190: | ||
| 0x3C || 0x04 || 00000000 || Unknown area size || ''Empty'' || || || | | 0x3C || 0x04 || 00000000 || Unknown area size || ''Empty'' || || || | ||
|- | |- | ||
! colspan="4" | Data Table | ! colspan="4" | Data Table (first colored area is the header of the data table) | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x40 || 0x04 || 00000000 || || | | 0x40 || 0x04 || 00000000 || || always 0 ? || 0 || 0 || 0 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x44 || 0x04 || 00000000 || || 0=?, 1=? || 0 || 0 || 1 | | 0x44 || 0x04 || 00000000 || || 0=?, 1=? || 0 || 0 || 1 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x48 || 0x04 || FFFFFFFF || || | | 0x48 || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || FFFFFFFF | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x4C || 0x04 || FFFFFFFF || || | | 0x4C || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || FFFFFFFF | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x50 || 0x04 || FFFFFFFF || || | | 0x50 || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || FFFFFFFF | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x54 || 0x04 || 0000001C || entry block 1 length || 7 chunks of 4 bytes | | 0x54 || 0x04 || 0000001C || data table entry block 1 length || 28 bytes (7 chunks of 4 bytes) || 1C || 1C || 2C (11 chunks of 4 bytes) | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x58 || 0x04 || 0000001C || entry block 2 length || 7 chunks of 4 bytes | | 0x58 || 0x04 || 0000001C || data table entry block 2 length || 28 bytes (7 chunks of 4 bytes) || 1C || 19CC || FB0 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x5C || 0x04 || 00000004 || entry block 3 length || 1 chunk of 4 bytes || 4 || 6 || 4 | | 0x5C || 0x04 || 00000004 || data table entry block 3 length || 4 (1 chunk of 4 bytes) || 4 || 6 || 4 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x60 || 0x04 || 00000000 || entry block 4 length ? || 0=?, 2=? || 0 || 2 || 2 | | 0x60 || 0x04 || 00000000 || data table entry block 4 length ? || 0=?, 2=? || 0 || 2 || 2 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x64 || 0x04 || 00000000 || entry block 5 length ? || || 0 || 3F8 || 3F8 | | 0x64 || 0x04 || 00000000 || data table entry block 5 length ? || || 0 || 3F8 || 3F8 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x68 || 0x04 || FFFFFFFF || || | | 0x68 || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || 0 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x6C || 0x04 || FFFFFFFF || || | | 0x6C || 0x04 || FFFFFFFF || || || FFFFFFFF || 141C || C | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x70 || 0x04 || 00000038 || first data, start offset (relative to data table start offset) || 0x40 + 0x38 = 0x78 || 38 || 38 || 4 | | 0x70 || 0x04 || 00000038 || first data table entry, start offset (relative to data table start offset) || 0x40 + 0x38 = 0x78 || 38 || 38 || 4 | ||
|- | |- {{cellcolors|#cef2ce}} | ||
| 0x74 || 0x04 || 00000128 || last data, start offset (relative to data table start offset) || 0x40 + 0x128 = 0x168 || 1E80 || 13D0 || 0 | | 0x74 || 0x04 || 00000128 || last data table entry, start offset (relative to data table start offset) || 0x40 + 0x128 = 0x168 || 1E80 || 13D0 || 0 | ||
|- bgcolor="#cccccc" | |- bgcolor="#cccccc" | ||
| colspan="4" | | | colspan="4" | | ||
Line 228: | Line 228: | ||
| 0x80 || 0x04 || 0000001C || || || 1C || 88 || 88 ---first data--- | | 0x80 || 0x04 || 0000001C || || || 1C || 88 || 88 ---first data--- | ||
|- | |- | ||
| 0x84 || 0x04 || FFFFFFFF || previous data, start offset (relative to data table start offset) || '''first entry mark''' || FFFFFFFF --previous data-- || FFFFFFFF || 714 ---last data--- | | 0x84 || 0x04 || FFFFFFFF || previous data table entry, start offset (relative to data table start offset) || '''first entry mark (FFFFFFFF)''' || FFFFFFFF --previous data-- || FFFFFFFF || 714 ---last data--- | ||
|- | |- | ||
| 0x88 || 0x04 || 00000074 || next data, start offset (relative to data table start offset) || 0x40 + 0x74 = 0xB4 || 84 --next data-- || 84 || 12 | | 0x88 || 0x04 || 00000074 || next data table entry, start offset (relative to data table start offset) || 0x40 + 0x74 = 0xB4 || 84 --next data-- || 84 || 12 | ||
|- | |- | ||
| 0x8C || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || 1 | | 0x8C || 0x04 || FFFFFFFF || || || FFFFFFFF || FFFFFFFF || 1 | ||
Line 260: | Line 260: | ||
| 0xBC || 0x04 || 0000001C || || || 55D5 (size uncompressed?) || || 1 | | 0xBC || 0x04 || 0000001C || || || 55D5 (size uncompressed?) || || 1 | ||
|- | |- | ||
| 0xC0 || 0x04 || 00000038 || previous data, start offset (relative to data table start offset) || 0x40 + 0x38 = 0x78 || 0 || 0 || 6 | | 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, start offset (relative to data table start offset) || 0x40 + 0xB0 = 0xF0 || F --entry start-- || 10 --entry start-- || 0 | | 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-- | | 0xC8 || 0x04 || FFFFFFFF || || || 3 || 3 || 3C --entry start-- | ||
Line 292: | Line 292: | ||
| 0xF8 || 0x04 || 0000001C || || || 7 ---filename start--- || E ---filename start--- || 5 | | 0xF8 || 0x04 || 0000001C || || || 7 ---filename start--- || E ---filename start--- || 5 | ||
|- | |- | ||
| 0xFC || 0x04 || 00000074 || previous data, start offset (relative to data table start offset) || 0x40 + 0x74 = 0xB4 || 0 || 0 || 4 | | 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, start offset (relative to data table start offset) || 0x40 + 0xEC = 0x12C || 1B || 1C || 3 | | 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 | | 0x104 || 0x04 || FFFFFFFF || || || 1 || 1 || 53 | ||
Line 324: | Line 324: | ||
| 0x134 || 0x04 || 0000001C || | | 0x134 || 0x04 || 0000001C || | ||
|- | |- | ||
| 0x138 || 0x04 || 000000B0 || previous data, start offset (relative to data table start offset) || 0x40 + 0xB0 = 0xF0 | | 0x138 || 0x04 || 000000B0 || previous data table entry, start offset (relative to data table start offset) || 0x40 + 0xB0 = 0xF0 | ||
|- | |- | ||
| 0x13C || 0x04 || 00000128 || next data, start offset (relative to data table start offset) || 0x40 + 0x128 = 0x168 | | 0x13C || 0x04 || 00000128 || next data table entry, start offset (relative to data table start offset) || 0x40 + 0x128 = 0x168 | ||
|- | |- | ||
| 0x140 || 0x04 || FFFFFFFF || | | 0x140 || 0x04 || FFFFFFFF || | ||
Line 356: | Line 356: | ||
| 0x170 || 0x04 || 0000001C || | | 0x170 || 0x04 || 0000001C || | ||
|- | |- | ||
| 0x174 || 0x04 || 000000EC || previous data, start offset (relative to data table start offset) || 0x40 + 0xEC = 0x12C | | 0x174 || 0x04 || 000000EC || previous data table entry, start offset (relative to data table start offset) || 0x40 + 0xEC = 0x12C | ||
|- | |- | ||
| 0x178 || 0x04 || FFFFFFFF || next data, start offset (relative to data table start offset) || '''last entry mark''' | | 0x178 || 0x04 || FFFFFFFF || next data table entry, start offset (relative to data table start offset) || '''last entry mark (FFFFFFFF)''' | ||
|- | |- | ||
| 0x17C || 0x04 || FFFFFFFF || | | 0x17C || 0x04 || FFFFFFFF || |
Revision as of 02:47, 8 June 2014
QRC filebase
- QRC from 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
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
- Corrections:
- Qt Framework
- 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
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)
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-warDefault 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
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 start offset | 40 | 40 | 40 | |
0x0C | 0x04 | 00000164 | Data table size | without the padding at the end | 1ECC | ||
0x10 | 0x04 | 000001B0 | Filename table start offset | 1F10 | |||
0x14 | 0x04 | 00000071 | Filename table size | without the padding at the end | 326 | ||
0x18 | 0x04 | 00000230 | Strings table start offset | 2240 | |||
0x1C | 0x04 | 0000001B | Strings table size | without the padding at the end | 20 | 1CE | 1B1 |
0x20 | 0x04 | 00000250 | Integer array start offset | Overlapped | 2260 | ||
0x24 | 0x04 | 00000000 | Integer array size | Empty | 0 | 0 | 0 |
0x28 | 0x04 | 00000250 | Float array start offset | Overlapped | 2260 | ||
0x2C | 0x04 | 00000000 | Float array size | Empty | 0 | 0 | A0 |
0x30 | 0x04 | 00000250 | File table start offset | Overlaps the previous 2 tables | 2260 | ||
0x34 | 0x04 | 00000DD0 | File table size | Overlaps the previous 2 tables | AA7F0 | ||
0x38 | 0x04 | 00000000 | Unknown area start offset | Not used | |||
0x3C | 0x04 | 00000000 | Unknown area size | Empty | |||
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 | 2 | 2 |
0x64 | 0x04 | 00000000 | data table entry block 5 length ? | 0 | 3F8 | 3F8 | |
0x68 | 0x04 | FFFFFFFF | FFFFFFFF | FFFFFFFF | 0 | ||
0x6C | 0x04 | FFFFFFFF | 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 | 88 | 88 ---first data--- | ||
0x84 | 0x04 | FFFFFFFF | previous data table entry, start offset (relative to data table start offset) | first entry mark (FFFFFFFF) | FFFFFFFF --previous data-- | FFFFFFFF | 714 ---last data--- |
0x88 | 0x04 | 00000074 | next data table entry, start offset (relative to data table start offset) | 0x40 + 0x74 = 0xB4 | 84 --next data-- | 84 | 12 |
0x8C | 0x04 | FFFFFFFF | FFFFFFFF | FFFFFFFF | 1 | ||
0x90 | 0x04 | FFFFFFFF | FFFFFFFF | FFFFFFFF | 1 | ||
0x94 | 0x04 | 00000014 | 14 | 15 | 0 | ||
0x98 | 0x04 | 00000006 | 6 | 1D | |||
0x9C | 0x04 | 00000000 | 1st file, start offset (relative to file table start offset) | 0x250 + 0x0 = 0x250 | 0 | 1 | |
0xA0 | 0x04 | 00000150 | 1st file, size | 15FF | 2 | ||
0xA4 | 0x04 | 00000018 | 18 | 19 | 0 | ||
0xA8 | 0x04 | 00000007 | 7 | 27 | |||
0xAC | 0x04 | 00000000 | 1st filename, start offset (relative to filename table start offset) | 0x1B0 + 0x0 = 0x1B0 | 0 | 1 | |
0xB0 | 0x04 | 00000000 | 0 | 1 | |||
0xB4 | 0x04 | 0000000F | 1B | 1C | 0 | ||
0xB8 | 0x04 | 00000002 | 1 | 1 | 32 | ||
0xBC | 0x04 | 0000001C | 55D5 (size uncompressed?) | 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 data-- | 38 --previous data-- | 2C | ||
0xD4 | 0x04 | 00000006 | D0 --next data-- | D0 --next data-- | FFFFFFFF --previous data-- | ||
0xD8 | 0x04 | 00000150 | 2th file, start offset (relative to file table start offset) | 0x250 + 0x150 = 0x3A0 | FFFFFFFF | FFFFFFFF | 164 --next data-- |
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 | 80 | 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 | 5D | ||
0x118 | 0x04 | 00000120 | 3th file, size | 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..