Skip to content

Formats

AzazelN28 edited this page May 29, 2020 · 3 revisions

Star Wars: Dark Forces - File formats

Containers (.GOB)

This files contains all the game resources, in the original game there are four GOBS:

  • DARK.GOB: Contains common data and all the levels.
  • SPRITES.GOB: Contains enemy and item sprites.
  • TEXTURES.GOB: Contains textures.
  • SOUNDS.GOB: Contains sounds and musics.

Header

Value Size Type
GOB\x0a 4 bytes String
Directory offset 4 bytes Unsigned Int 32

Directory Header

Value Size Type
Directory count 4 bytes Unsigned Int 32

Directory Entry

Value Size Type
Entry offset 4 bytes Unsigned Int 32
Entry size 4 bytes Unsigned Int 32
Entry name 13 bytes String

Levels (JEDI.LVL)

This is a text file that contains:

  • A line with the text LEVELS and the amount of levels in the file.
  • A list of comma separated values with the name of the level, the filename and a list of directories.

Configuration (JEDI.CFG)

Cutscenes (CUTSCENE.LST)

This is a text file that contains:

  • A line with CUT 1.0
  • A line with the amount of Cutscenes in the file (CUTS <amount>).
  • A series of lines with a number separated by a colon and tabulated data with the following info: <resource.lfd> <scene file> <speed> <next scene> <skip scene> <cutmuse.txt SEQ # (midi)> <% midi volume>

Example: CUTSCENE.LST

CUT 1.0 

CUTS 39

# <num>                 <scene file>            <next scene>    <cutmuse.txt SEQ # (midi)>
#       <resource.lfd>                  <speed>         <skip scene>    <% midi vol -- 110 = 10% higher than normal>

# INTRODUCTION - 10
10:     logo.lfd        logo            10      20      0       1       110
20:     swlogo.lfd      swlogo          10      30      0       0       110

Cutscene/Menu (.LFD)

LFDs are used in multiple LucasArts games and they can contain the following data:

  • Palettes
  • Animations
  • Bitmaps
  • Sounds

Messages (.MSG)

This are text files containing:

  • A line with MSG 1.0
  • The amount of messages (specified by MSGS <amount>)
  • A series of lines with two numbers separated by spaces and then a message separated by a colon.

Example: LOCAL.MSG

MSG 1.0 
MSGS 38

# mensajes generales
  10 0:   "Pulsa una tecla para salir..."
  20 0:   "Pulsa una tecla para continuar..."

Level Geometry (.LEV)

These are text files containing all the level geometry.

Example: TALAY.LEV

LEV 2.1
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# This file has been converted from AutoCAD file 'TALAY'.
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEVELNAME TALAY 
PALETTE talay.PAL
MUSIC citymus2.GMD
PARALLAX 1024.0000 1024.0000

#`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~
#               T e x t u r e   T a b l e
#
#`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~
#   Lowercase textures are from the 'Extra' list.
TEXTURES 160
  TEXTURE: CESUNSET.BM           #  0
  ~~~MORE TEXTURES~~~

NUMSECTORS 327
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#               S e c t o r   D e f i n i t i o n
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SECTOR 0   #ACAD: 3137F23
  NAME     powerdoor02
  AMBIENT  10
  FLOOR TEXTURE     46    3.00   -0.06  2
  FLOOR ALTITUDE    -2.00
  CEILING TEXTURE   90    0.00    0.00  2
  CEILING ALTITUDE -10.00
  SECOND ALTITUDE   0.00
  FLAGS 0 0 24
  LAYER 1

  VERTICES 00004
    X: 180.00     Z: 216.00      #  0
    X: 180.00     Z: 208.00      #  1
    X: 179.00     Z: 208.00      #  2
    X: 179.00     Z: 216.00      #  3

  WALLS 4   #ACAD: 3137F28 3137F27 3137F26 3137F25
    WALL LEFT:   0  RIGHT:   1  MID: 153   0.00   0.00   0  TOP: 153   0.00   0.00   0  BOT: 153   0.00   0.00   0  SIGN:  -1   0.00   0.00  ADJOIN:  28  MIRROR:   1  WALK:  28  FLAGS: 0 0 0  LIGHT: 6
    WALL LEFT:   1  RIGHT:   2  MID:  45   0.00   0.02   0  TOP: 118   0.00   0.00   0  BOT: 118   0.00   0.00   0  SIGN:  -1   0.00   0.00  ADJOIN:  -1  MIRROR:  -1  WALK:  -1  FLAGS: 0 0 0  LIGHT: 0
    WALL LEFT:   2  RIGHT:   3  MID: 153   0.00   0.00   0  TOP: 153   0.00   0.00   0  BOT: 153   0.00   0.00   0  SIGN:  -1   0.00   0.00  ADJOIN:  96  MIRROR:   0  WALK:  96  FLAGS: 0 0 0  LIGHT: 6
    WALL LEFT:   3  RIGHT:   0  MID:  42   0.00   1.27   0  TOP: 118   0.00   0.00   0  BOT: 118   0.00   0.00   0  SIGN:  -1   0.00   0.00  ADJOIN:  -1  MIRROR:  -1  WALK:  -1  FLAGS: 0 0 0  LIGHT: 0

