v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "User:Jifodus/CMV file format"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
(File format)
 
(→‎Sounds: Played around a bit and got extra sounds to play, still don't know how it works)
Line 56: Line 56:
 
| dword[3200]
 
| dword[3200]
 
| unknown
 
| unknown
| It undoubtedly has something to do with sounds. However, the only movie file that has values other than 0xFFFFFFFF in all the slots is dwarf_fortress.cmv so it's purpose is still unknown.<br /><br />My hypothesis is that it specifies when sounds get played, but due to the finite number of slots I have not come up with a theory explaining how it relates (nor have I actually played around with changing the values).
+
| It undoubtedly has something to do with sounds. However, the only movie file that has values other than 0xFFFFFFFF in all the slots is dwarf_fortress.cmv so it's purpose is still unknown.<br /><br />I do know from testing that it specifies when sounds get played, but due to the finite number of slots I have not come up with a theory explaining how it relates.
  
 
|}
 
|}
 +
 
==Chunk==
 
==Chunk==
 
The [[User:Jifodus/CMV_file_format#Sounds|Sounds]] section & [[User:Jifodus/CMV_file_format#Header|Header]] section comes before this. The remainder of the file is made up this way.
 
The [[User:Jifodus/CMV_file_format#Sounds|Sounds]] section & [[User:Jifodus/CMV_file_format#Header|Header]] section comes before this. The remainder of the file is made up this way.

Revision as of 05:26, 26 November 2007

File Format

Header

Offset (+Hex) Type Name Information
0000 dword version Version numbers:
0x2711 - New movies
0x2710 - Old movies
0004 dword columns The number of columns.
0008 dword rows The number of rows.
000C dword unknown1 Unknown value, it's 1 in the begining movies.

Sounds

If the version is 0x2711 then this section comes right after the header.

Offset (+Hex) Type Name Information
0000 dword sounds The number of sounds in the file.
0004 char[50 * sounds] sound_files A sound file name is 50 bytes long. It's an array with sounds giving the number of sound files there are.
* dword[3200] unknown It undoubtedly has something to do with sounds. However, the only movie file that has values other than 0xFFFFFFFF in all the slots is dwarf_fortress.cmv so it's purpose is still unknown.

I do know from testing that it specifies when sounds get played, but due to the finite number of slots I have not come up with a theory explaining how it relates.

Chunk

The Sounds section & Header section comes before this. The remainder of the file is made up this way.

Offset (+Hex) Type Name Information
0000 dword size The size of the following compressed data.
0004 byte[size] sound_files Zlib's deflate compressed data, comprising no more than 200 sequential frames.

Data Format

Frame

Offset (+Hex) Type Name Information
0000 char[Header.columns * Header.rows] characters The characters making up the frame.
* attribute[Header.columns * Header.rows] attributes The color attributes of each character in the frame.

Iterate through the frame data:

 +---------> +Y
 |
 |
 |
 |
 V
+X

Attribute

A frame is a single byte long, the bits are layed out as:

0ibbbfff
i   - Foreground Intensity Bit
bbb - Background Color Bits
fff - Foreground Color Bits