User:Daveh/Redguard File Formats

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

Notes on file formats in Redguard. Under heavy construction...


File Notes[edit]

GOG Version[edit]

  • 3dinfo.txt -- Text file with some basic information about a few .3D files. Generated by Hugh's Marvelous 3D Information Program.
  • Fog.ini -- Numbers defining how fog behaves as a function of distance?
  • Fxart.txt -- Directory listing of 24 3D files.
  • Fxart3dc.txt -- Directory list of 201 3DC files.
  • Logfile.txt -- Short text log file of Collision Sphere Generation.
  • More -- Text file showing version numbers of 65 3D files. Generated by Hugh's Marvelous 3D Information Program.

Original? Version[edit]

  • Tex.txt -- 3 digit number on each line for every Texture.### file.

Version Differences[edit]

  • ROB, 3D and 3DC files have changed.
  • GOG version has Texbsi.### instead of Texture.### files.
  • Files Only in GOG Version:
  • 3DFXCYRS.3DC
  • 3dinfo.txt
  • 4TODD001.3DC
  • CATA.COL
  • CATACOMB.COL
  • CAVETEST.COL
  • CLDTEST.COL
  • CLOTH.COL
  • COINS.COL
  • CRAK0000.3D
  • CRAK0000.3DC
  • CRAK0001.3DC
  • CRAK0002.3DC
  • CRAK0003.3DC
  • CRAK0004.3DC
  • CRAK0005.3DC
  • CRAK0006.3DC
  • CRAK0007.3DC
  • CRAK0008.3DC
  • CRAK0009.3DC
  • CRAK0010.3DC
  • CRAK0011.3DC
  • CRAK0012.3DC
  • CRAK0013.3DC
  • CRAK0014.3DC
  • CRAK0015.3DC
  • CRAK0016.3DC
  • CRAK0017.3DC
  • CRAK0018.3DC
  • CRAK0019.3DC
  • CRAK0020.3DC
  • CRAK0021.3DC
  • CRAK0022.3DC
  • CRAK0023.3DC
  • CRAK0024.3D
  • CRAK0024.3DC
  • CV_BOOM.3DC
  • CV_TRAP1.3DC
  • CV_TRAP2.3DC
  • CV_TRAP3.3DC
  • CV_TRAP4.3DC
  • CV_TRAP5.3DC
  • CV_TRAP6.3DC
  • CYRSTEST.3DC
  • CYRUSA01.3DC
  • FLAG_RL.3DC
  • FOG.INI
  • fxart.txt
  • fxart3dc.txt
  • GARDSDED.3DC
  • HIDEOUT2.COL
  • HUGH.COL
  • ISLAND.COL
  • ISLE3DFX.COL
  • LHBM0.3D
  • LHBM0.3DC
  • LHBM0000.3DC
  • LHBM1.3D
  • LHBM1.3DC
  • LHBM2.3DC
  • LHBM3.3D
  • LHBM3.3DC
  • LHBM4.3D
  • LHBM4.3DC
  • LOGFILE.TXT
  • MBPGA001.3DC
  • MBPGA002.3DC
  • MBPGA003.3DC
  • MENUA001.3DC
  • MGUILD2.COL
  • MKCRATE.3D
  • MKCRATE1.3D
  • more
  • NECRO.COL
  • NECRO2.COL
  • OBSERVAT.COL
  • PALACE00.COL
  • REDCAVE.COL
  • REDEDIT.COL
  • REDGUARD.COL
  • SCR3D00.3DC
  • SCR3D01.3DC
  • SCR3D02.3DC
  • SCR3D03.3DC
  • SCR3D1.3DC
  • SKELETON.3DC
  • SKY.COL
  • SKY001.BSI
  • SKY888.BSI
  • SKY888.COL
  • SKY899.BSI
  • SKY899.COL
  • SKYNEC.BSI
  • SKYNEC.COL
  • SKYNIT.BSI
  • SKYNIT.COL
  • sun001.bsi
  • TAVERN.COL
  • TROLA000.3DC
  • TROLL.3DC
  • TV_BANNR.3D
  • TV_BAR.3D
  • TV_BARRL.3D
  • TV_BMUGG.3D
  • TV_BOTTL.3DC
  • XWANTED.3D
  • Files Only in Original? Version:
  • art_pal.col
  • cata.col
  • catacomb.col
  • catatest.col
  • CRAIGTST.ROB
  • CYRSTEST.ROB
  • DIALTEST.ROB
  • HAZE.000
  • HAZE.001
  • HAZE.002
  • HAZE.003
  • HAZE.004
  • haze.005
  • HAZE.006
  • HAZE.010
  • haze.017
  • HAZE.028
  • HAZE.666
  • haze.961
  • HAZE.999
  • HAZE_OLD.001
  • HOLETEST.ROB
  • island.col
  • KURT2.ROB
  • light.dat
  • MKTEST.ROB
  • necro.col
  • necro2.col
  • observat.col
  • palace00.col
  • redcave.col
  • rededit.col
  • redguard.col
  • SEANTEST.ROB
  • SHADE.000
  • SHADE.001
  • SHADE.002
  • SHADE.003
  • SHADE.004
  • SHADE.005
  • SHADE.006
  • SHADE.010
  • SHADE.013
  • SHADE.017
  • SHADE.028
  • SHADE.600
  • SHADE.666
  • SHADE.999
  • sky.col
  • sky61.col
  • STROSMKI.ROB
  • TEX.TXT
  • TODDCATA.ROB
  • TRAVIS.ROB