Level Scripting (.INF)

Example: TALAY.INF

INF 1.0
/*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÚÄÙ      This file contains information definitions for a single level    ÚÄÙ                                                                                                                                                     ;
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ*/

LEVELNAME AGAMAR

ITEMS 54
/*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÚÄÙ                   Complete elevator and Level Goals                   ÚÄÙ                                                                                                                                                     ;
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ*/
  item: sector            name: complete
    seq 
      class: elevator move_floor
      stop: 0 1 
      stop: 0.1 3
        page: 1 takeoff1.voc
      stop: 0.2 0
        page: 2 takeoff2.voc
      stop: 0.3 hold
      stop: 0.5 hold
      stop: 1 0 
        message: 5 stupid master_on
        message: 5 gen1 master_on 
        message: 5 gen2 master_on 
        message: 5 gen3 master_on 
        message: 5 gen4 master_on 
        message: 5 gen5 master_on 
        message: 5 gen6 master_on 
        message: 5 gen7 master_on 
        page:   5 m02kyl01.voc
      stop: 13 0
        page:   6 m02jan01.voc
      stop: 28 0
        page:   7 m02kyl02.voc
      stop: 56 0
        page:   8 m02jan02.voc

Level Goals (.GOL)

These are text files with level objectives (or goals).

GOL 1.0
  GOAL: 0   TRIG:   0
  GOAL: 1       ITEM:   5 # DT weapon
  GOAL: 2       TRIG:   1       # Return to your ship for immediate evacuation.

Level Objects (.O)

These are text files with level object positions.

O 1.1

/* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  This file has been created from TALAY.DXF.

 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~*/

LEVELNAME TALAY

PODS 2
    POD: _8X16.3DO
    POD: KYL3DO.3DO

SPRS 9
    SPR: IARMOR.WAX
    SPR: LIT2.WAX
    SPR: TALLIT1.WAX
    SPR: LIT1.WAX
    SPR: STORMFIN.WAX
    SPR: OFFCFIN.WAX
    SPR: COMMANDO.WAX
    SPR: ILIFE.WAX
    SPR: IINVINC.WAX

FMES 12
    FME: IENERGY.FME
    FME: SMALITE1.FME
    FME: SMALITE2.FME
    FME: DEDBODY3.FME
    FME: DEDBODY2.FME
    FME: DEDBODY1.FME
    FME: IDTGUN.FME
		~~~MORE FMES~~~

SOUNDS 0

OBJECTS 352
    /* name: me */
    CLASS: SPIRIT     DATA: 0   X: -4.13  Y: 0.00   Z: 132.74 PCH: 0.00   YAW: 318.20 ROL: 0.00   DIFF: 1
        SEQ
            TYPE:      PLAYER
            EYE:       TRUE
        SEQEND
    CLASS: FRAME      DATA: 0   X: 309.97 Y: 4.00   Z: 299.08 PCH: 0.00   YAW: 180.00 ROL: 0.00   DIFF: 1
        SEQ
            TYPE:      ENERGY
        SEQEND

3D Objects (.3DO)

These are text files containing 3D object geometry:

Example: ARCSTRUT.3DO

3DO 1.2
#
# This file has been converted from 3d Studio file 'arcstrut.asc'.
# The scale factor used was: 1.000000
#
3DONAME arcstrut
OBJECTS 00001
VERTICES 00012
POLYGONS 00014
PALETTE l:\levels\palettes\arc.pal

#-------------------------------------------------------
TEXTURES 0

#---------------------------------------------------------------------------
OBJECT "struts"
TEXTURE -1  # 
VERTICES 12
#    num:        x           y           z
      0:       0.118      -0.010      -5.438
      1:       1.500       0.000      -1.402
      2:       0.121      -0.010      -0.171
      3:      14.035      21.688      14.065
      4:      11.733      13.394      16.321
      5:       8.627      21.688      17.188
      6:      -0.118      -0.010      -5.438
      7:      -1.500       0.000      -1.402
      8:      -0.121      -0.010      -0.171
      9:     -14.035      21.688      14.065
     10:     -11.733      13.394      16.321
     11:      -8.627      21.688      17.188

TRIANGLES 14
#    num:    < a >  < b >  < c > <color> <shading> #<material>
      0:      0      1      4    165   GOURAUD   # RED4G
      1:      0      4      3    165   GOURAUD   # RED4G

3D Animations (.VUE)

These are text files containing transformation matrices for animated objects:

There are multiple versions of these files:

  • VUE 1: First version. One transform line per frame.
  • VERSION 201: Second version (or version 2.0.1), this includes frame indicators, camera position and multiple transforms per frame.

Example: CARGOALL.VUE

