Skip to content
AuriRex edited this page Oct 27, 2019 · 5 revisions

ZMB File

All values are stored as little endian except if stated otherwise.

Offset Type Description
00 char[8] always magic string ‘BPAM1BMZ’
08 u32 File Size
0C u32 Unknown
10 u8[16] always ‘04 03 02 01 04 03 02 01 04 03 02 01 04 03 02 01’
20 sub_headers[9] 9 different sub-headers with varying sizes

Sub Headers

todo

  • ROMB
  • ARAB
  • PLYR
  • CAME
  • RALB
  • ROOM
  • WARP
  • MPOB
  • NPCA

Every Sub-Header has the same initial fields:

Offset Type Description
00 char[4] magic Sub-Header string
04 u32 Sub-Element length (starting from local offset 00)

A Sub-Element is the Sub-Header with all of its children.

ROMB / Read Only Memory Binary? Header

Unknown!

ARAB / Area Bounds? Header

PLYR / Player Header

CAME / Camera Header

RALB / ??? Header

Seems to be related with Phantom paths.

ROOM / Room Header

Music ID

Environment Lighting (unused in game)

WARP / Warp Header

Default Sub-Header with Children count.

Offset Type Description
00 char[4] magic Sub-Header string
04 u32 Sub-Element length (starting from local offset 00)
08 u16 Children count
0A padding 2 byte ‘FF FF’
0C WARP_Element[n] n Warp Elements , n = children count

WARP Element

One WARP Element is 24 Bytes long.

Offset Type Description
00 u8 Warp ID / Unique ID / Primary Key
01 u8 Fade / Transition Type
02 u8 Area ID
03 u8 Destination Warp ID
04 char[16] Destination Map Name [BigEndian]
14 u32 Links Run Direction

MPOB / ?? Object Header

NPCA / NPC Header