DAT files DAT files are archive files in which most of the files used in " Fallout " and " Fallout 2 " are stored . DAT1 vs DAT2 . There were two different DAT file formats used for the " Fallout " games . Both " Fallout 1 " and " Fallout 2 " used different formats but used the same file ending : * . dat . To avoid misunderstandings we will refer to DAT1 ( for the " Fallout 1 " DAT format ) and DAT2 ( for the " Fallout 2 " version ) in this document . It ' s important that DAT2 is not an improved DAT1 version but more a complete rewrite that does not have much in common with DAT1 . DAT1 . Lack of documentation . Unfortunately there is no known documentation about the DAT1 format , but on the other side TeamX wrote a DAT1 parser . DAT2 . DAT2 specs Document . You can see Fallout ' s DAT2 files as if they were common ZIPs , they ' re used to store the files that will be used later inside the game , you can store anything you want , compressed or not , having the length you want from a common TXT to an immense MVE , and if you want , you can include a nice but useless DLL file . At the bottom of the DAT is all the included information about each one of these files and some information about the DAT itself . The DAT2 Format . DAT2 files are divided in 3 parts , Data Block , Directory Tree and Fixed DAT Information block . Data Blocks contains all the files stored in the DAT , some of them needs to be GZipped , others don ' t . The Directory Tree contains all the information about each file stored in Data Block , as well as the offset where it ' s located , if it ' s compressed or not , packed / unpacked sizes , etc . And finally the Fixed DAT Information block that contains the size in bytes of both full DAT and the Directory Tree . Here you can see a small scheme of how DAT ' s structure : The Data Block . The Data Block contains just plain files , their technical information is located in the Directory Tree . Data Block starts from the very beginning of a DAT file . They can be compressed or not , ( Fallout engine uses zlib stream data compression ) , if they ' re compressed the signature 0x78DA appears at the begin of the file , if not , there is no signature , the file starts without signature . The 0x78DA compression signature has an integer ( 2 bytes / WORD ) nature . 0x78DA in ASCII is " xÚ " as char is 120 for ' x ' and 218 for ' Ú ' Compressed files are " zlib stream data " ( RFC - 1950 ( zlib format ) , RFC - 1951 ( deflate format ) , RFC - 1952 ( gzip format ) ) . However , if you attach this header 1F 8B 08 08 9F E8 B7 36 02 03 to the file , such file could been easily decompressed with WinZip . The Directory Tree . Directory Tree contains entries that specifies about a file stored in the Data Block . These entries can be varying depending on the FilenameSize of the file ( Path + Filename ) . Like you saw in the scheme located at the beginning of this document , Directory Tree has been divided into 2 parts , FilesTotal and the DirTree . FilesTotal contains how many files are stored in the DAT , DirTree contains all the information about these files . FilesTotal is declared as a DWORD ( 4 bytes / Long ) type and is readed in INTEL L - H format . Format of DirTree entries DirTree has a private structure . The length of this structure can vary depending on the length of the Filename ( path + filename ) . All the entries are DWord types unless it ' s specified . At the end of this chapter you can find a scheme on the structure and the way it ' s declared on C and Visual Basic programming languages . All the directories and files are stored in DOS 8 . 3 format , that is 8 characters for the file name and 3 characters for the file extension . All the entries are sorted alphabetically in a descendent direction . Structure scheme : all Dwords are readed in INTEL L - H format . Declaration of a DirEntry struct DirEntry Type DirEntryId Entry Example How to find a DirTreeAddr ( starting location of Directory Tree ) To find the beginning of Directory Tree you can use this calculation :