Playboy CAM 2: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Dinoguy1000
(Some more straigtening up...)
Line 7: Line 7:
=== Format Specifications ===  
=== Format Specifications ===  


<tt>
==== File header. Common to all .cam files ====
<br>
<tt><b>
<h3>File header. Common to all .cam files</h3>
char {8}&nbsp;&nbsp;&nbsp;&nbsp; - Header {{Green|(CYLBPC}} + {{Green|0x20 0x20)}} <br>  
char {8}&nbsp;&nbsp;&nbsp;&nbsp; - Header <font color="purple">(CYLBPC )</font> <br>  
uint16 {2}&nbsp;&nbsp; - Cam File Type  <br>  
uint16 {2}&nbsp;&nbsp; - Cam File Type  <br>  
uint16 {2}&nbsp;&nbsp; - Version  <br>  
uint16 {2}&nbsp;&nbsp; - Version  <br>  
Line 16: Line 15:
uint32 {4}&nbsp;&nbsp; - length of the data segment type description area <br>  
uint32 {4}&nbsp;&nbsp; - length of the data segment type description area <br>  
<br>  
<br>  
<p><font color="blue" >Known file types:</font><br>
<p>{{Blue|Known file types:}}<br>
<li>1&nbsp;&nbsp;animsndd.cam, pregame[ ,f,g,i,s,u].cam, textdat[a,f,g,i,p,s,u].cam files</li>
* 1&nbsp;&nbsp;animsndd.cam, pregame[ ,f,g,i,s,u].cam, textdat[a,f,g,i,p,s,u].cam files
<li>2&nbsp;&nbsp;everything not listed in other types</li>
* 2&nbsp;&nbsp;everything not listed in other types
<li>3&nbsp;&nbsp;soundesc.cam</li></p>
* 3&nbsp;&nbsp;soundesc.cam</p></b></tt>
<br>
 
==== File Type 1 Format ====
Currently unfinished


<h4>File Type 1 Format</h4>
==== File Type 2 Format ====
Currently unfinished<br>
<h4>File Type 2 Format</h4>
Currently unfinished<br>
Currently unfinished<br>
<font color="blue"> ''' // for each type ''' </font> <br>  
<tt><b>
: uint32 {4}&nbsp;&nbsp; - Segment Type ID<br>
{{Blue| // for each type}}<br>  
: uint32 {4}&nbsp;&nbsp; - Byte number of the segment descriptor record<br>
: uint32 {4}&nbsp;&nbsp; - Segment Type ID
: uint32 {4}&nbsp;&nbsp; - Byte number of the segment descriptor record
<br>
<br>
<font color="blue"> ''' // segement descriptor record, one for each segment type ''' </font> <br>  
{{Blue| // segement descriptor record, one for each segment type '''}}<br>  
: uint32 {4}&nbsp;&nbsp; - Number of records <br>
: uint32 {4}&nbsp;&nbsp; - Number of records
: uint32 {4}&nbsp;&nbsp; - unknown (0x0000) <br>
: uint32 {4}&nbsp;&nbsp; - unknown (0x0000)  
<br>
<br>
: <font color="blue"> ''' // data records descriptors for each segment ''' </font> <br>
: {{Blue| // data records descriptors for each segment}}
:: uint32 {4}&nbsp;&nbsp; - data record name, ie. p012, p013, p014 etc. <br>
:: uint32 {4}&nbsp;&nbsp; - data record name, ie. p012, p013, p014 etc.
:: uint32 {4}&nbsp;&nbsp; - Byte number of the start of data <br>
:: uint32 {4}&nbsp;&nbsp; - Byte number of the start of data
:: uint32 {4}&nbsp;&nbsp; - data length <br>
:: uint32 {4}&nbsp;&nbsp; - data length
:: uint32 {4}&nbsp;&nbsp; - Length of record name (follows in name array) <br>
:: uint32 {4}&nbsp;&nbsp; - Length of record name (follows in name array)
<br>
<br>
: <font color="brown"> ''' // array of record names ''' </font>
: {{Blue| // array of record names}}
<br>
<br>
An array of names, each name corresponding to a record in the order given above follows here...
An array of names, each name corresponding to a record in the order given above follows here...
:: uint8 {same as number of records} (note some lengths can be 0)<br>
:: uint8 {same as number of records} (note some lengths can be 0)
<br>
<br>
<font color="blue"> ''' // buffer, filled with 0x00 ''' </font><br>
{{Blue| // buffer, filled with 0x00}}<br>
A buffer filled with nulls follows. The next data is that pointed to by the 'Byte number of the start of data' above. The format of this data will depend upon the record type.
A buffer filled with nulls follows. The next data is that pointed to by the 'Byte number of the start of data' above. The format of this data will depend upon the record type.</b></tt>


<h4>File Type 3 Format</h4>
==== File Type 3 Format ====
Currently unfinished<br>
Currently unfinished
</tt>


=== PICT record format ===  
==== PICT record format ====
Not yet determined.
Not yet determined.
<br>
=== MultiEx BMS ===


Not written yet<br><br>
=== MultiEx BMS ===
<br>
Not written yet


=== Supported Programs ===  
=== Supported Programs ===  

Revision as of 21:03, 20 November 2006

CAM (VERSION 2)


Format Specifications

File header. Common to all .cam files

char {8}     - Header (CYLBPC + 0x20 0x20)
uint16 {2}   - Cam File Type
uint16 {2}   - Version
uint32 {4}   - Number Of Segment Types
uint32 {4}   - length of the data segment type description area

Known file types:

  • 1  animsndd.cam, pregame[ ,f,g,i,s,u].cam, textdat[a,f,g,i,p,s,u].cam files
  • 2  everything not listed in other types
  • 3  soundesc.cam

File Type 1 Format

Currently unfinished

File Type 2 Format

Currently unfinished
// for each type

uint32 {4}   - Segment Type ID
uint32 {4}   - Byte number of the segment descriptor record


// segement descriptor record, one for each segment type

uint32 {4}   - Number of records
uint32 {4}   - unknown (0x0000)


// data records descriptors for each segment
uint32 {4}   - data record name, ie. p012, p013, p014 etc.
uint32 {4}   - Byte number of the start of data
uint32 {4}   - data length
uint32 {4}   - Length of record name (follows in name array)


// array of record names


An array of names, each name corresponding to a record in the order given above follows here...

uint8 {same as number of records} (note some lengths can be 0)


// buffer, filled with 0x00
A buffer filled with nulls follows. The next data is that pointed to by the 'Byte number of the start of data' above. The format of this data will depend upon the record type.

File Type 3 Format

Currently unfinished

PICT record format

Not yet determined.

MultiEx BMS

Not written yet

Supported Programs