Skip to content
Florian Ziesche edited this page May 14, 2015 · 18 revisions

Header

  • Length: 38 bytes
Offset Length Name Description
0 2 wall height (scale #1) relative wall height, 255 corresponding to one floor height?
2 2 camera height height/y-offset of the camera/player on the map, computed as “(camera_height << 16) + 0xA5”, but also used as-is/16-bit
4 2 unused -
6 2 background background of the map (→ 3DBCKGR)
8 2 background y-position max(1096 – (y_position >> 16), 0)
10 2 fog distance amount of tiles when the fog starts (should be lower than max visible tiles)
12 2 fog red value -
14 2 fog green value -
16 2 fog blue value -
18 1 unknown -
19 1 unused -
20 1 background color palette index
21 1 unused -
22 2 fog mode ?
24 2 max light strength max light strength
26 2 wall width (scale #2) relative wall width, used as (1 << wall_width), always >= 128 and <= 1024
28 2 background tile amount -
30 2 max visible tiles viewing distance / how many tiles the player can see
32 2 unused -
34 2 lighting lighting, multiplied with data @0xFAD66 and divided by 100, not entirely sure how being used
36 2 unused -

Objects

  • First 2 bytes: amount of object entries
  • Length: 2 + #objects * 66 bytes
  • Note: the amount of sub-objects is always 8, but not all are used!
Offset Length Name Description
0 1 autogfx type AUTOGFX
1 1 0×00 0×00
Sub-Objects (amount: 8, length 8 bytes):
i*8 + 0 2 x-offset x-offset or position on a tile
i*8 + 2 2 y-offset y-offset or position on a tile
i*8 + 4 2 z-offset z-offset or position on a tile
i*8 + 6 2 object info number object info number (if 0: empty/ignore sub-object)

Floor/Ceiling

  • First 2 bytes: amount of floor/ceiling entries
  • Length: 2 + #floors/ceilings * 10 bytes
  • Note: the texture size of all floors/ceilings is 64*64 px
Offset Length Name Description
0 1 properties → Floor/Ceiling Properties below
1 1 unknown -
2 1 unknown always 0
3 1 unknown -
4 1 animation #animations
5 1 unknown always 0
6 2 texture number texture number (→ 3DFLOOR)
8 2 unknown -

Floor/Ceiling Properties

  • Set of flags (1 byte)
Bit Effect
0 unknown
1 self-illuminating floor ?
2 not walkable
3 unknown
4 unknown
5 walkable
6 grayed ?
7 floor using self-illuminating colors ?

Object Info (additional/actual object data)

  • First 2 bytes: amount of object info entries
  • Length: 2 + #object infos * 16 bytes
Offset Length Name Description
0 1 properties properties & 0×4 == 1: object is on the floor/ceiling, else: object faces the player
1 3 collision collision data
4 2 texture number texture number (→ 3DOBJEC)
6 1 animations #animations
7 1 unknown always 0
8 2 texture width texture width
10 2 texture height texture height
12 2 map x size x-size of the object texture on the map
14 2 map y size y-size of the object texture on the map

Walls

  • First 2 bytes: amount of wall entries
  • Length: 2 + #walls * 16 bytes + #overlays * 12 bytes
  • Note: each wall is directly followed by its overlay data
Offset Length Name Description
0 1 properties → Wall Properties below
1 3 collision collision data
4 2 texture number texture number (→ 3DWALLS)
6 1 animations #animations
7 1 autogfx type AUTOGFX
8 1 palette index palette index (only used when it’s a transparent wall → filled with that color)
9 1 unknown -
10 2 texture width texture width
12 2 texture height texture height
14 2 overlay count amount of overlays

Wall Properties

  • Set of flags (1 byte)
Bit Effect
0 unknown
1 self-illuminating wall
2 write overlay 0×00 bytes
3 unknown
4 unknown
5 alpha-tested
6 transparent
7 wall using self-illuminating colors ?

Walls Overlays

Offset Length Name Description
0 2 texture number texture number (→ 3DOVERL)
2 1 animations #animations
3 1 write zero write 0×00 bytes? (0: yes, else: no)
4 2 y-offset y-offset on the wall texture
6 2 x-offset x-offset on the wall texture
8 2 texture width texture width
10 2 texture height texture height
Clone this wiki locally