File Types[edit]

  • 3D
  • Assumably 3D model data.
  • Generally much smaller than the 3DC files.
  • 3DC
  • Assumably 3D model data.
  • Possibly animated character data due to the large size of some of the files.
  • ROB
  • Some sort of 3D data, perhaps world/dungeon models based on their filenames.
  • COL
  • All 776 bytes.
  • Assumably palette data (8 byte header + 256 x3 BYTE RGB color data).
  • TEXTURE.###
  • Looks like uncompressed texture data. Possibly a large header followed by 256 wide image data.
  • TEXBSI.###
  • Texture data, possibly in some sort of compressed format.
  • HAZE.###
  • Looks like uncompressed grayscale image data.
  • Exactly 16384 bytes (128x128).
  • SHADE.###
  • Looks like uncompressed grayscale image data.
  • Exactly 16384 bytes (128x128).


.3D / .3DC File Format[edit]

All values are little endian unless specified. Typical file structure looks like:

   Header (64 bytes)
   Face Data
   Vertex Coordinate Data
   Face Normal Data
   Animation Frame Data
   Section 4 Data
   UV Offset Data
   UV Coordinate Data

The Section 4 Data and UV Offset Data may not exist in some files.


Header[edit]

At the start of the file there is 64 bytes of header data:

    byte  Version[4]
    dword NumVertices
    dword NumFaces
    dword Radius
    dword NumFrames
    dword OffsetFrameData
    dword NumUVOffsets1
    dword OffsetSection4
    dword Section4Count
    dword UnknownZero
    dword OffsetUVOffsets
    dword OffsetUVData
    dword OffsetVertexCoors
    dword OffsetFaceNormals
    dword NumUVOffsets2
    dword OffsetFaceData
  • Version -- A 4 byte string with no \0 terminating character. Typical values include "v5.0", "v4.0", "v2.7", "v2.6", etc....
  • NumVertices -- Number of vertices in the object. Vertices can be used by multiple faces.
  • NumFaces -- Number of faces in the object. Note that face can be comprised of more than 3 points.
  • Radius -- Exact purpose is unknown but may be related to the size of the object or the object's collision radius.
  • NumFrames -- (Assumed) Number of animation frames in the file. In 3D files this value is always 1.
  • OffsetFrameData -- Offset to the frame data section from the start of the file.
  • NumUVOffsets1 -- Number of dword offsets in the UVOffsetData section. Seems to be always the same as NumUVOffsets2?
  • OffsetSection4 -- Offset to section 4 data (unknown purpose). Can be 0 in 3D files. Is always 0 in 3DC files.
  • Section4Count -- Number records in the section 4 data (unknown purpose). Is always 0 in 3DC files.
  • UnknownZero -- Always 0?
  • OffsetUVOffsets -- Offset to the UV offset data from the start of the file.
  • OffsetUVData -- Offset to the UV coordinate data from the start of the file.
  • OffsetVertexCoors -- Offset to the vertex coordinate data from the start of the file.
  • OffsetFaceNormals -- Offsert to the face normal data from the start of the file.
  • NumUVOffsets2 -- Number of dword offsets in the UVOffsetData section. Seems to be always the same as NumUVOffsets1?
  • OffsetFaceData -- Offset to the face data from the start of the file. Is always 0x40 (right after the header data).


Face Data[edit]

A consecutive array of variable sized records. Number of records is given by the value of NumFaces in the header. Record structure is:

    byte VertexCount
    byte Unknown1
    dword Unknown2
    dword Unknown3
    VertexData[VertexCount]
  • VertexCount -- The number of vertices in this face (can be more than 3).
  • Unknown1 -- Unknown.
  • Unknown2 -- Unknown.
  • Unknown3 -- Unknown.
  • VertexData -- A series of VertexCount records 8 byte in size (see below).

The VertexData subrecords have the format:

    dword VertexIndex
    dword Flags
  • VertexIndex -- Index of the vertex (0-based) from the vertex coordinate data.
  • Flags -- Unknown

The total size of this section cannot be known until you read all the subrecords and find the VertexCount for each one.

Vertex Coordinate Data[edit]

An array of XYZ coordinate data with the number of records given by the value of NumVertices in the header. Each coordinate is a signed 32-bit integer.

    int X
    int Y
    int Z
  • X, Y, Z -- An integer coordinate value. To get an idea of relative size the crate model is 16384 x 16384 x 16384 units in size.

Total size of this section will be: NumVertices * 4 * 3


Face Normal Data[edit]

An array of XYZ coordinate data with the number of records given by the value of NumFaces in the header. Each coordinate is a signed 32-bit integer.

    int X
    int Y
    int Z
  • X, Y, Z -- An integer coordinate value. Values seem to be +/- 256.

Total size of this section will be: NumFaces * 4 * 3


Animation Frame Data[edit]

In 3D files (or files with NumFrames value of 1) this section is always 16 bytes in size.

Unknown data format.


Section 4 Data[edit]

Unknown data and format. This data section doesn't exist when the OffsetSection4 value in the header is 0 or the Section4Count value is 0 (?).


UV Offset Data[edit]

File offsets from the start of the file into the UV coordinate data. Only exists in 3D files. In 3DC files this section is missing (the OffsetUVOffsets value in the header is 0).

    dword UVOffsets[NumUVOffsets2]

Total size of this data section is: 4 * NumUVOffsets2


UV Coordinate Data[edit]

A series of XYZ float coordinate data assumably used for UV texturing data. Number of records here depends on the type of file:

  • 3D File -- Number of records is equal to the number of offsets in the UV Offset Data section (NumUVOffsets1 or NumUVOffsets2).
  • 3DC File -- Number of records is equal to the number of vertices.
    float X
    float Y
    float Z
  • X, Y, Z -- Assumed to be UVW texture coordinates of some sort. Typically values range from -1 to 1.