PMP (File Format)
From Wexos's Wiki
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)