PMP (File Format)

From Wexos's Wiki
Revision as of 17:58, 1 May 2024 by Wexos (talk | contribs) (Imported from avsys wiki)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

PMP (Pack MaP) is a file format used in Wii Sports and Wii Sports Resort. It is used to specify map data, such as starting positions and object positions.

File Format

Header

The file starts with the following header:

Offset Type Description
0x00 Char[4] File magic. Always PMPF in ASCII.
0x04 UInt32 Unknown.
0x08 UInt16 Flag. Lowest bit sets whether the file has been relocated or not.
0x0A UInt16 Unknown.
0x0C UInt32 Unknown.
0x10 UInt16 Number of objects.
0x12 UInt16 Number of routes.
0x14 UInt16 Number of route points.
0x16 UInt16[0x15] Unknown.
0x40 UInt32 Object array offset.
0x44 UInt32 Route array offset.
0x48 UInt32 Route point array offset.
0x4C UInt32[0x0D] Unknown.

Object

Offset Type Description
0x00 UInt32 Object ID.
0x04 Byte Unknown.
0x05 Byte Unknown.
0x06 UInt16 Unknown.
0x08 Float[3] Translation of the object.
0x14 Float[3] Scale of the object.
0x20 Float[3][3] 3x3 rotation matrix stored row by row but reversed order. The rotation is left-handed XYZ euler.
0x44 Int32 Route index. -1 means no linked route.
0x48 UInt16[8] Object settings. What the settings means denends on the object ID.

Golf

The following object IDs are used in golf in Wii Sports. It is unknown if these are global IDs or if they are different for each game mode.

ID BRRES MDL0 Description
0x00010000 Start position.
0x00010001 glf_cup glf_cup, glf_cup_side Golf hole.
0x00010002 glf_tree1 glf_tree1, glf_tree1_LOD, glf_tree1_sh Tree 1.
0x00010003 glf_tree2 glf_tree2, glf_tree2_LOD, glf_tree2_sh Tree 2.
0x00010004 glf_tree1 glf_tree1_env Tree 1 fake water reflection.
0x00010005 glf_tree2 glf_tree2_env Tree 2 fake water reflection.
0x00010006 glf_tree3 glf_tree3, glf_tree3_LOD, glf_tree3_sh Unused tree 3.
0x00010007 glf_tree3 glf_tree3_env Unused tree 3 fake water reflection.
0x00010008 glf_sky glf_sky Sky box. There is a another MDL0, glf_sky2, which seems unused.
0x0001000A glf_teeOBJ glf_teeOBJ Tee marker.
0x0001000B glf_tree4 glf_tree4, glf_tree4_LOD, glf_tree4_sh Unused tree 4.
0x0001000C glf_tree4 glf_tree4_env Unused tree 4 fake water reflection.
0x0001000D glf_tree5 glf_tree5, glf_tree5_LOD, glf_tree5_sh Unused tree 5.
0x0001000E glf_tree5 glf_tree5_env Unused tree 5 fake water reflection.
0x00010011 glf_mato glf_mato_A Large practice target.
0x00010012 glf_mato glf_mato_B Unused practice target.
0x00010013 glf_mato glf_mato_C, glf_matoWATER_C, glf_matoWAVE_C Small practice target.
0x00010014 glf_mato glf_mato_D Unused practice target.

Route

Offset Type Description
0x00 UInt16 Number of points.
0x02 UInt16 Unknown.
0x04 UInt16 Unknown.
0x06 UInt16 Group ID.
0x08 Char[0x10] Route name in Shift-JIS.
0x18 UInt32 Route point index. Index of the first point which is part of this route.
0x1C UInt16 Unknown.
0x1E UInt16 Unknown.

Route Point

Offset Type Description
0x00 Float[3] Position of the point.
0x0C Byte[8] Unknown.

Tools

The following tools can handle PMP files:

  • (none)