Difference between revisions of "DatabasePackedFile"
(Auto-inserted from WakkaWikki) |
(Massivly cleaned) |
||
Line 1: | Line 1: | ||
− | + | Archive format used for [[SimCity 4]] and [[The Sims 2]] archive data files. | |
− | + | ||
− | Most simcity Data is as you probably know stored in various types of archive files that all have the same internal format such as DAT, SC4, SC4lot, etc. This format is proprietary to | + | =Format= |
+ | Most simcity Data is as you probably know stored in various types of archive files that all have the same internal format such as DAT, SC4, SC4lot, etc. This format is proprietary to Maxis and has been used in the Sims 2, and [[The Sims Online]] as well as this one. | ||
Entries may be compressed with QFS compression depending on their entry data. | Entries may be compressed with QFS compression depending on their entry data. | ||
− | + | ==Overview== | |
− | + | This is the general structure of DBPF packages: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Header | + | Header (96 bytes) |
+ | File 1 | ||
+ | File 2 | ||
+ | ... | ||
+ | File n | ||
+ | Index Entry 1 (20 bytes) | ||
+ | Index Entry 2 | ||
+ | ... | ||
+ | Index Entry n | ||
− | Header | + | Header first, individual files following with no filenames and a small file header area at the beginning of each followed by an index of all the files in the archive. |
− | + | ==Header== | |
− | + | ;DWORD | |
− | + | :Identifier (DBPF - the type of dat) | |
− | + | ;DWORD | |
− | + | :Version Major (1 in SC4/Ts2 Dats) | |
− | + | ;DWORD | |
− | + | :Version Minor (0 in sc4 dats, 1 in most TS2 packages) | |
− | + | ;12 bytes | |
− | + | :Reserved (Users can store DBPF info data here if they want) | |
− | + | ;DWORD | |
− | + | :Date Created in Hex (Unused in Version 1.1) | |
− | + | ;DWORD | |
− | + | :Date Modified in Hex (Unused in Version 1.1) | |
− | + | ;DWORD | |
− | + | :Index Type/Version (Always 7 in SC4/TS2 dats) | |
+ | ;DWORD | ||
+ | :Number of entries in the index | ||
+ | ;DWORD | ||
+ | :Location of first index entry | ||
+ | ;DWORD | ||
+ | :Size of index | ||
+ | ;DWORD | ||
+ | :Number of Hole entries in the Hole Record | ||
+ | ;DWORD | ||
+ | :Location of the Hole Record | ||
+ | ;DWORD | ||
+ | :Size of the Hole Record | ||
+ | ;DWORD | ||
+ | :Index Version (Version 1.1+ in TS2 only) | ||
+ | :*01 - 7.0 | ||
+ | :*02 - 7.1 | ||
+ | ;32 bytes | ||
+ | :Reserved for future use in other versions. | ||
− | File | + | ==File== |
+ | Bulk of DBPF packages. | ||
− | + | ===Header=== | |
− | + | Only if the file is compressed | |
− | + | ||
− | + | ||
+ | ;DWORD | ||
+ | :Compressed Size of file | ||
+ | ;WORD | ||
+ | :Compression ID (0x10FB) QFS Compression. (Compression spec is seperate covered on the [[packages]] page) | ||
+ | ;3 bytes | ||
+ | :Uncompressed Size of file | ||
+ | ===Body=== | ||
+ | Raw data | ||
+ | |||
+ | ==File Table== | ||
There are now 2 known formats of indexes in the game. To determine your version, read offset 60 in version 1.1 or use 7.0 for version 1.0 DBPFs. | There are now 2 known formats of indexes in the game. To determine your version, read offset 60 in version 1.1 or use 7.0 for version 1.0 DBPFs. | ||
− | + | ===Version 7.0=== | |
− | + | (20 bytes, some 1.1 entries use this format) | |
+ | |||
+ | ;DWORD | ||
+ | :Type ID (see [[InternalFormats]]) | ||
+ | ;DWORD | ||
+ | :Group ID | ||
+ | ;DWORD | ||
+ | :Instance ID | ||
+ | ;DWORD | ||
+ | :Location of the file in the archive | ||
+ | ;DOWRD | ||
+ | :Size of the file | ||
− | + | ===Version 7.1=== | |
− | + | (24 bytes) | |
− | + | ||
− | + | ||
− | + | ||
− | |||
− | + | ;DWORD | |
− | + | :Type ID (see [[InternalFormats]]) | |
− | + | ;DWORD | |
− | + | :Group ID | |
− | + | ;DWORD | |
− | + | :Instance ID | |
+ | ;DWORD | ||
+ | :Second Instance ID | ||
+ | ;DWORD | ||
+ | :Location of the file in the archive | ||
+ | ;DOWRD | ||
+ | :Size of the file | ||
− | + | ==Hole Record== | |
− | + | A Hole record contains the location and size of all holes in a DBPF file. | |
− | A Hole record contains the location and size of all holes in a DBPF file. | + | |
− | + | ;repeating | |
− | DWORD | + | ;DWORD |
− | DWORD | + | :Hole Location |
+ | ;DWORD | ||
+ | :Hole size | ||
Holes are created when the game deletes something from a DBPF. The holes themselves are simply junk data of the appropriate length to fill the hole. | Holes are created when the game deletes something from a DBPF. The holes themselves are simply junk data of the appropriate length to fill the hole. | ||
+ | {{OldWikiEntryCleaned}} | ||
− | + | [[Category:Modding]] | |
+ | [[Category:InternalFormats]] |
Revision as of 03:30, 12 July 2006
Archive format used for SimCity 4 and The Sims 2 archive data files.
Contents |
Format
Most simcity Data is as you probably know stored in various types of archive files that all have the same internal format such as DAT, SC4, SC4lot, etc. This format is proprietary to Maxis and has been used in the Sims 2, and The Sims Online as well as this one.
Entries may be compressed with QFS compression depending on their entry data.
Overview
This is the general structure of DBPF packages:
Header (96 bytes) File 1 File 2 ... File n Index Entry 1 (20 bytes) Index Entry 2 ... Index Entry n
Header first, individual files following with no filenames and a small file header area at the beginning of each followed by an index of all the files in the archive.
Header
- DWORD
- Identifier (DBPF - the type of dat)
- DWORD
- Version Major (1 in SC4/Ts2 Dats)
- DWORD
- Version Minor (0 in sc4 dats, 1 in most TS2 packages)
- 12 bytes
- Reserved (Users can store DBPF info data here if they want)
- DWORD
- Date Created in Hex (Unused in Version 1.1)
- DWORD
- Date Modified in Hex (Unused in Version 1.1)
- DWORD
- Index Type/Version (Always 7 in SC4/TS2 dats)
- DWORD
- Number of entries in the index
- DWORD
- Location of first index entry
- DWORD
- Size of index
- DWORD
- Number of Hole entries in the Hole Record
- DWORD
- Location of the Hole Record
- DWORD
- Size of the Hole Record
- DWORD
- Index Version (Version 1.1+ in TS2 only)
- 01 - 7.0
- 02 - 7.1
- 32 bytes
- Reserved for future use in other versions.
File
Bulk of DBPF packages.
Header
Only if the file is compressed
- DWORD
- Compressed Size of file
- WORD
- Compression ID (0x10FB) QFS Compression. (Compression spec is seperate covered on the packages page)
- 3 bytes
- Uncompressed Size of file
Body
Raw data
File Table
There are now 2 known formats of indexes in the game. To determine your version, read offset 60 in version 1.1 or use 7.0 for version 1.0 DBPFs.
Version 7.0
(20 bytes, some 1.1 entries use this format)
- DWORD
- Type ID (see InternalFormats)
- DWORD
- Group ID
- DWORD
- Instance ID
- DWORD
- Location of the file in the archive
- DOWRD
- Size of the file
Version 7.1
(24 bytes)
- DWORD
- Type ID (see InternalFormats)
- DWORD
- Group ID
- DWORD
- Instance ID
- DWORD
- Second Instance ID
- DWORD
- Location of the file in the archive
- DOWRD
- Size of the file
Hole Record
A Hole record contains the location and size of all holes in a DBPF file.
- repeating
- DWORD
- Hole Location
- DWORD
- Hole size
Holes are created when the game deletes something from a DBPF. The holes themselves are simply junk data of the appropriate length to fill the hole.
This article is imported from the old MTS2 wiki. It's original page, with comments, can be found at http://old_wiki.modthesims2.com/DatabasePackedFile