hide results

    Sys.Pak File Details by Ronald BG.

    Version: 1.01 | Updated: 06/02/03 | Search Guide | Bookmark Guide

    ************************
    * SYS.PAK FILE DETAILS *
    *   SIMCITY 3000 PC    *
    ************************
    Version 1.01
    
    Copyright (c) 2003 by Ronald BG.
    * e-mail address : Ronald_BG@telkom.net
    * web site       : http://ronaldbg.cjb.net/
    
    0. TABLE OF CONTENTS
    =====================
    0.    TABLE OF CONTENTS
    I.    TECHNICAL INFORMATION
    II.   NOTES AND DEFINITIONS
    III.  WHAT IS SYS.PAK?
    IV.   STRUCTURE OF A PAK FILE
    V.    PAK ARCHIVER
    VI.   LEGAL STUFF
    
    I. TECHNICAL INFORMATION
    =========================
    * FAQ technical information :
      ----------------------------
      FAQ version   : 1.01
      FAQ file size : 15,7 kB
    
    * Revision History :
      -------------------
      - Version 1.01 (May 31, 2003)
        * Updated section about the PAK Archiver. The PAK Archiver is now available.
    
      - Version 1.0 (May 20, 2003)
        . Initial release.
    
    * The latest version of this FAQ always can be found in the following location
      (if you find that this FAQ is posted in a site that's not listed, please
      contact me) :
      ----------------------------------------
      | Site name | Site URL                 |
      ----------------------------------------
      | GameFAQs  | http://www.gamefaqs.com/ |
      ----------------------------------------
    
    II. NOTES AND DEFINITIONS
    ==========================
    * In this document a "word" is a 32-bit quantity and a "byte" is an eight-bit
      quantity. A sequence of bits can be interpreted in a natural manner as a
      sequence of bytes, where each consecutive group of eight bits is interpreted
      as a byte with the high-order (most significant) bit of each byte listed
      first. Similarly, a sequence of bytes can be interpreted as a sequence of
      32-bit words, where each consecutive group of four bytes is interpreted as
      a word with the low-order (least significant) byte given first. 
    
    * In this document, x_i denotes "x sub i". If the subscript has more than one
      value (e.g., "x sub i,j"), then we surround the values with square brackets
      (i.e., x_[i,j] )
    
    * In this document and in the PAK files, all offsets start from zero. This 
      means, the first byte of a file will have offset 0, then the second byte
      of a file will have offset 1, and the n-th byte of a file will have offset
      {n-1}.
    
    * In the PAK files, all lines are stored without any line breaks, and the
      length of a line is also counted without counting any line breaks.
    
    III. WHAT IS SYS.PAK?
    ======================
    SYS.PAK is a file which can be found in the Game\Sys\ path of the SimCity
    3000 game directory. (This means, open your SimCity 3000 game directory,
    open the Game subdirectory, then open the Sys subdirectory. The SYS.PAK file 
    should be there).
    
    Looking its contents, the SYS.PAK file is an uncompressed and unencrypted
    archive, meaning that the SYS.PAK file have many files stored inside (the
    "archive"), but the files inside were left intact (without any compression
    and encryption at all) ("uncompressed and unencrypted")
    
    The SYS.PAK file (and the files inside it) contains a lot of useful
    informations about the game, for example, the file contains information about
    how many fountains are needed to be built to be rewarded with Geyser Park,
    starting from what year the Casino can be built, when the Financial Advisor
    needs to warn you about limited cash reserves, etc.
    
    In this document, the structure of a PAK file will be explained, based on the
    structure found inside the SYS.PAK file.
    
    IV. STRUCTURE OF A PAK FILE
    ============================
    A PAK file consists of 2 main parts:
    A. The Header Part
       The header part contains information about the files inside a PAK file.
       More specifically, this section contains:
       * The number of files stored inside the PAK file
       * The name of the files stored inside the PAK file
       * The offset which the data of a file inside the PAK file starts
    
    B. The Data Part
       The data part contains the contents of each files stored inside a PAK file.
       More specifically, this section contains:
       * The number of lines for each files stored inside the PAK file
       * The contents of each file stored inside the PAK file
    
    In the following section, the structure of a PAK file will be described in
    detail:
    
    Descriptions about each column in the structure tables:
    --------------------------------------------------------
    length      : the length of the section in bytes
    description : the description of the section
    type        : the data type required by the section
    variable    : variable which the section is assigned to
    
    A. THE HEADER PART
    -------------------
    The header part of a PAK file contains information about the files inside a PAK
    file.
    
    The structure of the header part of a PAK file :
    ------------------------------------------------------------------------------
    | Length | Description                                     | Type | Variable |
    ------------------------------------------------------------------------------
    | *** NUMBER OF FILES STORED IN THE PAK FILE ***                             |
    ------------------------------------------------------------------------------
    |      4 | the number of files stored inside the PAK file  | word | n        |
    ------------------------------------------------------------------------------
    | *** INFORMATION ABOUT 1ST FILE INSIDE THE PAK FILE ***                     |
    ------------------------------------------------------------------------------
    |      4 | the length of the name of the 1st file inside   | word | p_1      |
    |        | the PAK file                                    |      |          |
    ------------------------------------------------------------------------------
    |    p_1 | the name of the 1st file inside the PAK file    | str  | <none>   |
    ------------------------------------------------------------------------------
    |      4 | the offset which the data part of the 1st file  | word | s_1      |
    |        | inside the PAK file starts from                 |      |          |
    ------------------------------------------------------------------------------
    | *** INFORMATION ABOUT 2ND FILE INSIDE THE PAK FILE ***                     |
    ------------------------------------------------------------------------------
    |      4 | the length of the name of the 2nd file inside   | word | p_2      |
    |        | the PAK file                                    |      |          |
    ------------------------------------------------------------------------------
    |    p_2 | the name of the 2nd file inside the PAK file    | str  | <none>   |
    ------------------------------------------------------------------------------
    |      4 | the offset which the data part of the 2nd file  | word | s_2      |
    |        | inside the PAK file starts from                 |      |          |
    ------------------------------------------------------------------------------
    |                                      .                                     |
    |                                      .                                     |
    |                                      .                                     |
    ------------------------------------------------------------------------------
    | *** INFORMATION ABOUT n-TH FILE INSIDE THE PAK FILE ***                    |
    ------------------------------------------------------------------------------
    |      4 | the length of the name of the n-th file inside  | word | p_n      |
    |        | the PAK file                                    |      |          |
    ------------------------------------------------------------------------------
    |    p_n | the name of the n-th file inside the PAK file   | str  | <none>   |
    ------------------------------------------------------------------------------
    |      4 | the offset which the data part of the n-th file | word | s_n      |
    |        | inside the PAK file starts from                 |      |          |
    ------------------------------------------------------------------------------
    
    B. THE DATA PART
    -----------------
    The data part contains the informations and contents of each files stored
    inside a PAK file.
    
    The structure of the data part of the 1st file inside a PAK file :
    (starts from offset s_1)
    ------------------------------------------------------------------------------
    | length | description                                     | type | variable |
    ------------------------------------------------------------------------------
    | *** THE CONTENTS OF THE 1ST FILE INSIDE THE PAK FILE ***                   |
    ------------------------------------------------------------------------------
    |      4 | the number of lines of the 1st file stored      | word | l_1      |
    |        | inside ths PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 1st line of the 1st file      | word | b_[1,1]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[1,1] | the 1st line of the 1st file inside the PAK file| str  |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 2nd line of the 1st file      | word | b_[1,2]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[1,2] | the 2nd line of the 1st file inside the PAK file| str  |          |
    ------------------------------------------------------------------------------
    |                                      .                                     |
    |                                      .                                     |
    |                                      .                                     |
    ------------------------------------------------------------------------------
    |      4 | the length of the l_1 th line of the 1st file   | word | b_[1,l_1]|
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[1,l_1]|the l_1 th line of the 1st file inside the PAK  | str  |          |
    |         |file                                            |      |          |
    ------------------------------------------------------------------------------
    
    The structure of the data part of the 2nd file inside a PAK file :
    (starts from offset s_2)
    ------------------------------------------------------------------------------
    | length | description                                     | type | variable |
    ------------------------------------------------------------------------------
    | *** THE CONTENTS OF THE 2ND FILE INSIDE THE PAK FILE ***                   |
    ------------------------------------------------------------------------------
    |      4 | the number of lines in the 2nd file stored      | word | l_2      |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 1st line of the 2nd file      | word | b_[2,1]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[2,1] | the 1st line of the 2nd file inside the PAK file| str  |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 2nd line of the 2nd file      | word | b_[2,2]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[2,2] | the 2nd line of the 2nd file inside the PAK file| str  |          |
    ------------------------------------------------------------------------------
    |                                      .                                     |
    |                                      .                                     |
    |                                      .                                     |
    ------------------------------------------------------------------------------
    |      4 | the length of the l_2 th line of the 1st file   | word | b_[2,l_2]|
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[2,l_2]|the l_2 th line of the 1st file inside the      | str  |          |
    |         |PAK file                                        |      |          |
    ------------------------------------------------------------------------------
    
                                           .
                                           .
                                           .
    
    The structure of the data part of the n-th file inside a PAK file :
    (starts from offset s_n)
    ------------------------------------------------------------------------------
    | length | description                                     | type | variable |
    ------------------------------------------------------------------------------
    | *** THE CONTENTS OF THE N-TH FILE INSIDE THE PAK FILE ***                  |
    ------------------------------------------------------------------------------
    |      4 | the number of lines in the n-th file inside the | word | l_n      |
    |        | PAK file                                        |      |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 1st line of the n-th file     | word | b_[n,1]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[n,1] | the 1st line of the n-th file inside the PAK file| str |          |
    ------------------------------------------------------------------------------
    |      4 | the length of the 2nd line of the n-th file     | word | b_[n,2]  |
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[n,2] | the 2nd line of the n-th file inside the PAK file| str |          |
    ------------------------------------------------------------------------------
    |                                      .                                     |
    |                                      .                                     |
    |                                      .                                     |
    ------------------------------------------------------------------------------
    |      4 | the length of the l_n th line of the n-th file  | word | b_[n,l_n]|
    |        | inside the PAK file                             |      |          |
    ------------------------------------------------------------------------------
    |b_[n,l_n]|the l_n th line of the n-th file inside the     | str  |          |
    |         |PAK file                                        |      |          |
    ------------------------------------------------------------------------------
    
    V. PAK ARCHIVER
    ================
    If you want to extract the contents of a PAK file or create a new PAK file, you
    can use the PAK Archiver. PAK Archiver is an utility that can be used to extract
    the contents of the PAK file. You can download the PAK Archiver for free from my
    website at the following URL :
    
      http://ronaldbg.cjb.net/
      -------------------------
    
    VI. LEGAL STUFF
    ================
    This may be not be reproduced under any circumstances except for personal,
    private use. It may not be placed on any web site or otherwise distributed
    publicly without advance written permission. Use of this guide on any other
    web site or as a section of any public display is strictly prohibited, and a
    violation of copyright.
    
    All trademarks and copyrights contained in this document are owned by their
    respective trademark and copyright holders.
    

    FAQ Display Options: Printable Version