Smacker Video SMK: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>WATTO
No edit summary
imported>Ikskoks
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{GRAFPageHeader}}
== SMK ==  
== SMK ==  


* ''' Format Type ''':    Archive <br>  
* ''' Format Type ''':    Video <br>  
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br>  
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br>
* ''' Signature ''':    SMK2 / SMK4<br>  




=== Format Specifications ===  
=== Format Specifications ===  


<tt><b>
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Header <font color="purple">(SMK2)</font> <br>
<pre>
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
// header
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
4 bytes (char) - signature // "SMK2" or "SMK4"
uint32 {4}&nbsp;&nbsp; - Number Of Files <br>
4 bytes (uint32) - width
byte {88}&nbsp;&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
4 bytes (uint32) - height
<br>
4 bytes (uint32) - number of frames
<font color="blue"> ''' // for each file ''' </font> <br>
4 bytes (uint32) - frame rate
: uint32 {4}&nbsp;&nbsp; - File Length <br>
4 bytes (uint32) - flags
<br>
28 bytes (7 * uint32) - audio size array
<font color="blue"> ''' // for each file ''' </font> <br>
4 bytes (uint32) - trees size
: byte {1}&nbsp;&nbsp;&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
4 bytes (uint32) - mmap size
<br>
4 bytes (uint32) - mClr size
byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>
4 bytes (uint32) - full size
<br>
4 bytes (uint32) - type size
</b></tt>
28 bytes (7 * uint32) - audio rate array
4 bytes (uint32) - unknown
 
 
// frame sizes
num_of_frames *
{
  4 bytes (uint32) - frame size
}
 
 
x bytes - frame types
x bytes - huffman trees
x bytes - frame data
</pre>
</div>


=== MultiEx BMS Script ===  
=== MultiEx BMS Script ===  


<pre>IDString 0 SMK2 ;
<bms author="unknown" ext="smk" games="'Jurassic Park: Trespasser'" platforms="'PC'" version="1.0" silence="no" verbose="no"> IDString 0 SMK2 ; Get DUMMYL Long 0 ; Get DUMMYL Long 0 ; Get FILECNTL Long 0 ; Set FILESTART Long 104 ; Set FILEJMP Long FILECNTL ; Math FILEJMP *= 4 ; Math FILEJMP += FILECNTL ; Math FILEJMP += 104 ; Do ; Set FILEOFF Long FILEJMP ; GoTo FILESTART 0 ; Get FILESIZE Long 0 ; SavePos FILESTART 0 ; Log FILENAME FILEOFF FILESIZE 0 0 ; Math FILEJMP += FILESIZE ; Math EXTRCNT += 1 ; While EXTRCNT <> FILECNTL ; </bms> <bms author="unknown" ext="zrb" games="'Total Annihilation'" platforms="'PC'" version="1.0" silence="yes" verbose="no"> IDString 0 SMK2 ; Get DUMMYL Long 0 ; Get DUMMYL Long 0 ; Get FILECNTL Long 0 ; Set FILESTART Long 104 ; Set FILEJMP Long FILECNTL ; Math FILEJMP *= 4 ; Math FILEJMP += FILECNTL ; Math FILEJMP += 104 ; Do ; Set FILEOFF Long FILEJMP ; GoTo FILESTART 0 ; Get FILESIZE Long 0 ; SavePos FILESTART 0 ; Log FILENAME FILEOFF FILESIZE 0 0 ; Math FILEJMP += FILESIZE ; Math EXTRCNT += 1 ; While EXTRCNT <> FILECNTL ; </bms>
Get DUMMYL Long 0 ;
 
Get DUMMYL Long 0 ;
=== quickBMS Script ===
Get FILECNTL Long 0 ;
 