vue 1
transform "crago" -0.0299 0.003 0.9995 -0.9944 -0.1014 -0.0295 0.1013 -0.9948 0.0061 -158.4134 -81.4752 -91.499
transform "crago" -0.0301 0.0033 0.9995 -0.9787 -0.2033 -0.0288 0.2031 -0.9791 0.0093 -159.2948 -81.425 -82.0532
transform "crago" -0.0303 0.0035 0.9995 -0.9538 -0.2992 -0.0279 0.299 -0.9542 0.0124 -160.1719 -81.3248 -73.0346
transform "crago" -0.0307 0.0035 0.9995 -0.9213 -0.388 -0.0269 0.3877 -0.9217 0.0152 -161.0444 -81.1713 -64.4697
transform "crago" -0.0311 0.0035 0.9995 -0.8829 -0.4689 -0.0259 0.4685 -0.8833 0.0176 -161.9118 -80.9614 -56.3853
transform "crago" -0.0316 0.0032 0.9995 -0.8405 -0.5413 -0.0249 0.541 -0.8408 0.0199 -162.7741 -80.692 -48.8081
transform "crago" -0.0322 0.0029 0.9995 -0.7958 -0.6051 -0.0239 0.6047 -0.7961 0.0218 -163.631 -80.3599 -41.7647
transform "crago" -0.0328 0.0024 0.9995 -0.7507 -0.6603 -0.0231 0.6599 -0.751 0.0235 -164.482 -79.9621 -35.2819
transform "crago" -0.0335 0.0017 0.9994 -0.7068 -0.7071 -0.0225 0.7066 -0.7072 0.0249 -165.327 -79.4953 -29.3863
transform "crago" -0.0342 0.0009 0.9994 -0.6657 -0.7459 -0.0221 0.7454 -0.6661 0.0261 -166.1658 -78.9565 -24.1046
transform "crago" -0.0349 0 0.9994 -0.6289 -0.7771 -0.022 0.7767 -0.6293 0.0271 -166.9979 -78.3424 -19.4636
transform "crago" -0.0352 0 0.9994 -0.5954 -0.8032 -0.021 0.8027 -0.5957 0.0282 -167.8236 -77.6627 -15.313
transform "crago" -0.0346 0.0018 0.9994 -0.5633 -0.8261 -0.0181 0.8255 -0.5636 0.0296 -168.6432 -76.9306 -11.4772
transform "crago" -0.0335 0.0053 0.9994 -0.5329 -0.8461 -0.0134 0.8455 -0.533 0.0311 -169.4571 -76.1487 -7.9447
transform "crago" -0.0319 0.0104 0.9994 -0.5042 -0.8636 -0.0071 0.863 -0.5041 0.0327 -170.2658 -75.3196 -4.704
transform "crago" -0.0299 0.0169 0.9994 -0.4774 -0.8787 0.0006 0.8782 -0.4771 0.0343 -171.0694 -74.4459 -1.7439
transform "crago" -0.0276 0.0248 0.9993 -0.4525 -0.8917 0.0096 0.8914 -0.4519 0.0358 -171.8684 -73.5301 0.9472
transform "crago" -0.0251 0.0338 0.9991 -0.4294 -0.9029 0.0197 0.9027 -0.4286 0.0372 -172.6631 -72.575 3.3807
transform "crago" -0.0226 0.0438 0.9988 -0.4083 -0.9123 0.0308 0.9126 -0.4071 0.0384 -173.4538 -71.583 5.568
transform "crago" -0.0199 0.0546 0.9983 -0.3891 -0.9202 0.0426 0.921 -0.3876 0.0396 -174.241 -70.5568 7.5206
transform "crago" -0.0172 0.0661 0.9977 -0.3716 -0.9267 0.055 0.9282 -0.3698 0.0405 -175.0248 -69.4989 9.2498

Example: MATT.VUE

VERSION 201

frame 0
transform "kyles" 0 1 0 -1 0 0 0 0 1 541.3742 217.8428 208.4506
transform "01" 1 0 0 0 1 0 0 0 1 748.5 313.7828 197
camera 723.09 492.1508 195.9022 617.0562 288.6565 248.0817 0 32.6531

Color Maps (.CMP)

These are binary files containing color maps. These color maps are equivalence tables for different colors in the palette color space. It's used to transform different texture colors depending on sector or wall lightning values. A fully lighted sector should use the first color map, a non lighted sector should use the last color map.

Palettes (.PAL)

These are binary files containing palette colors.

Textures (.BM)

These are binary files containing textures.

Sprites (.WAX)

These are binary files containing sprites.

A .WAX file can contain:

  • 32 different state
  • 32 different angles per state
  • 32 different frames per angle per state

Frames (.FME)

These are binary files containing static sprites, like non animated items or sprites.

Musics (.GMD)

These are binary files. They contain a small header followed by a valid MIDI standard file.

Sounds (.VOC)

These are binary files containing sounds using the Creative Labs VOC file format.

Clone this wiki locally