MOD file

From Pikmin Technical Knowledge Base
Revision as of 14:49, 5 October 2018 by Minty Meeo (talk | contribs) (Created page with "The following is an unabridged copy of my current notes on the MOD file format. <pre> MOD files practice 0x20 alignment for sections ??? Section (0x00000000) { 0x08 Subhe...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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