Star Stable Online TGA PTE: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
 
(8 intermediate revisions by the same user not shown)
Line 20: Line 20:


// crn texture header (big endian) - 74 bytes
// crn texture header (big endian) - 74 bytes
2 bytes (char) - signature // "Hx"
74 bytes - CRN file header
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)
x bytes - compressed image data // uses custom compression
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 - compressed image data
</pre>
</div>
 
=== 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>
</pre>
</div>
</div>
Line 68: Line 33:


* TGA/PTE files are CRN textures file with added extra header. They are also compressed with custom algorithm.
* TGA/PTE files are CRN textures file with added extra header. They are also compressed with custom algorithm.
* CRC16 calculation can be described as below: <br>
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
// 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.
</pre>
</div>


=== Compatible Programs ===  
=== Compatible Programs ===  
Line 85: Line 38:
* [https://github.com/BinomialLLC/crunch crunch]
* [https://github.com/BinomialLLC/crunch crunch]
* [https://forum.xentax.com/download/file.php?id=21520 crunch_unity] (special crunch version compiled for Unity games)
* [https://forum.xentax.com/download/file.php?id=21520 crunch_unity] (special crunch version compiled for Unity games)
=== See Also ===
* [http://wiki.xentax.com/index.php/Crunch_CRN CRN file format (xentax wiki)]
<br/><br>
<br/><br>



Latest revision as of 22:20, 29 January 2022

TGA, PTE

  • Game : Star Stable Online
  • Format Type : Image
  • Endian Order : Big Endian


Format Specifications

// Star Stable Online
// TGA/PTE file format


// file header
x bytes - unknown
4 bytes (char) - compression type  // e.g. "DXT1"
13 bytes - unknown


// crn texture header (big endian) - 74 bytes
74 bytes - CRN file header

x bytes - compressed image data // uses custom compression

quickBMS Script

Notes and Comments

  • TGA/PTE files are CRN textures file with added extra header. They are also compressed with custom algorithm.

Compatible Programs

See Also