Yu Gi Oh! Power of Chaos Data File Format
http://yugiohextractor.sourceforge.net
If this document contains some error in the english translation please send me a mail to udprogramación@yahoo.com.
The document establishes the nomenclature 0xXX to indicate a hexagesimal number, for example 0xF3, unless it is indicated explicitly. As hexagesimal editor I recommend Hex Workshop or UltraEdit 32.
* File Header of the Virtual File System
Offset | Bytes | Description |
0x00000000 | 8 | The ASCII characters: KCEJYUGI (C# byte[8] ) |
0x00000008 | 4 | Number of files (C# uint) |
* File description. (Only one description for each
contained file)
Offset | Bytes | Description |
0x000000C | 256 | Encrypted file name. (lo que sobra se llena con 0x0) (C# byte[256]) |
0x000010C | 4 | Begin of the file offset, based in the begin of the container file. (C# uint) |
0x0000110 | 4 | File size. (C# uint) |
0x0000114 | 4 | File Size (apparently always is the same as the previous data) (C# uint) |
The file name is illegible since they invert the first 4 bits with the last 4 bits of each character, or it can be described as a rotation of 4 bits toward the left or the same thing a rotation of 1 bit, 4 times toward the left. To make it llegible the inverse process should be made and rotate the bits 4 times toward the right. For example if we have the byte 0x4A (01001010) when rotating it 4 times to the right it would be 0xA4(10100100).
Step for step would be this way: (0x4A)01001010 -> 00100101 -> 10010010 ->
01001001 -> 10100100(0xA4)
Immediately after having finished all the file descriptions, they follow the
data of each one of the files.
Example: If you have a file named example.dat and this file contains three files:
File Name | File Name ASCII Deencrypted (Hex) | File name ASCII encrypted (Hex) | File Size |
foto.bmp | 66 6F 74 6F 2E 62 6D 70 | 66 F6 47 F6 E2 26 D6 07 | 1000 (0x03E8) bytes |
sonido.wav | 73 6F 6E 69 64 6F 2E 77 61 76 | 37 F6 E6 96 46 F6 E2 77 16 67 | 2000 (0x07D0) bytes |
texto.txt | 74 65 78 74 6F 2E 74 78 74 | 47 56 87 47 F6 E2 47 87 47 | 500 (0x01F4) bytes |
In the following table you should take into account that the file name
should be filled with 0x0 until fill to 256 bytes. For example foto.bmp is
conformed by 8 ASCII characters or the same 8 bytes, then you should fill 248
bytes with 0x0.
Offset | Description | Content |
0x0000 | Header | KCEJYUGI, 0x0003 |
0x000C | foto.bmp description | 66 F6 47 F6 E2 26 D6 07, 0x0330, 0x03E8 |
0x0118 | sonido.wav description | 37 F6 E6 96 46 F6 E2 77 16 67, 0x0718, 0x07D0 |
0x0224 | texto.txt description | 47 56 87 47 F6 E2 47 87 47, 0x0EE8, 0x01F4 |
0x0330 | Data of foto.bmp | 1000 bytes. |
0x0718 | Data of sonido.wav | 2000 bytes. |
0x0EE8 | Data of texto.txt | 500 bytes |
0x10DC | End of File. |
Ernesto Gutiérrez Arrázola 2005 - Bogotá - Colombia