MOD file

From Pikmin Technical Knowledge Base
Revision as of 16:27, 6 October 2018 by Espyo (talk | contribs)
Jump to navigation Jump to search

To do: Cleanup.

The following is an unabridged copy of my current notes on the MOD file format.

MOD files practice 0x20 alignment for sections



??? Section (0x00000000) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000000)
		0x04 int	# Size of Container
	}
	Container {
		???
	)
)

Visual Geometry (0x00000010) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000010)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of Geometry Vertex structs (var %10)
		0x14 unk	# Padding?
		0x0C struct	# Geometry Vertex {
			0x04 float	# X position
			0x04 float	# Y position
			0x04 float	# Z position
		} [•] Repeated %10 times.
	}
}

??? section (0x00000013) {

}

??? section (0x00000011) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000011)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ??? structs (var %11)
		0x14 unk	# Padding?
		0x0C struct	# ??? {
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
		} [•] Repeated %11 times.
	}
}

??? section (0x00000018) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000018)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ??? structs (var %18)
		0x14 unk	# Padding?
		0x20 struct	# ??? {
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
			0x04 float	# 
		} [•] Repeated %18 times.
	}
}

Textures (0x00000020) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000020)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of texture files (var %20)
		0x14 unk	# Padding?
		TXE file {
		} [•] Repeated %20 times.
	}
}

??? section (0x00000022) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000022)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ??? structs (var %22)
		0x14 unk	# Padding?
		0x20 struct	# ??? {
			0x04 unk
			0x04 data
			0x18 unk
		} [•] Repeated %22 times??
	}
)

??? section (0x00000030) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000030)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ??? structs (var %30)
		0x14 unk	# Padding?
		0x20 struct	# ??? {
			0x04 int
			0x04 unk
			0x04 int?
			0x14 unk
		} [•] Repeated %30 times??
	}
)

??? section (0x00000040) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000040)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ??? structs (var %40)
		0x14 unk	# Padding?
		0x20 struct	# ??? {
			0x04 int?
			0x1C unk
		} [•] Repeated %40 times??
	}
}

??? section (0x00000050)
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000050)
		0x04 int	# Size of Container
	}
	Container {
		???
	}
}

Floor Collision Geometry (0x00000060) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000060)
		0x04 int	# Size of Container
	}
	Container {
		0x04 int	# Number of ?something? structs (var %60)
		0x14 unk	# Padding?
		0x4C? struct	# ?something? {
			
			
			
		} [•] Repeated %60 times.
	}
}

??? section (0x00000100) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000100)
		0x04 int	# Size of Container
	}
	Container {
		???
	}
}

MapMgr bounds + Coll tris? (0x00000110) {
	0x08 Subheader {
		0x04 int	# Section identifier (0x00000110)
		0x04 int	# Size of Container
	}
	Container {
		mapMgr bounds {
			0x04 float	# X1
			0x04 float	# Y1
			0x04 float	# Z1
			0x04 float	# X2
			0x04 float	# Y2
			0x04 float	# Z2
		}
		0x04 float
		Coll tris? {
			0x?? ints
		}
	}
}
Credits: Minty_Meeo