Set FILESTART Long 104 ;
* [https://pastebin.com/uuva6vAq smk_demuxer.bms]
Set FILEJMP Long FILECNTL ;
 
Math FILEJMP *= 4 ;
=== Notes and Comments ===
Math FILEJMP += FILECNTL ;
 
Math FILEJMP += 104 ;
* None.
Do ;
 
Set FILEOFF Long FILEJMP ;
=== Games ===
GoTo FILESTART 0 ;
List of games using this file format:
Get FILESIZE Long 0 ;
* Blood (*.SMK) (PC)
SavePos FILESTART 0 ;
* Hugo: Jungle Island (*.SMK) (PC)
Log FILENAME FILEOFF FILESIZE 0 0 ;
* [[Jurassic Park: Trespasser]] (*.SMK)
Math FILEJMP += FILESIZE ;
* Total Annihilation (*.ZRB)
Math EXTRCNT += 1 ;
* William Shatner's TekWar (*.SMK)
While EXTRCNT <> FILECNTL ;
* Many more...
</pre>
Full list of games using Smacker can be found [https://web.archive.org/web/20060207064305/http://www.radgametools.com/smkgames.htm here]


=== Compatible Programs ===  
=== Compatible Programs ===  


* [[MultiEx Commander|MultiEx Commander]]
* {{ProgramSupportMexcom}}
* [[Game Extractor|Game Extractor]]<br>
* Foobar2000 + vgmstream plugin (audio only)
* [http://www.radgametools.com/smkmain.htm Smacker]
* {{ProgramSupportGameExtracter}}
* [http://www.radgametools.com/smkdown.htm Smacker]
* [http://libsmacker.sourceforge.net/ libsmacker] (+[http://sourceforge.net/projects/libsmacker/files/libsmacker-1.1/libsmacker-1.1.1r35.tar.gz/download source code])
* [http://www.radgametools.com/bnkdown.htm RAD Video Tools]
 
=== See Also ===
* [https://wiki.multimedia.cx/index.php/Smacker Smacker File Format (multimedia.cx)]
* [[wikipedia:Smacker video|Smacker video (Wikipedia)]]
<br/><br>
 
 
[[Category:Complete WIP|Smacker Video SMK]]
[[Category:Platform PC|Smacker Video SMK]]
[[Category:CE None|Smacker Video SMK]]
[[Category:Format_Video | Type: Video]]
[[Category:Extension_smk | Extension: smk]]
[[Category:File Format]]

Latest revision as of 20:32, 25 April 2022

Back to index | Edit this page

SMK

  • Format Type : Video
  • Endian Order : Little Endian
  • Signature : SMK2 / SMK4


Format Specifications

// header
4 bytes (char) - signature // "SMK2" or "SMK4"
4 bytes (uint32) - width
4 bytes (uint32) - height
4 bytes (uint32) - number of frames
4 bytes (uint32) - frame rate
4 bytes (uint32) - flags
28 bytes (7 * uint32) - audio size array
4 bytes (uint32) - trees size
4 bytes (uint32) - mmap size
4 bytes (uint32) - mClr size
4 bytes (uint32) - full size
4 bytes (uint32) - type size
28 bytes (7 * uint32) - audio rate array
4 bytes (uint32) - unknown


// frame sizes
num_of_frames *
{
   4 bytes (uint32) - frame size
}


x bytes - frame types
x bytes - huffman trees
x bytes - frame data

MultiEx BMS Script

<bms author="unknown" ext="smk" games="'Jurassic Park: Trespasser'" platforms="'PC'" version="1.0" silence="no" verbose="no"> IDString 0 SMK2 ; Get DUMMYL Long 0 ; Get DUMMYL Long 0 ; Get FILECNTL Long 0 ; Set FILESTART Long 104 ; Set FILEJMP Long FILECNTL ; Math FILEJMP *= 4 ; Math FILEJMP += FILECNTL ; Math FILEJMP += 104 ; Do ; Set FILEOFF Long FILEJMP ; GoTo FILESTART 0 ; Get FILESIZE Long 0 ; SavePos FILESTART 0 ; Log FILENAME FILEOFF FILESIZE 0 0 ; Math FILEJMP += FILESIZE ; Math EXTRCNT += 1 ; While EXTRCNT <> FILECNTL ; </bms> <bms author="unknown" ext="zrb" games="'Total Annihilation'" platforms="'PC'" version="1.0" silence="yes" verbose="no"> IDString 0 SMK2 ; Get DUMMYL Long 0 ; Get DUMMYL Long 0 ; Get FILECNTL Long 0 ; Set FILESTART Long 104 ; Set FILEJMP Long FILECNTL ; Math FILEJMP *= 4 ; Math FILEJMP += FILECNTL ; Math FILEJMP += 104 ; Do ; Set FILEOFF Long FILEJMP ; GoTo FILESTART 0 ; Get FILESIZE Long 0 ; SavePos FILESTART 0 ; Log FILENAME FILEOFF FILESIZE 0 0 ; Math FILEJMP += FILESIZE ; Math EXTRCNT += 1 ; While EXTRCNT <> FILECNTL ; </bms>

quickBMS Script

Notes and Comments

  • None.

Games

List of games using this file format:

  • Blood (*.SMK) (PC)
  • Hugo: Jungle Island (*.SMK) (PC)
  • Jurassic Park: Trespasser (*.SMK)
  • Total Annihilation (*.ZRB)
  • William Shatner's TekWar (*.SMK)
  • Many more...

Full list of games using Smacker can be found here

Compatible Programs

See Also