Editing Talk:Resource Container (RCO)
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 6: | Line 6: | ||
It seems all the RCO's of a specific firmware shares the same version (verifyed for firmware 4.76) and seems to be the version of the "rco set", or the version of the "rco tool" used to compile the whole "rco set". RCOmage v1.1.1 (latest stable) identifyes the version with a list of hardcoded values | It seems all the RCO's of a specific firmware shares the same version (verifyed for firmware 4.76) and seems to be the version of the "rco set", or the version of the "rco tool" used to compile the whole "rco set". RCOmage v1.1.1 (latest stable) identifyes the version with a list of hardcoded values | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
switch(rco->verId) { | switch(rco->verId) { | ||
case 0x70: fputs("1.0", fp); break; | case 0x70: fputs("1.0", fp); break; | ||
Line 24: | Line 24: | ||
Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106 | Example... sysconf_plugin.rco from PS3 firmware 2.00 with version 0x106 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x106"> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
Line 38: | Line 38: | ||
from [[system_plugin]].rco | from [[system_plugin]].rco | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<Image name="tex_optionmenu_bg" src=".\RCO 476 ofw\system_plugin\Images\tex_optionmenu_bg.gim" format="gim" compression="zlib" unknownByte="1" /> | <Image name="tex_optionmenu_bg" src=".\RCO 476 ofw\system_plugin\Images\tex_optionmenu_bg.gim" format="gim" compression="zlib" unknownByte="1" /> | ||
<Image name="tex_optionmenu_base" src=".\RCO 476 ofw\system_plugin\Images\tex_optionmenu_base.gim" format="gim" compression="zlib" unknownByte="1" /> | <Image name="tex_optionmenu_base" src=".\RCO 476 ofw\system_plugin\Images\tex_optionmenu_base.gim" format="gim" compression="zlib" unknownByte="1" /> | ||
Line 61: | Line 61: | ||
Is not specific for .GIM image format because other image formats uses it too, here are a couple of examples from newstore_plugin.rco where is used with .JPG and .PNG | Is not specific for .GIM image format because other image formats uses it too, here are a couple of examples from newstore_plugin.rco where is used with .JPG and .PNG | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<Image name="BackGround" src=".\RCO 476 ofw\newstore_plugin\Images\BackGround.jpg" format="jpg" compression="uncompressed" unknownByte="1" /> | <Image name="BackGround" src=".\RCO 476 ofw\newstore_plugin\Images\BackGround.jpg" format="jpg" compression="uncompressed" unknownByte="1" /> | ||
<Image name="ScrollButtonRich" src=".\RCO 476 ofw mod 5\newstore_plugin\Images\ScrollButtonRich.png" format="png" compression="uncompressed" unknownByte="1" /> | <Image name="ScrollButtonRich" src=".\RCO 476 ofw mod 5\newstore_plugin\Images\ScrollButtonRich.png" format="png" compression="uncompressed" unknownByte="1" /> | ||
Line 79: | Line 79: | ||
=Hashreports= | =Hashreports= | ||
==PS3 | ==PS3 all versions== | ||
all OFW 1.00-4.75 hashes: https://www.mirrorcreator.com/files/7KCMQKWQ/RCO-hashreport.7z_links <--- please someone convert this in a "human readable wiki table" | all OFW 1.00-4.75 hashes: https://www.mirrorcreator.com/files/7KCMQKWQ/RCO-hashreport.7z_links <--- please someone convert this in a "human readable wiki table" | ||
==PSP | ==PSP 6.61== | ||
*PSP 6.60 and 6.61 firmware contains 63 .rco files (same files for both firmwares). Two of them are specific for PSPgo model (bluetooth_plugin.rco, slide_plugin.rco) | *PSP 6.60 and 6.61 firmware contains 63 .rco files (same files for both firmwares). Two of them are specific for PSPgo model (bluetooth_plugin.rco, slide_plugin.rco) | ||
*Only 10 of them are compresed with ZLIB (dd_helper.rco, dnas_plugin.rco, htmlviewer_plugin.rco, lftv_rmc_univer3in1.rco, lftv_rmc_univer3in1_jp.rco, lftv_rmc_univertuner.rco, lftv_rmc_univertuner_jp.rco, lftv_tuner_jp_jp.rco, lftv_tuner_us_en.rco, oneseg_plugin.rco). All the others are compressed with RLZ (and RLZ decompression is not supported by rcomage, is needed to use Resurssiklunssi v0.3 to rebuild them) | *Only 10 of them are compresed with ZLIB (dd_helper.rco, dnas_plugin.rco, htmlviewer_plugin.rco, lftv_rmc_univer3in1.rco, lftv_rmc_univer3in1_jp.rco, lftv_rmc_univertuner.rco, lftv_rmc_univertuner_jp.rco, lftv_tuner_jp_jp.rco, lftv_tuner_us_en.rco, oneseg_plugin.rco). All the others are compressed with RLZ (and RLZ decompression is not supported by rcomage, is needed to use Resurssiklunssi v0.3 to rebuild them) | ||
Line 91: | Line 91: | ||
***The converted files will have '''minFirmwareVer="2.6"''' (the original value is lost in the conversion) | ***The converted files will have '''minFirmwareVer="2.6"''' (the original value is lost in the conversion) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
; Generated by QuickSFV v2.36 on 2015-12-09 at 04:49:59 | ; Generated by QuickSFV v2.36 on 2015-12-09 at 04:49:59 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 219: | Line 219: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
*PSP 6.60 and 6.61 firmware. RCO hashes after resurssiklunssi rebuild (cross option) | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
; Generated by QuickSFV v2.36 on 2015-12-13 at 03:40:27 | ; Generated by QuickSFV v2.36 on 2015-12-13 at 03:40:27 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 349: | Line 350: | ||
4fd833dc230d78d2827ad85f58685aa6 *resource\video_plugin_videotoolbar.rco | 4fd833dc230d78d2827ad85f58685aa6 *resource\video_plugin_videotoolbar.rco | ||
5b1e65248b962b983cf0553f662c2050 *resource\visualizer_plugin.rco | 5b1e65248b962b983cf0553f662c2050 *resource\visualizer_plugin.rco | ||
</syntaxhighlight> | </syntaxhighlight>}} | ||
*PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ) | *PSP firmware 1.00 contains only 21 .rco files (all them uses ZLIB, none of them uses RLZ) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="c"> | ||
; Generated by QuickSFV v2.36 on 2015-12-13 at 03:51:28 | ; Generated by QuickSFV v2.36 on 2015-12-13 at 03:51:28 | ||
; http://www.QuickSFV.org | ; http://www.QuickSFV.org | ||
Line 398: | Line 399: | ||
ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ef87b1df11ab6b00986b1ce6395066c4 *resource\video_plugin.rco | ||
87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | 87d878f00d9355b873adcac6f79927f6 *resource\video_plugin_videotoolbar.rco | ||
</syntaxhighlight> | </syntaxhighlight>}} | ||
=Examples (rcomage builds)= | =Examples (rcomage builds)= | ||
Line 409: | Line 410: | ||
The .xml below is the RCOXML source file used to create the .rco. The file '''image_test.gim''' is a dummy of 8 bytes filed with 8888888888888888 | The .xml below is the RCOXML source file used to create the .rco. The file '''image_test.gim''' is a dummy of 8 bytes filed with 8888888888888888 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | ||
<MainTree name="test"> | <MainTree name="test"> | ||
Line 692: | Line 693: | ||
This example is intended to replace the previous one (but by now i dont want to delete the previous one). It can help to see how the offsets are cummulated and the optional paddings to align to boundary | This example is intended to replace the previous one (but by now i dont want to delete the previous one). It can help to see how the offsets are cummulated and the optional paddings to align to boundary | ||
The .xml below is the RCOXML source file used to create the .rco. The file '''image2_test.gim''' is a dummy of 2 bytes filed with 2222 and the file '''image3_test.gim''' is a dummy of 3 bytes filed with 333333 | The .xml below is the RCOXML source file used to create the .rco. The file '''image2_test.gim''' is a dummy of 2 bytes filed with 2222 and the file '''image3_test.gim''' is a dummy of 3 bytes filed with 333333 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | ||
<MainTree name="test"> | <MainTree name="test"> | ||
Line 999: | Line 1,000: | ||
|} | |} | ||
=Examples (official | ==ObjectTree with 1 page and 1 plane== | ||
This is a basic example of how objecttree and animationtree (not files) stores his values inside the container. It can help to understand all the values related with the hierarchy relationship between parents/childrens/brothers, etc... | |||
The same structure (almost exactly) is used by '''xai_plugin.rco''' from any PS3 firmware version (1.00 up to 3.55 or so)... so this example will be converted to an official one | |||
{{Boxcode|content=<syntaxhighlight lang="xml"> | |||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130"> | |||
<MainTree name="test"> | |||
<ObjectTree> | |||
<Page name="page_test" pageMode="0x111" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="nothing"> | |||
<Plane name="plane_test" positionX="1" positionY="2" positionZ="3" colorScaleR="4" colorScaleG="5" colorScaleB="6" colorScaleA="7" sizeX="8" sizeY="9" sizeZ="10" sizeScaleX="11" sizeScaleY="12" sizeScaleZ="13" anchorMode="0x3" onInit="nothing" positionOverrideX="0x10" positionOverrideY="0x20" positionOverrideZ="0x30" sizeOverrideX="0x40" sizeOverrideY="0x50" sizeOverrideZ="0x60" planeImage="nothing" planeResizeMode="0x6"></Plane> | |||
</Page> | |||
</ObjectTree> | |||
</MainTree> | |||
</RcoFile> | |||
</syntaxhighlight>}} | |||
When compiled MD5: 8950DE68C7DD9BA5DD96F7F29D86EF17 | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000000 46 52 50 00 00 00 01 30 00 00 00 00 00 00 00 00 FRP....0........ | |||
00000010 00 00 00 A4 FF FF FF FF FF FF FF FF FF FF FF FF ...¤ÿÿÿÿÿÿÿÿÿÿÿÿ | |||
00000020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ | |||
00000030 00 00 00 CC FF FF FF FF 00 00 01 D4 00 00 00 00 ...Ìÿÿÿÿ...Ô.... | |||
00000040 00 00 01 D4 00 00 00 20 00 00 01 F4 00 00 00 04 ...Ô... ...ô.... | |||
00000050 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000060 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000070 00 00 01 CC 00 00 00 08 FF FF FF FF 00 00 00 00 ...Ì....ÿÿÿÿ.... | |||
00000080 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000090 FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF ÿÿÿÿ....ÿÿÿÿÿÿÿÿ | |||
000000A0 FF FF FF FF 01 01 00 00 00 00 00 00 00 00 00 00 ÿÿÿÿ............ | |||
000000B0 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 00 ...(............ | |||
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 ................ | |||
000000D0 FF FF FF FF 00 00 00 00 00 00 00 28 00 00 00 01 ÿÿÿÿ.......(.... | |||
000000E0 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 00 ...........(.... | |||
000000F0 00 00 00 00 08 01 00 00 00 00 00 08 00 00 00 28 ...............( | |||
00000100 00 00 00 4C 00 00 00 01 00 00 00 00 00 00 00 00 ...L............ | |||
00000110 00 00 00 28 00 00 00 00 00 00 00 00 11 01 00 00 ...(............ | |||
00000120 FF FF 00 00 FF FF FF FF FF FF 00 00 FF FF FF FF ÿÿ..ÿÿÿÿÿÿ..ÿÿÿÿ | |||
00000130 FF FF 00 00 FF FF FF FF FF FF 00 00 FF FF FF FF ÿÿ..ÿÿÿÿÿÿ..ÿÿÿÿ | |||
00000140 08 02 00 00 00 00 00 14 00 00 00 28 00 00 00 00 ...........(.... | |||
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4C ...............L | |||
00000160 00 00 00 00 00 00 00 00 3F 80 00 00 40 00 00 00 ........?€..@... | |||
00000170 40 40 00 00 40 80 00 00 40 A0 00 00 40 C0 00 00 @@..@€..@ ..@À.. | |||
00000180 40 E0 00 00 41 00 00 00 41 10 00 00 41 20 00 00 @à..A...A...A .. | |||
00000190 41 30 00 00 41 40 00 00 41 50 00 00 00 00 00 03 [email protected]...... | |||
000001A0 FF FF 00 00 FF FF FF FF 10 00 00 00 20 00 00 00 ÿÿ..ÿÿÿÿ.... ... | |||
000001B0 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 [email protected]...`... | |||
000001C0 FF FF 00 00 FF FF FF FF 00 00 00 06 00 00 00 F4 ÿÿ..ÿÿÿÿ.......ô | |||
000001D0 00 00 01 40 74 65 73 74 00 00 00 00 70 61 67 65 [email protected] | |||
000001E0 5F 74 65 73 74 00 00 00 70 6C 61 6E 65 5F 74 65 _test...plane_te | |||
000001F0 73 74 00 00 00 00 00 00 st...... | |||
{| class="wikitable" style="font-size:x-small;" | |||
|- | |||
! Areas !! Offset !! Length !! Example !! Name !! Notes | |||
|- | |||
| rowspan="42" | Header | |||
|-{{cellcolors|#000000|#ffffff}} | |||
| 0x00 || 0x04 || 46 52 50 00 || '''signature''' || FRP in big endian | |||
|-{{cellcolors|#000000|#ffffff}} | |||
| 0x04 || 0x04 || 00 00 01 30 || '''version''' || 0x130 = one of the firmwares for PS3 | |||
|-{{cellcolors|#000000|#ffffff}} | |||
| 0x08 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''unknown'' || | |||
|-{{cellcolors|#000000|#ffffff}} | |||
| 0x0C || 0x04 || 00 00 00 00 || <abbr title="compresses everything except the header and '''dat''' data tables to store files">'''compress_toc_ptr_str'''</abbr> || 0x00 = uncompressed | |||
|-{{cellcolors|#7777ff}} | |||
| 0x10 || 0x04 || 00 00 00 A4 || '''toc_maintree_absolute_offset''' || MainTree at 0xA4 | |||
|-{{cellcolors|#8888ff}} | |||
| 0x14 || 0x04 || FF FF FF FF || '''toc_scripttree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x18 || 0x04 || FF FF FF FF || '''toc_languagetree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x1C || 0x04 || FF FF FF FF || '''toc_soundtree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x20 || 0x04 || FF FF FF FF || '''toc_modeltree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x24 || 0x04 || FF FF FF FF || '''toc_imagetree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x28 || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="toc_unknowntree_absolute_offset">''toc_unknown''</abbr> || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x2C || 0x04 || FF FF FF FF || '''toc_fonttree_absolute_offset''' || no | |||
|-{{cellcolors|#8888ff}} | |||
| 0x30 || 0x04 || 00 00 00 CC || '''toc_objecttree_absolute_offset''' || ObjectTree at 0xCC | |||
|-{{cellcolors|#8888ff}} | |||
| 0x34 || 0x04 || FF FF FF FF || '''toc_animationtree_absolute_offset''' || no | |||
|-{{cellcolors|#66ff66}} | |||
| 0x38 || 0x04 || 00 00 01 D4 || '''str_language_table_absolute_offset''' || languages at 0x1D4 | |||
|-{{cellcolors|#66ff66}} | |||
| 0x3C || 0x04 || 00 00 00 00 || '''str_language_table_length''' || empty | |||
|-{{cellcolors|#99ff99}} | |||
| 0x40 || 0x04 || 00 00 01 D4 || '''str_label_table_absolute_offset''' || labels at 0x1D4 | |||
|-{{cellcolors|#99ff99}} | |||
| 0x44 || 0x04 || 00 00 00 20 || '''str_label_table_length''' || length 0x20 | |||
|-{{cellcolors|#bbffbb}} | |||
| 0x48 || 0x04 || 00 00 01 F4 || '''str_event_table_absolute_offset''' || events at 0x1F4 | |||
|-{{cellcolors|#bbffbb}} | |||
| 0x4C || 0x04 || 00 00 00 04 || '''str_event_table_length''' || length 0x4 | |||
|-{{cellcolors|#770077}} | |||
| 0x50 || 0x04 || FF FF FF FF || '''ptr_language_table_absolute_offset''' || no | |||
|-{{cellcolors|#770077}} | |||
| 0x54 || 0x04 || 00 00 00 00 || '''ptr_language_table_length''' || empty | |||
|-{{cellcolors|#880088}} | |||
| 0x58 || 0x04 || FF FF FF FF || '''ptr_image_table_absolute_offset''' || no | |||
|-{{cellcolors|#880088}} | |||
| 0x5C || 0x04 || 00 00 00 00 || '''ptr_image_table_length''' || empty | |||
|-{{cellcolors|#990099}} | |||
| 0x60 || 0x04 || FF FF FF FF || '''ptr_model_table_absolute_offset''' || no | |||
|-{{cellcolors|#990099}} | |||
| 0x64 || 0x04 || 00 00 00 00 || '''ptr_model_table_length''' || empty | |||
|-{{cellcolors|#aa00aa}} | |||
| 0x68 || 0x04 || FF FF FF FF || '''ptr_sound_table_absolute_offset''' || no | |||
|-{{cellcolors|#aa00aa}} | |||
| 0x6C || 0x04 || 00 00 00 00 || '''ptr_sound_table_length''' || empty | |||
|-{{cellcolors|#bb00bb}} | |||
| 0x70 || 0x04 || 00 00 01 CC || '''ptr_object_table_absolute_offset''' || object pointers at 0x1CC | |||
|-{{cellcolors|#bb00bb}} | |||
| 0x74 || 0x04 || 00 00 00 08 || '''ptr_object_table_length''' || size 0x8 | |||
|-{{cellcolors|#cc00cc}} | |||
| 0x78 || 0x04 || FF FF FF FF || '''ptr_animation_table_absolute_offset''' || no | |||
|-{{cellcolors|#cc00cc}} | |||
| 0x7C || 0x04 || 00 00 00 00 || '''ptr_animation_table_length''' || empty | |||
|-{{cellcolors|#ccaa88}} | |||
| 0x80 || 0x04 || FF FF FF FF || '''dat_image_table_absolute_offset''' || no | |||
|-{{cellcolors|#ccaa88}} | |||
| 0x84 || 0x04 || 00 00 00 00 || '''dat_image_table_length''' || empty | |||
|-{{cellcolors|#ddbb99}} | |||
| 0x88 || 0x04 || FF FF FF FF || '''dat_sound_table_absolute_offset''' || no | |||
|-{{cellcolors|#ddbb99}} | |||
| 0x8C || 0x04 || 00 00 00 00 || '''dat_sound_table_length''' || empty | |||
|-{{cellcolors|#eeccaa}} | |||
| 0x90 || 0x04 || FF FF FF FF || '''dat_model_table_absolute_offset''' || no | |||
|-{{cellcolors|#eeccaa}} | |||
| 0x94 || 0x04 || 00 00 00 00 || '''dat_model_table_length''' || empty | |||
|-{{cellcolors|#ffddbb}} | |||
| 0x98 || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="dat_unknown_table_absolute_offset">''dat_unknown_1''</abbr> || | |||
|-{{cellcolors|#ffddbb}} | |||
| 0x9C || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="dat_unknown_table_length">''dat_unknown_2''</abbr> || | |||
|-{{cellcolors|#ffddbb}} | |||
| 0xA0 || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="dat_unknown_table_absolute_offset">''dat_unknown_3''</abbr> || | |||
|-{{cellcolors|#000000}} | |||
| colspan="6" | | |||
|- | |||
| rowspan="80" | TOC | |||
|-{{cellcolors|#7777ff}} | |||
| 0xA4 || 0x01 || 01 || '''entry_type''' || 0x1=MainTree | |||
|-{{cellcolors|#7777ff}} | |||
| 0xA5 || 0x01 || 01 || '''hierarchy_depth''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xA6 || 0x02 || 00 00 || ''unknown'' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xA8 || 0x04 || 00 00 00 00 || '''entry_label_offset''' || test | |||
|-{{cellcolors|#7777ff}} | |||
| 0xAC || 0x04 || 00 00 00 00 || '''entry_header_size''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xB0 || 0x04 || 00 00 00 28 || '''entry_size''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xB4 || 0x04 || 00 00 00 01 || '''children_number''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xB8 || 0x04 || 00 00 00 00 || '''next_entry_offset''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xBC || 0x04 || 00 00 00 00 || '''previous_entry_offset''' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xC0 || 0x04 || 00 00 00 00 || '''parent_offset''' || no parent | |||
|-{{cellcolors|#7777ff}} | |||
| 0xC4 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#7777ff}} | |||
| 0xC8 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|lightgrey}} | |||
| colspan="5" | | |||
|-{{cellcolors|#8888ff}} | |||
| 0xCC || 0x01 || 08 || '''entry_type''' || 0x8=ObjectTree | |||
|-{{cellcolors|#8888ff}} | |||
| 0xCD || 0x01 || 00 || '''hierarchy_depth''' || 0x0=Root | |||
|-{{cellcolors|#8888ff}} | |||
| 0xCE || 0x02 || 00 00 || ''unknown'' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xD0 || 0x04 || FF FF FF FF || '''entry_label_offset''' || no label | |||
|-{{cellcolors|#8888ff}} | |||
| 0xD4 || 0x04 || 00 00 00 00 || '''entry_header_size''' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xD8 || 0x04 || 00 00 00 28 || '''entry_size''' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xDC || 0x04 || 00 00 00 01 || '''children_number''' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xE0 || 0x04 || 00 00 00 00 || '''next_entry_offset''' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xE4 || 0x04 || 00 00 00 00 || '''previous_entry_offset''' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xE8 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xCC-0x28 = parent is at 0xA4 ('''MainTree''') | |||
|-{{cellcolors|#8888ff}} | |||
| 0xEC || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#8888ff}} | |||
| 0xF0 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|lightgrey}} | |||
| colspan="5" | | |||
|-{{cellcolors|#9999ff}} | |||
| 0xF4 || 0x01 || 08 || '''entry_type''' || 0x8=ObjectTree | |||
|-{{cellcolors|#9999ff}} | |||
| 0xF5 || 0x01 || 01 || '''hierarchy_depth''' || 0x1=Page | |||
|-{{cellcolors|#9999ff}} | |||
| 0xF6 || 0x02 || 00 00 || ''unknown'' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0xF8 || 0x04 || 00 00 00 08 || '''entry_label_offset''' || page_test | |||
|-{{cellcolors|#9999ff}} | |||
| 0xFC || 0x04 || 00 00 00 28 || '''entry_header_size''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x100 || 0x04 || 00 00 00 4C || '''entry_size''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x104 || 0x04 || 00 00 00 01 || '''children_number''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x108 || 0x04 || 00 00 00 00 || '''next_entry_offset''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x10C || 0x04 || 00 00 00 00 || '''previous_entry_offset''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x110 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xF4-0x28 = parent is at 0xCC ('''ObjectTree''') | |||
|-{{cellcolors|#9999ff}} | |||
| 0x114 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x118 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x11C || 0x04 || 11 01 00 00 || '''pageMode''' || | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x120 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnInit''' || ? | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x128 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnCancel''' || ? | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x130 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnContext''' || ? | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x138 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnActivate''' || ? | |||
|-{{cellcolors|lightgrey}} | |||
| colspan="5" | | |||
|-{{cellcolors|#9999ff}} | |||
| 0x140 || 0x01 || 08 || '''entry_type''' || 0x8=ObjectTree | |||
|-{{cellcolors|#9999ff}} | |||
| 0x141 || 0x01 || 02 || '''hierarchy_depth''' || 0x2=Plane | |||
|-{{cellcolors|#9999ff}} | |||
| 0x142 || 0x02 || 00 00 || ''unknown'' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x144 || 0x04 || 00 00 00 14 || '''entry_label_offset''' || plane_test | |||
|-{{cellcolors|#9999ff}} | |||
| 0x148 || 0x04 || 00 00 00 28 || '''entry_header_size''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x14C || 0x04 || 00 00 00 00 || '''entry_size''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x150 || 0x04 || 00 00 00 00 || '''children_number''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x154 || 0x04 || 00 00 00 00 || '''next_entry_offset''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x158 || 0x04 || 00 00 00 00 || '''previous_entry_offset''' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x15C || 0x04 || 00 00 00 4C || '''parent_offset''' || 0x140-0x4C = parent is at 0xF4 ('''Page''') | |||
|-{{cellcolors|#9999ff}} | |||
| 0x160 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#9999ff}} | |||
| 0x164 || 0x04 || 00 00 00 00 || ''unknown'' || | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x168 || 0x04 || 3F 80 00 00 || '''PositionX''' || 1 [http://www.h-schmidt.net/FloatConverter/IEEE754.html after converted from float to decimal] | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x16C || 0x04 || 40 00 00 00 || '''PositionY''' || 2 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x170 || 0x04 || 40 40 00 00 || '''PositionZ''' || 3 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x174 || 0x04 || 40 80 00 00 || '''ColorScaleR''' || 4 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x178 || 0x04 || 40 A0 00 00 || '''ColorScaleG''' || 5 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x17C || 0x04 || 40 C0 00 00 || '''ColorScaleB''' || 6 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x180 || 0x04 || 40 E0 00 00 || '''ColorScaleA''' || 7 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x184 || 0x04 || 41 00 00 00 || '''SizeX''' || 8 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x188 || 0x04 || 41 10 00 00 || '''SizeY''' || 9 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x18C || 0x04 || 41 20 00 00 || '''SizeZ''' || 10 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x190 || 0x04 || 41 30 00 00 || '''SizeScaleX''' || 11 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x194 || 0x04 || 41 40 00 00 || '''SizeScaleY''' || 12 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x198 || 0x04 || 41 50 00 00 || '''SizeScaleZ''' || 13 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x19C || 0x04 || 00 00 00 03 || '''AnchorMode''' || 0x3 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1A0 || 0x08 || FF FF 00 00 FF FF FF FF || '''OnInit''' || ? | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1A8 || 0x04 || 10 00 00 00 || '''PositionOverrideX''' || 10 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1AC || 0x04 || 20 00 00 00 || '''PositionOverrideY''' || 20 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1B0 || 0x04 || 30 00 00 00 || '''PositionOverrideZ''' || 30 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1B4 || 0x04 || 40 00 00 00 || '''SizeOverrideX''' || 40 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1B8 || 0x04 || 50 00 00 00 || '''SizeOverrideY''' || 50 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1BC || 0x04 || 60 00 00 00 || '''SizeOverrideZ''' || 60 | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1C0 || 0x04 || FF FF 00 00 FF FF FF FF || '''planeImage''' || ? | |||
|-{{cellcolors|#aaaaff}} | |||
| 0x1C8 || 0x04 || 00 00 00 06 || '''planeResizeMode''' || 0x6 | |||
|-{{cellcolors|#000000}} | |||
| colspan="6" | | |||
|- | |||
| rowspan="3" | object<br>pointers | |||
|-{{cellcolors|#bb00bb}} | |||
| 0x1CC || 0x04 || 00 00 00 F4 || || First object ('''Page''') at 0xF4 | |||
|-{{cellcolors|#bb00bb}} | |||
| 0x1D0 || 0x04 || 00 00 01 40 || || Second object ('''Plane''') at 0x140 | |||
|-{{cellcolors|#000000}} | |||
| colspan="6" | | |||
|- | |||
| rowspan="2" | languages | |||
|-{{cellcolors|#66ff66}} | |||
| 0x1D4 || 0x00 || || || empty | |||
|- | |||
| rowspan="7" | labels | |||
|-{{cellcolors|#99ff99}} | |||
| 0x1D4 || 0x05 || 74 65 73 74 00 || || '''test''' (null terminated) | |||
|-{{cellcolors|lightgrey}} | |||
| 0x1D9 || 0x03 || 00 00 00 || || padding (aligned to 4 bytes boundary) | |||
|-{{cellcolors|#99ff99}} | |||
| 0x1DC || 0x0A || 70 61 67 65 5F 74 65 73 74 00 || || '''page_test''' (null terminated) | |||
|-{{cellcolors|lightgrey}} | |||
| 0x1E6 || 0x02 || 00 00 || || padding (aligned to 4 bytes boundary) | |||
|-{{cellcolors|#99ff99}} | |||
| 0x1E8 || 0x0B || 70 6C 61 6E 65 5F 74 65 73 74 00 || || '''plane_test''' (null terminated) | |||
|-{{cellcolors|lightgrey}} | |||
| 0x1F3 || 0x01 || 00 || || padding (aligned to 4 bytes boundary) | |||
|- | |||
| rowspan="2" | events | |||
|-{{cellcolors|#bbffbb}} | |||
| 0x1F4 || 0x04 || 00 00 00 00 || || dummy event ? | |||
|} | |||
When compiled (with zlib header compression) MD5: E83B073FD14180A635A63D202EFBFBA3 | |||
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | |||
00000000 46 52 50 00 00 00 01 30 00 00 00 00 00 00 00 <span style="background:#ff0000;">10</span> FRP....0........ | |||
00000010 00 00 00 A4 FF FF FF FF FF FF FF FF FF FF FF FF ...¤ÿÿÿÿÿÿÿÿÿÿÿÿ | |||
00000020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ | |||
00000030 00 00 00 CC FF FF FF FF <span style="background:#00ff00;">FF FF FF FF</span> 00 00 00 00 ...Ìÿÿÿÿÿÿÿÿ.... | |||
00000040 00 00 01 D4 00 00 00 20 00 00 01 F4 00 00 00 04 ...Ô... ...ô.... | |||
00000050 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000060 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000070 00 00 01 CC 00 00 00 08 FF FF FF FF 00 00 00 00 ...Ì....ÿÿÿÿ.... | |||
00000080 FF FF FF FF 00 00 00 00 FF FF FF FF 00 00 00 00 ÿÿÿÿ....ÿÿÿÿ.... | |||
00000090 FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF ÿÿÿÿ....ÿÿÿÿÿÿÿÿ | |||
000000A0 FF FF FF FF <span style="background:#ffff00;">00 00 00 8B</span> <span style="background:#ffff00;">00 00 01 54</span> <span style="background:#ffff00;">00 00 00 00</span> ÿÿÿÿ...‹...T.... | |||
000000B0 <span style="background:#ff00ff;">78 DA 75 CD 31 0A 83 30 14 87 F1 FF 6B A1 38 B6</span> xÚuÍ1.ƒ0.‡ñÿk¡8¶ | |||
000000C0 <span style="background:#ff00ff;">D0 03 38 66 F4 06 7D DD 1D BC 41 EB 20 5D 8A 08</span> Ð.8fô.}Ý.¼Aë ]Š. | |||
000000D0 <span style="background:#ff00ff;">7A 00 8F D2 A3 F4 28 3D 84 BB 7E 83 86 82 E4 83</span> z..Ò£ô(=„»~ƒ†‚äƒ | |||
000000E0 <span style="background:#ff00ff;">1F 49 C8 23 31 D3 7F 01 86 5D 19 66 4A CC 85 38</span> .IÈ#1Ó..†].fJÌ…8 | |||
000000F0 <span style="background:#ff00ff;">67 71 3C A0 4C CD 5D 4C BC 07 4A AD D9 41 A2 2B</span> gq< LÍ]L¼.JÙA¢+ | |||
00000100 <span style="background:#ff00ff;">82 F6 95 5A BB 8D 92 0B 8E 11 1F 7C F1 93 EE C2</span> ‚ö•Z».’.Ž..|ñ“î | |||
00000110 <span style="background:#ff00ff;">19 39 0A 38 2A 89 8E DB 3F 5C 2B 47 01 47 85 27</span> .9.8*‰ŽÛ?\+G.G…' | |||
00000120 <span style="background:#ff00ff;">B6 7B B6 27 4C 92 F9 D0 F4 83 A8 AB 5F CD 63 3D</span> ¶{¶'L’ùÐôƒ¨«_Íc= | |||
00000130 <span style="background:#ff00ff;">74 EF BA 8D 07 5A 00 16 DA 3D 9D 00</span> tïº..Z..Ú=.. | |||
*Changes | |||
**<span style="background:#ff0000;">10</span> the "compression header" setting with zlib (is not actually compressing the header, the term is not accurate) | |||
**<span style="background:#00ff00;">FF FF FF FF</span> weird <!-- this seems to be a mistake of rcomage, because the area is empty originally rcomage detects that is empty and replaces the value by a generic 0xFFFFFFFF but this is not correct, the offset where the table starts must be there even if the table is empty --> | |||
**<span style="background:#ffff00;">00 00 00 8B</span> <span style="background:#ffff00;">00 00 01 54</span> <span style="background:#ffff00;">00 00 00 00</span> the info about the compressed area that comes next (composed by: lenPacked, lenUnpacked, and lenLongestText) | |||
**<span style="background:#ff00ff;">78 DA ...</span> the compressed area itself, includes the whole TOC, the pointers to the TOC, and all the strings tables (languages, labels, and events) | |||
=Examples (official)= | |||
This ones should be considered "perfect" rco structures, even if there is a weird detail (initially a nonsense, a sony bug, or details not managed correctlly by rcomage)... it needs to be considered a "specification" of that rco version. See also [[Talk:Rcomage]] | This ones should be considered "perfect" rco structures, even if there is a weird detail (initially a nonsense, a sony bug, or details not managed correctlly by rcomage)... it needs to be considered a "specification" of that rco version. See also [[Talk:Rcomage]] | ||
Line 1,005: | Line 1,372: | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x97"> | <RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x97"> | ||
<MainTree name="sample"> | <MainTree name="sample"> | ||
Line 1,057: | Line 1,424: | ||
{| class="wikitable" style="font-size:x-small;" | {| class="wikitable" style="font-size:x-small;" | ||
|- | |- | ||
! | ! Areas !! Offset !! Length !! Example !! Name !! Notes | ||
|- | |- | ||
| | | rowspan="42" | Header | ||
|-{{cellcolors|#000000|#ffffff}} | |-{{cellcolors|#000000|#ffffff}} | ||
| 0x00 || 0x04 || 46 52 50 00 || ''' | | 0x00 || 0x04 || 46 52 50 00 || '''signature''' || FRP in big endian | ||
|-{{cellcolors|#000000|#ffffff}} | |-{{cellcolors|#000000|#ffffff}} | ||
| 0x04 || 0x04 || 00 00 00 97 || ''' | | 0x04 || 0x04 || 00 00 00 97 || '''version''' || 0x97 = one of the firmwares for PS3 | ||
|-{{cellcolors|#000000|#ffffff}} | |-{{cellcolors|#000000|#ffffff}} | ||
| 0x08 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} <abbr title="minor_version ?">'' | | 0x08 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} <abbr title="minor_version ?">''header_unknown''</abbr> || | ||
|-{{cellcolors|#000000|#ffffff}} | |-{{cellcolors|#000000|#ffffff}} | ||
| 0x0C || 0x04 || 00 00 00 00 || <abbr title="compress everything except the header and '''dat''' data tables to store files">''' | | 0x0C || 0x04 || 00 00 00 00 || <abbr title="compress everything except the header and '''dat''' data tables to store files">'''compress_toc_ptr_str_tables'''</abbr> || 0x00 = uncompressed | ||
|-{{cellcolors|#7777ff}} | |-{{cellcolors|#7777ff}} | ||
| 0x10 || 0x04 || 00 00 00 A4 || '''toc_maintree_absolute_offset''' || MainTree at 0xA4 | | 0x10 || 0x04 || 00 00 00 A4 || '''toc_maintree_absolute_offset''' || MainTree at 0xA4 | ||
Line 1,143: | Line 1,510: | ||
| 0xA0 || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="dat_unknown_table_absolute_offset">''dat_unknown_3''</abbr> || | | 0xA0 || 0x04 || FF FF FF FF || {{cellcolors|#ff7777}} <abbr title="dat_unknown_table_absolute_offset">''dat_unknown_3''</abbr> || | ||
|-{{cellcolors|#000000}} | |-{{cellcolors|#000000}} | ||
| colspan=" | | colspan="6" | | ||
|- | |- | ||
| | | rowspan="72" | TOC | ||
|-{{cellcolors|#7777ff}} | |-{{cellcolors|#7777ff}} | ||
| 0xA4 || 0x04 || 01 01 00 00 || '''entry_type''' || MainTree | | 0xA4 || 0x04 || 01 01 00 00 || '''entry_type''' || MainTree | ||
Line 1,163: | Line 1,530: | ||
| 0xC0 || 0x04 || 00 00 00 00 || '''parent_offset''' || no parent | | 0xC0 || 0x04 || 00 00 00 00 || '''parent_offset''' || no parent | ||
|-{{cellcolors|#7777ff}} | |-{{cellcolors|#7777ff}} | ||
| 0xC4 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0xC4 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_1'' || | ||
|-{{cellcolors|#7777ff}} | |-{{cellcolors|#7777ff}} | ||
| 0xC8 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0xC8 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_2'' || | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
| colspan="5" | | | colspan="5" | | ||
Line 1,185: | Line 1,552: | ||
| 0xE8 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xCC-0x28 = parent is at 0xA4 ('''MainTree''') | | 0xE8 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xCC-0x28 = parent is at 0xA4 ('''MainTree''') | ||
|-{{cellcolors|#8888ff}} | |-{{cellcolors|#8888ff}} | ||
| 0xEC || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0xEC || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_1'' || | ||
|-{{cellcolors|#8888ff}} | |-{{cellcolors|#8888ff}} | ||
| 0xF0 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0xF0 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_2'' || | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
| colspan="5" | | | colspan="5" | | ||
Line 1,207: | Line 1,574: | ||
| 0x110 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xF4-0x28 = parent is at 0xCC ('''ObjectTree''') | | 0x110 || 0x04 || 00 00 00 28 || '''parent_offset''' || 0xF4-0x28 = parent is at 0xCC ('''ObjectTree''') | ||
|-{{cellcolors|#9999ff}} | |-{{cellcolors|#9999ff}} | ||
| 0x114 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0x114 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_1'' || | ||
|-{{cellcolors|#9999ff}} | |-{{cellcolors|#9999ff}} | ||
| 0x118 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0x118 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_2'' || | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x11C || 0x04 || 01 11 00 00 || '''pageMode''' || | | 0x11C || 0x04 || 01 11 00 00 || '''pageMode''' || | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x120 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnInit''' || nothing | | 0x120 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnInit''' || nothing | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x128 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnCancel''' || nothing | | 0x128 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnCancel''' || nothing | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x130 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnContext''' || nothing | | 0x130 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnContext''' || nothing | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x138 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnActivate''' || nothing | | 0x138 || 0x08 || FF FF 00 00 FF FF FF FF || '''pageOnActivate''' || nothing | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
Line 1,239: | Line 1,606: | ||
| 0x15C || 0x04 || 00 00 00 4C || '''parent_offset''' || 0x140-0x4C = parent is at 0xF4 ('''Page''') | | 0x15C || 0x04 || 00 00 00 4C || '''parent_offset''' || 0x140-0x4C = parent is at 0xF4 ('''Page''') | ||
|-{{cellcolors|#9999ff}} | |-{{cellcolors|#9999ff}} | ||
| 0x160 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0x160 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_1'' || | ||
|-{{cellcolors|#9999ff}} | |-{{cellcolors|#9999ff}} | ||
| 0x164 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} '' | | 0x164 || 0x04 || 00 00 00 00 || {{cellcolors|#ff7777}} ''entry_unknown_2'' || | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x168 || 0x04 || 00 00 00 00 || ''' | | 0x168 || 0x04 || 00 00 00 00 || '''PositionX''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x16C || 0x04 || 00 00 00 00 || ''' | | 0x16C || 0x04 || 00 00 00 00 || '''PositionY''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x170 || 0x04 || 00 00 00 00 || ''' | | 0x170 || 0x04 || 00 00 00 00 || '''PositionZ''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x174 || 0x04 || 3F 80 00 00 || ''' | | 0x174 || 0x04 || 3F 80 00 00 || '''ColorScaleR''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x178 || 0x04 || 3F 80 00 00 || ''' | | 0x178 || 0x04 || 3F 80 00 00 || '''ColorScaleG''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x17C || 0x04 || 3F 80 00 00 || ''' | | 0x17C || 0x04 || 3F 80 00 00 || '''ColorScaleB''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x180 || 0x04 || 3F 80 00 00 || ''' | | 0x180 || 0x04 || 3F 80 00 00 || '''ColorScaleA''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x184 || 0x04 || 00 00 00 00 || ''' | | 0x184 || 0x04 || 00 00 00 00 || '''SizeX''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x188 || 0x04 || 00 00 00 00 || ''' | | 0x188 || 0x04 || 00 00 00 00 || '''SizeY''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x18C || 0x04 || 00 00 00 00 || ''' | | 0x18C || 0x04 || 00 00 00 00 || '''SizeZ''' || 0 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x190 || 0x04 || 3F 80 00 00 || ''' | | 0x190 || 0x04 || 3F 80 00 00 || '''SizeScaleX''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x194 || 0x04 || 3F 80 00 00 || ''' | | 0x194 || 0x04 || 3F 80 00 00 || '''SizeScaleY''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x198 || 0x04 || 3F 80 00 00 || ''' | | 0x198 || 0x04 || 3F 80 00 00 || '''SizeScaleZ''' || 1 | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x19C || 0x04 || 00 00 00 00 || ''' | | 0x19C || 0x04 || 00 00 00 00 || '''AnchorMode''' || 0x0 (center) | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1A0 || 0x08 || FF FF 00 00 FF FF FF FF || ''' | | 0x1A0 || 0x08 || FF FF 00 00 FF FF FF FF || '''OnInit''' || nothing | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1A8 || 0x04 || 00 00 00 00 || ''' | | 0x1A8 || 0x04 || 00 00 00 00 || '''PositionOverrideX''' || no | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1AC || 0x04 || 00 00 00 00 || ''' | | 0x1AC || 0x04 || 00 00 00 00 || '''PositionOverrideY''' || no | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1B0 || 0x04 || 00 00 00 00 || ''' | | 0x1B0 || 0x04 || 00 00 00 00 || '''PositionOverrideZ''' || no | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1B4 || 0x04 || 00 00 00 00 || ''' | | 0x1B4 || 0x04 || 00 00 00 00 || '''SizeOverrideX''' || no | ||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1B8 || 0x04 || 00 00 00 00 || ''' | | 0x1B8 || 0x04 || 00 00 00 00 || '''SizeOverrideY''' || no | ||
|-{{cellcolors|#aaaaff}} | |||
| 0x1BC || 0x04 || 00 00 00 00 || '''SizeOverrideZ''' || no | |||
|-{{cellcolors|#aaaaff}} | |-{{cellcolors|#aaaaff}} | ||
| 0x1C0 || 0x04 || FF FF 00 00 FF FF FF FF || '''planeImage''' || nothing | | 0x1C0 || 0x04 || FF FF 00 00 FF FF FF FF || '''planeImage''' || nothing | ||
|-{{cellcolors|# | |-{{cellcolors|#aaaaff}} | ||
| 0x1C8 || 0x04 || 00 00 00 00 || '''planeResizeMode''' || 0x0 | | 0x1C8 || 0x04 || 00 00 00 00 || '''planeResizeMode''' || 0x0 | ||
|-{{cellcolors|#000000}} | |-{{cellcolors|#000000}} | ||
| colspan=" | | colspan="6" | | ||
|- | |- | ||
| rowspan="3" | | | rowspan="3" | object<br>pointers | ||
|-{{cellcolors|#bb00bb}} | |-{{cellcolors|#bb00bb}} | ||
| 0x1CC || 0x04 || 00 00 00 F4 || || First object ('''Page''') at 0xF4 | | 0x1CC || 0x04 || 00 00 00 F4 || || First object ('''Page''') at 0xF4 | ||
Line 1,298: | Line 1,664: | ||
| 0x1D0 || 0x04 || 00 00 01 40 || || Second object ('''Plane''') at 0x140 | | 0x1D0 || 0x04 || 00 00 01 40 || || Second object ('''Plane''') at 0x140 | ||
|-{{cellcolors|#000000}} | |-{{cellcolors|#000000}} | ||
| colspan=" | | colspan="6" | | ||
|- | |- | ||
| rowspan="2" | languages | | rowspan="2" | languages | ||
|-{{cellcolors|#66ff66}} | |-{{cellcolors|#66ff66}} | ||
Line 1,321: | Line 1,686: | ||
| 0x1F0 || 0x04 || 00 00 00 00 || || dummy event ? | | 0x1F0 || 0x04 || 00 00 00 00 || || dummy event ? | ||
|} | |} | ||