Pmd2 AT4PX
The AT4PX container is a format used to contain compressed image data exclusively, as opposed to PKDPX which is more of a generic compressed container. The contained image's format vary, depending on the context, or file extension in which the AT4PX container was found in. Its content is compressed using a custom compression format dubbed PX Compression for the lack of a better name.
File Structure
The structure is very simple. A 18 bytes long header followed with the compressed data.
Offset | Length | Endianness | Type | Name | Description |
---|---|---|---|---|---|
0x00 | 5 | big | Magic Number | The magic number, made of the ASCII characters "AT4PX" {0x41, 0x54, 0x34, 0x50, 0x58} | |
0x05 | 2 | little | uint16 | Container Length | The length from the beginning of the header to the end of the compressed data. |
0x07 | 9 | byte array | Ctrl Flags Array | A list of flags to be used in decompressing the container's content. More detail about their purpose on the PX Compression page. They're really nybbles stored in the lower half of a single byte each. | |
0x10 | 2 | little | uint16 | Decompressed Data Length | This is the length of the raw input data before it was compressed. Note how the length of this field differ from the PKDPX format's own Decompressed Data Length ! |
0x12 | ..The PX compressed data begins immediately here!.. |
Credits
A big thanks to Zhorkenwho figured out the header and the compression format!