Difference between revisions of "Star Stable Online TGA"
From XentaxWiki
(→MultiEx BMS Script) |
(→Related Structures) |
||
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 === |
Latest revision as of 14:34, 10 January 2021
Contents
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