Star Stable Online TGA PTE: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| Line 52: | Line 52: | ||
=== Related Structures === | === Related Structures === | ||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
// Palette structure | |||
3 bytes - offsets | |||
3 bytes - size | |||
2 bytes - num | |||
</pre> | |||
</div> | |||
=== MultiEx BMS Script === | === MultiEx BMS Script === | ||
Revision as of 13:34, 10 January 2021
TGA
- Game : Star Stable Online
- Format Type : Image
- Endian Order : Big Endian
Format Specifications
// Star Stable Online // TGA file format // file header - 25 bytes 8 bytes - unknown 4 bytes (char) - compression type // e.g. "DXT1" 13 bytes - unknown // crn texture header (big endian) - 74 bytes 2 bytes (char) - magic // "Hx" 2 bytes (uint16) - header size // e.g. 106 2 bytes (uint16) - header CRC16 4 bytes (uint32) - data size 2 bytes (uint16) - data CRC16 2 bytes (uint16) - width 2 bytes (uint16) - height 1 byte (uint8) - mipmap level index // 0 is the largest/first level 1 byte (uint8) - number of faces 1 byte (uint8) - format number 2 bytes (uint16) - flags 4 bytes (uint32) - reserved 4 bytes (uint32) - user data 0 4 bytes (uint32) - user data 1 8 bytes - color endpoints (palette structure) 8 bytes - color selectors (palette structure) 8 bytes - alpha endpoints (palette structure) 8 bytes - alpha selectors (palette structure) 2 bytes (uint16) - tables size 3 bytes - tables offsets 4 bytes - levels offsets x bytes - encrypted image data
Related Structures
// Palette structure 3 bytes - offsets 3 bytes - size 2 bytes - num
MultiEx BMS Script
Not written yet.
Notes and Comments
- This is CRN texture file with added extra header. It is also encrypted with unknown algorithm.
- CRC16 calculation can be described as below:
// header crc16 const uint32 header_crc = crc16(&pHeader->m_data_size, (uint32)(pHeader->m_header_size - ((const uint8*)&pHeader->m_data_size - (const uint8*)pHeader))); //data crc16 const uint32 data_crc = crc16((const uint8*)pData + pHeader->m_header_size, pHeader->m_data_size - pHeader->m_header_size); // Note: More details in "crn_decomp.h" file.
Compatible Programs