Playgo-chunk.dat
Jump to navigation
Jump to search
Internal Structure Examples
Structure
#define PLGO_H 0x6F676C70 #define CHUNK_COUNT 8 #define IndexTable 0 #define Table2 1 //u16's #define KeyTable 2 #define Table4 3 //unknown length.. same size as table8 #define Table5 4 //table of random stuff, &table5[0x18] u16's #define Table6 5 //u16's #define Table7 6 //string 'Scenario #X' , count possibly greater than 1 on some cases #define Table8 7 //size of table4 #pragma pack(push, 1) typedef char* key_t; typedef struct{ u32 id; // 1, 2, 3, 4... u32 unk[4]; //ignore u16 unk1; //idk but valueable u16 entryCount; //of the index table u16 table6_entryCount; } table5_t; //header_t->table5_count typedef struct{ u32 offest; //offset?? u32 unk; } table4_t; typedef struct{ u64 indexMagic; //80 00 03 u32 unk1; u32 unk2; //sometimes hold value of 1 u32 unk3; //ff's.. sometimes different u32 unk5; //ff's.. sometimes different u32 unk6; //holds value of 2 or increments by 2 u32 keyTableOffset; } index_t; //header_t->indexCount typedef struct{ u32 offset; u32 length; } chunk_t; typedef struct{ u64 magic; u16 version; //maybe not u16 indexCount; u16 Table2Count; //table 6 and table 2 have same length (filled with u16's) u16 Table5Count; u32 fileSize; u32 unk2; u64 unk3; u8 unk4[0x20]; char title[0x80]; chunk_t chunks[CHUNK_COUNT]; } header_t; class PlayGo { public: PlayGo(u8* data); header_t header; /* only implemented indexData and keyData */ index_t* indexData;//header_t->indexCount u16* table2; key_t* keyData; table4_t* table4; //size unknown?? table5_t* table5; //header->table5_count u16* table6; //table5_t->table6_entryCount key_t* table7; //header->table5_count table4_t* table8; //table 8 == table 4 }; #pragma pack(pop)
Header
0x00 70 6C 67 6F 00 00 00 00 01 00 1C 00 1C 00 01 00 plgo............ 0x10 40 0A 00 00 00 00 01 00 00 00 00 00 00 00 00 00 @............... 0x20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 0x30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 0x40 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 UP2102-CUSA00042 0x50 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F _00-BLACKLIGHT2O 0x60 52 42 49 53 00 00 00 00 00 00 00 00 00 00 00 00 RBIS............ 0x70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0xA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0xB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0xC0 00 01 00 00 80 03 00 00 80 04 00 00 38 00 00 00 ....€...€...8... 0xD0 C0 04 00 00 88 01 00 00 50 06 00 00 C0 01 00 00 À...ˆ...P...À... 0xE0 D0 09 00 00 20 00 00 00 F0 09 00 00 38 00 00 00 Ð... ...ð...8... 0xF0 30 0A 00 00 0C 00 00 00 10 08 00 00 C0 01 00 00 0...........À...
Offset | Size | Name | Example | Value (conversion) | Notes |
---|---|---|---|---|---|
0x00 | 0x04 | magic | 70 6C 67 6F | plgo (utf-8) | |
0x10 | 0x04 | plgo_length | 40 0A 00 00 | 0xA40 (Little endian) | |
0x40 | 0x80 | title | 55 50 32 31 30 32 2D 43 55 53 41 30 30 30 34 32 5F 30 30 2D 42 4C 41 43 4B 4C 49 47 48 54 32 4F 52 42 49 53 00 ... | UP2102-CUSA00042_00-BLACKLIGHT2ORBIS ... (utf-8) | Padded |
0xC0 | 0x04 | chunk_offset | 00 01 00 00 | 0x100 (Little endian) | index_table_start, offset_2, key_table_start, offset_4, offset_5, offset_6, offset_7, offset_8 |
0xC4 | 0x04 | chunk_length | 80 03 00 00 | 0x380 (Little endian) | index_table_length, length_2, key_table_length, length_4, length_5, length_6, length_7, length_8 |
Index Table (Offset/Length 1)
0x100 80 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 €............... 0x110 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 ÿÿÿÿÿÿÿÿ........ 0x120 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x130 FF FF FF FF FF FF FF FF 04 00 00 00 04 00 00 00 ÿÿÿÿÿÿÿÿ........ 0x140 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x150 FF FF FF FF FF FF FF FF 06 00 00 00 0B 00 00 00 ÿÿÿÿÿÿÿÿ........ 0x160 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x170 FF FF FF FF FF FF FF FF 08 00 00 00 12 00 00 00 ÿÿÿÿÿÿÿÿ........ 0x180 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x190 FF FF FF FF FF FF FF FF 0A 00 00 00 18 00 00 00 ÿÿÿÿÿÿÿÿ........ 0x1A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x1B0 FF FF FF FF FF FF FF FF 0C 00 00 00 27 00 00 00 ÿÿÿÿÿÿÿÿ....'... 0x1C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x1D0 FF FF FF FF FF FF FF FF 0E 00 00 00 37 00 00 00 ÿÿÿÿÿÿÿÿ....7... 0x1E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x1F0 FF FF FF FF FF FF FF FF 10 00 00 00 44 00 00 00 ÿÿÿÿÿÿÿÿ....D... 0x200 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x210 FF FF FF FF FF FF FF FF 12 00 00 00 52 00 00 00 ÿÿÿÿÿÿÿÿ....R... 0x220 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x230 FF FF FF FF FF FF FF FF 14 00 00 00 5D 00 00 00 ÿÿÿÿÿÿÿÿ....]... 0x240 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x250 FF FF FF FF FF FF FF FF 16 00 00 00 69 00 00 00 ÿÿÿÿÿÿÿÿ....i... 0x260 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x270 FF FF FF FF FF FF FF FF 18 00 00 00 7E 00 00 00 ÿÿÿÿÿÿÿÿ....~... 0x280 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x290 FF FF FF FF FF FF FF FF 1A 00 00 00 94 00 00 00 ÿÿÿÿÿÿÿÿ....”... 0x2A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x2B0 FF FF FF FF FF FF FF FF 1C 00 00 00 A3 00 00 00 ÿÿÿÿÿÿÿÿ....£... 0x2C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x2D0 FF FF FF FF FF FF FF FF 1E 00 00 00 B3 00 00 00 ÿÿÿÿÿÿÿÿ....³... 0x2E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x2F0 FF FF FF FF FF FF FF FF 20 00 00 00 C5 00 00 00 ÿÿÿÿÿÿÿÿ ...Å... 0x300 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x310 FF FF FF FF FF FF FF FF 22 00 00 00 D8 00 00 00 ÿÿÿÿÿÿÿÿ"...Ø... 0x320 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x330 FF FF FF FF FF FF FF FF 24 00 00 00 E8 00 00 00 ÿÿÿÿÿÿÿÿ$...è... 0x340 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x350 FF FF FF FF FF FF FF FF 26 00 00 00 F9 00 00 00 ÿÿÿÿÿÿÿÿ&...ù... 0x360 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x370 FF FF FF FF FF FF FF FF 28 00 00 00 06 01 00 00 ÿÿÿÿÿÿÿÿ(....... 0x380 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x390 FF FF FF FF FF FF FF FF 2A 00 00 00 14 01 00 00 ÿÿÿÿÿÿÿÿ*....... 0x3A0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x3B0 FF FF FF FF FF FF FF FF 2C 00 00 00 23 01 00 00 ÿÿÿÿÿÿÿÿ,...#... 0x3C0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 €............... 0x3D0 FF FF FF FF FF FF FF FF 2E 00 00 00 33 01 00 00 ÿÿÿÿÿÿÿÿ....3... 0x3E0 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x3F0 FF FF FF FF FF FF FF FF 2E 00 00 00 41 01 00 00 ÿÿÿÿÿÿÿÿ....A... 0x400 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x410 FF FF FF FF FF FF FF FF 30 00 00 00 50 01 00 00 ÿÿÿÿÿÿÿÿ0...P... 0x420 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x430 FF FF FF FF FF FF FF FF 32 00 00 00 5F 01 00 00 ÿÿÿÿÿÿÿÿ2..._... 0x440 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x450 FF FF FF FF FF FF FF FF 34 00 00 00 6F 01 00 00 ÿÿÿÿÿÿÿÿ4...o... 0x460 80 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 €............... 0x470 FF FF FF FF FF FF FF FF 36 00 00 00 7B 01 00 00 ÿÿÿÿÿÿÿÿ6...{...
Offset | Size | Name | Example | Value (conversion) | Notes |
---|---|---|---|---|---|
- | 0x04 | key_table_offset | 7B 01 00 00 | 0x17B (Little endian) | plgo Offset: key_table_start + key_table_offset |
? (Offset/Length 2)
0x480 00 00 1A 00 1B 00 11 00 01 00 03 00 02 00 0B 00 ................ 0x490 0A 00 0D 00 0C 00 13 00 12 00 17 00 16 00 19 00 ................ 0x4A0 18 00 05 00 04 00 07 00 06 00 09 00 08 00 0E 00 ................ 0x4B0 10 00 0F 00 15 00 14 00 ........
Key Table (Offset/Length 3)
0x4C0 45 4C 46 00 53 59 53 54 45 4D 00 53 43 52 49 50 ELF.SYSTEM.SCRIP 0x4D0 54 00 41 55 44 49 4F 00 43 48 41 52 41 43 54 45 T.AUDIO.CHARACTE 0x4E0 52 53 5F 54 46 43 00 43 48 41 52 41 43 54 45 52 RS_TFC.CHARACTER 0x4F0 53 5F 44 41 54 41 00 48 45 4C 4F 44 45 43 4B 5F S_DATA.HELODECK_ 0x500 54 46 43 00 48 45 4C 4F 44 45 43 4B 5F 44 41 54 TFC.HELODECK_DAT 0x510 41 00 48 45 52 4F 45 53 5F 54 46 43 00 48 45 52 A.HEROES_TFC.HER 0x520 4F 45 53 5F 44 41 54 41 00 53 45 41 52 43 48 41 OES_DATA.SEARCHA 0x530 4E 44 44 45 53 54 52 4F 59 5F 54 46 43 00 53 45 NDDESTROY_TFC.SE 0x540 41 52 43 48 41 4E 44 44 45 53 54 52 4F 59 5F 44 ARCHANDDESTROY_D 0x550 41 54 41 00 57 45 41 50 4F 4E 47 45 41 52 5F 54 ATA.WEAPONGEAR_T 0x560 46 43 00 57 45 41 50 4F 4E 47 45 41 52 5F 44 41 FC.WEAPONGEAR_DA 0x570 54 41 00 57 45 41 50 4F 4E 50 52 49 4D 41 52 59 TA.WEAPONPRIMARY 0x580 5F 54 46 43 00 57 45 41 50 4F 4E 50 52 49 4D 41 _TFC.WEAPONPRIMA 0x590 52 59 5F 44 41 54 41 00 43 4F 4E 54 41 49 4E 4D RY_DATA.CONTAINM 0x5A0 45 4E 54 5F 54 46 43 00 43 4F 4E 54 41 49 4E 4D ENT_TFC.CONTAINM 0x5B0 45 4E 54 5F 44 41 54 41 00 44 45 41 44 4C 4F 43 ENT_DATA.DEADLOC 0x5C0 4B 5F 54 46 43 00 44 45 41 44 4C 4F 43 4B 5F 44 K_TFC.DEADLOCK_D 0x5D0 41 54 41 00 48 45 41 56 59 4D 45 54 41 4C 5F 54 ATA.HEAVYMETAL_T 0x5E0 46 43 00 48 45 41 56 59 4D 45 54 41 4C 5F 44 41 FC.HEAVYMETAL_DA 0x5F0 54 41 00 4F 4E 53 4C 41 55 47 48 54 5F 54 46 43 TA.ONSLAUGHT_TFC 0x600 00 4F 4E 53 4C 41 55 47 48 54 5F 44 41 54 41 00 .ONSLAUGHT_DATA. 0x610 50 49 4C 45 44 52 49 56 45 52 5F 54 46 43 00 50 PILEDRIVER_TFC.P 0x620 49 4C 45 44 52 49 56 45 52 5F 44 41 54 41 00 56 ILEDRIVER_DATA.V 0x630 45 52 54 49 47 4F 5F 54 46 43 00 56 45 52 54 49 ERTIGO_TFC.VERTI 0x640 47 4F 5F 44 41 54 41 00 GO_DATA.
? (Offset/Length 4)
0x650 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 ..........)..... 0x660 00 00 28 01 00 00 00 00 00 00 E8 12 00 00 00 00 ..(.......è..... 0x670 00 00 0F 14 00 00 00 00 00 00 31 03 00 00 00 00 ..........1..... 0x680 00 00 3F 17 00 00 00 00 00 00 FD 10 00 00 00 00 ..?.......ý..... 0x690 00 00 3B 28 00 00 00 00 00 00 F2 03 00 00 00 00 ..;(......ò..... 0x6A0 00 00 2C 2C 00 00 00 00 00 00 46 12 00 00 00 00 ..,,......F..... 0x6B0 00 00 71 3E 00 00 00 00 00 00 0E 07 00 00 00 00 ..q>............ 0x6C0 00 00 7E 45 00 00 00 00 00 00 4A 12 00 00 00 00 ..~E......J..... 0x6D0 00 00 C7 57 00 00 00 00 00 00 BE 09 00 00 00 00 ..ÇW......¾..... 0x6E0 00 00 84 61 00 00 00 00 00 00 F9 12 00 00 00 00 ..„a......ù..... 0x6F0 00 00 7C 74 00 00 00 00 00 00 74 03 00 00 00 00 ..|t......t..... 0x700 00 00 EF 77 00 00 00 00 00 00 7F 08 00 00 00 00 ..ïw............ 0x710 00 00 6D 80 00 00 00 00 00 00 E1 02 00 00 00 00 ..m€......á..... 0x720 00 00 4D 83 00 00 00 00 00 00 18 18 00 00 00 00 ..Mƒ............ 0x730 00 00 64 9B 00 00 00 00 00 00 01 00 00 00 00 00 ..d›............ 0x740 00 00 64 9B 00 00 00 00 00 00 F8 0A 00 00 00 00 ..d›......ø..... 0x750 00 00 5B A6 00 00 00 00 00 00 9A 13 00 00 00 00 ..[¦......š..... 0x760 00 00 F4 B9 00 00 00 00 00 00 D6 03 00 00 00 00 ..ô¹......Ö..... 0x770 00 00 C9 BD 00 00 00 00 00 00 5A 00 00 00 00 00 ..ɽ......Z..... 0x780 00 00 22 BE 00 00 00 00 00 00 D8 00 00 00 00 00 .."¾......Ø..... 0x790 00 00 F9 BE 00 00 00 00 00 00 44 03 00 00 00 00 ..ù¾......D..... 0x7A0 00 00 3C C2 00 00 00 00 00 00 0B 0A 00 00 00 00 ..<Â............ 0x7B0 00 00 46 CC 00 00 00 00 00 00 E9 04 00 00 00 00 ..FÌ......é..... 0x7C0 00 00 2E D1 00 00 00 00 00 00 2C 23 00 00 00 00 ...Ñ......,#.... 0x7D0 00 00 59 F4 00 00 00 00 00 00 A9 04 00 00 00 00 ..Yô......©..... 0x7E0 00 00 01 F9 00 00 00 00 00 00 7C 28 00 00 00 00 ...ù......|(.... 0x7F0 00 00 7C 21 01 00 00 00 00 00 EA 02 00 00 00 00 ..|!......ê..... 0x800 00 00 65 24 01 00 00 00 00 00 39 00 00 00 00 00 ..e$......9.....
? (Offset/Length 5)
0x9D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x9E0 00 00 00 00 10 00 1C 00 00 00 00 00 00 00 00 00 ................
? (Offset/Length 6)
0x9F0 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ................ 0xA00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 ................ 0xA10 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ................ 0xA20 18 00 19 00 1A 00 1B 00 ........
? (Offset/Length 7)
0xA30 53 63 65 6E 61 72 69 6F 20 23 30 00 Scenario #0.
? (Offset/Length 8)
0x810 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 00 00 ................ 0x820 00 00 1C 00 00 00 00 00 00 00 92 1E 00 00 00 00 ..........’..... 0x830 00 00 AE 1E 00 00 00 00 00 00 7A 07 00 00 00 00 ..®.......z..... 0x840 00 00 28 26 00 00 00 00 00 00 AF 3F 00 00 00 00 ..(&......¯?.... 0x850 00 00 D7 65 00 00 00 00 00 00 40 0A 00 00 00 00 ..×e......@..... 0x860 00 00 17 70 00 00 00 00 00 00 2B 28 00 00 00 00 ...p......+(.... 0x870 00 00 42 98 00 00 00 00 00 00 4D 11 00 00 00 00 ..B˜......M..... 0x880 00 00 8F A9 00 00 00 00 00 00 A8 28 00 00 00 00 ...©......¨(.... 0x890 00 00 37 D2 00 00 00 00 00 00 F9 16 00 00 00 00 ..7Ò......ù..... 0x8A0 00 00 30 E9 00 00 00 00 00 00 00 2B 00 00 00 00 ..0é.......+.... 0x8B0 00 00 30 14 01 00 00 00 00 00 7E 08 00 00 00 00 ..0.......~..... 0x8C0 00 00 AE 1C 01 00 00 00 00 00 C7 10 00 00 00 00 ..®.......Ç..... 0x8D0 00 00 75 2D 01 00 00 00 00 00 BB 06 00 00 00 00 ..u-......»..... 0x8E0 00 00 30 34 01 00 00 00 00 00 F4 71 00 00 00 00 ..04......ôq.... 0x8F0 00 00 24 A6 01 00 00 00 00 00 01 00 00 00 00 00 ..$¦............ 0x900 00 00 25 A6 01 00 00 00 00 00 B8 1C 00 00 00 00 ..%¦......¸..... 0x910 00 00 DD C2 01 00 00 00 00 00 CE 32 00 00 00 00 ..ÝÂ......Î2.... 0x920 00 00 AB F5 01 00 00 00 00 00 43 08 00 00 00 00 ..«õ......C..... 0x930 00 00 EE FD 01 00 00 00 00 00 38 01 00 00 00 00 ..îý......8..... 0x940 00 00 26 FF 01 00 00 00 00 00 23 02 00 00 00 00 ..&ÿ......#..... 0x950 00 00 49 01 02 00 00 00 00 00 FA 08 00 00 00 00 ..I.......ú..... 0x960 00 00 43 0A 02 00 00 00 00 00 EE 17 00 00 00 00 ..C.......î..... 0x970 00 00 31 22 02 00 00 00 00 00 3D 0B 00 00 00 00 ..1"......=..... 0x980 00 00 6E 2D 02 00 00 00 00 00 51 5D 00 00 00 00 ..n-......Q].... 0x990 00 00 BF 8A 02 00 00 00 00 00 7F 0A 00 00 00 00 ..¿Š............ 0x9A0 00 00 3E 95 02 00 00 00 00 00 EA 64 00 00 00 00 ..>•......êd.... 0x9B0 00 00 28 FA 02 00 00 00 00 00 E9 02 00 00 00 00 ..(ú......é..... 0x9C0 00 00 11 FD 02 00 00 00 00 00 39 00 00 00 00 00 ...ý......9.....