Pages
Online demo
News

Links
GitHub Organization
Engine source code
Website source code

Downloads
Editor
Base files (required)
Linux x86_64
Windows i686
Engine
Base files (required)
Linux x86_64
Linux i686
Windows i686
Xbox (NXDK)
Dedicated server
Linux x86_64
Windows i686

Documentation
Editor
PBASIC
The BASICs
Reference
Engine
File formats
P3M (3D models)
PTF (Textures)
PTM (Tracker music)
P3M (3D models)

Format

TypeDescription
"Header"File header
"Data"Model data

TypeValueDescription
char[4]{'P', '3', 'M', 0}Header magic
u81Major version
u81Minor version
u8Header flagsFlags
Header flags
BitValueDescription
1-70Unused
81Has animation data

Data

TypeValueDescription
u16Vertex count
"Vertex"[0...]Vertices
u8Index group count
"Index group"[0...]Index groups
"Animation data"[0..1](Optional) animation data
char[1...]{..., 0}String table

Vertex

TypeDescription
float[3]XYZ
float[2]UV

Index group

TypeDescription
"String"Texture path
u16Index count
u16[0...]Indices

String

TypeDescription
u16Offset in string table

Animation data

TypeDescription
u8Bone count
"Bone"[0...]Bones
u8Action count
"Action"[0...]Actions
u8Animation count
"Animation"[0...]Animations

Bone

TypeDescription
"String"Name
float[3]Head XYZ
float[3]Tail XYZ
u16Vertex count
"Bone vertex"[0...]Vertex references
u8Child count
Bone vertex
TypeDescription
u16Index
u16Weight

Action

TypeDescription
u16Max frame
u8Number of affected bones
"Action bone data"[0...]Per-bone action data
Action bone data
TypeDescription
"String"Bone
"Action data"Action data

Action data

TypeValueDescription
u8Translation count
u16[0...]Frame
u8[0...]Animation interp enumInterpolation type
float[0...][3]Translations
u8Rotation count
u16[0...]Frame
u8[0...]Animation interp enumInterpolation type
float[0...][3]Rotations
u8Scale count
u16[0...]Frame
u8[0...]Animation interp enumInterpolation type
float[0...][3]Scales
Animation interp enum
NameValue
P3M_ACTINTERP_NONE0
P3M_ACTINTERP_LINEAR1

Animation

TypeDescription
"String"Name
u32Microseconds per frame
u8Action count
"Animation action"Action reference
Animation action
TypeDescription
u8Action index
floatSpeed multiplier
u16Start frame
u16End frame