Super Monkey Ball:Notes

From Data Crystal
Revision as of 14:56, 5 January 2015 by Yoshimaster96 (talk | contribs)
Jump to: navigation, search
--GMA FORMAT--
HEADER:
04 Number of models
04 Model data base offset

08*No. of models:
04 Model offset from base
04 Name offset from start of names/end of header

NAMES:
Ascii names of models (null terminated)

MODELS:
04 ASCII "GCMF"
04 Unknown uint
04 Unknown float
04 Unknown float
04 Unknown float
04 Unknown float
02 Number of textures
02 No. txus in Section 1
02 No. txus in Section 2
01 No. header blobs? (Unknown, ignore)
01 Check ubyte 0
04 End of header offset? (Unknown, ignore)
04 Check uint 0
04 Unknown int
04 Check int -1
04 Check uint 0
04 Check uint 0
04 Check uint 0
04 Check uint 0

FOR NO. TXUS:

04 Unknown uint (Last byte is clamping: 80 CLAMP BOTH, 84 CLAMP T, 90 CLAMP S, 94 NO CLAMP)
02 TPL texture number
02 Unknown uint
04 Check uint 0
02 Unknown uint
02 Texture index
04 Unknown uint
04 Check uint 0
04 Check uint 0
04 Check uint 0

SECTIONS:

04 Unknown uint
04 Unknown uint
04 Unknown uint
04 Unknown uint
04 Unknown uint
02 Unknown int
02 Unknown int
02 Unknown int
02 Unknown int
04 Vertex Flags (00000001 UNKNOWN BYTE 00000200 COORDINATES 00000400 NORMALS 00000800 RGBA FORMAT VERTEX SHADERS 00002000 TEXCOORDS 00004000 UNKNOWN 8 BYTES 00008000 UNKNOWN 8 BYTES 02000000 UNKNOWN 24 OR 36? BYTES)
04 Check int -1
04 Check int -1
04 Chunk 1 size
04 Chunk 2 size 
04 Unknown float
04 Unknown float
04 Unknown float
04 Unknown float
04 Unknown uint
04 Check uint 0
04 Check uint 0
04 Check uint 0
04 Check uint 0
04 Check uint 0
04 Check uint 0
04 Check uint 0

CHUNK:

00 FILLER (ONLY IN FIRST STRIP)

98/99 ## ##
98: FLOAT/SINGLE
99: INT/16BIT

SET OF ? VERTICES(x4):
04 Pos X
04 Pos Y
04 Pos Z
04 Normal I
04 Normal J
04 Normal K
04 Color RGBA
04 Texture S
04 Texture T

--TPL FORMAT--
HEADER:
04 Number of Textures

10xNo. Textures:
04 Texture encoding ( see wiki.tockdom.com/wiki/TPL_(File_Format) )
04 Offset of data
02 Width
02 Height
02 Unknown (Type of texture? Just set to 0 or ignore)
02 Always 0x1234?

~TEXTURE DATA~

--LZ FORMAT--
File header (0xA0 bytes):

## ## ## ## - ??? (Usually 00 00 00 01)
## ## ## ## - ??? (Usually 00 00 00 64)
## ## ## ## - COLLISION
## ## ## ## - OFFSET 1
00 00 00 A0 ## ## ## ## - ALWAYS (# Usually 000000B4)
## ## ## ## - NO. GOALS???
## ## ## ## - OFFSET 2
## ## ## ## - NO. GOALS???
00 00 00 00 - ALWAYS
## ## ## ## - BUMPERS
## ## ## ## - OFFSET 3
## ## ## ## - NO. JAMABARS (SEE AD14 AND AD25)
## ## ## ## - OFFSET
## ## ## ## - BANANAS
## ## ## ## - OFFSET 4
00 00 00 00 00 00 00 00 - ALWAYS
00 00 00 00 00 00 00 00 - ALWAYS
## ## ## ## - NO. SOMETHING
## ## ## ## - OFFSET 5
## ## ## ## - LEVEL MODELS
## ## ## ## - OFFSET 6
00 00 00 00 00 00 00 00 - ALWAYS
## ## ## ## - MODELS
## ## ## ## - OFFSET 7
## ## ## ## - NO. SOMETHING
## ## ## ## - OFFSET
## ## ## ## ## ## ## ## - ???
## ## ## ## - REFLECTION FLAG?
## ## ## ## - OFFSET 8
00 00 00 00 00 00 00 00 - ALWAYS
00 00 00 00 00 00 00 00 - ALWAYS
00 00 00 00 00 00 00 00 - ALWAYS



Collision header:

0x18 zero bytes
## ## ## ## - Size of this header minus 0x0C? (Usually 000000B8)
## ## ## ## - Start of collision triangle data
## ## ## ## - Start of pointers to triangle indices (4 bytes each, 256 of these) (Triangle indices are 2 bytes, lists terminated by FFFF)
## ## ## ## - Some float
## ## ## ## - Some float
## ## ## ## - Some float
## ## ## ## - Some float
0x90 near copy of file header, starts with 00 00 00 10 00 00 00 10,
then continues at 0x18 from file header. Sometimes longer?



GOAL FORMAT:
XX XX XX XX - X POSITION (FLOAT)
YY YY YY YY - Y POSITION (FLOAT)
ZZ ZZ ZZ ZZ - Z POSITION (FLOAT)
XX XX - X ROTATION (INT, FULL RANGE IS 360 DEGREES)
YY YY - Y ROTATION (INT, FULL RANGE IS 360 DEGREES)
ZZ ZZ - Z ROTATION (INT, FULL RANGE IS 360 DEGREES)
CC CC - GOAL COLOR (4200 IS BLUE, 4700 IS GREEN, 5200 IS RED)

JAMABAR FORMAT:
XX XX XX XX - X POSITION (FLOAT)
YY YY YY YY - Y POSITION (FLOAT)
ZZ ZZ ZZ ZZ - Z POSITION (FLOAT)
XX XX - X ROTATION (INT, FULL RANGE IS 360 DEGREES)
YY YY - Y ROTATION (INT, FULL RANGE IS 360 DEGREES)
ZZ ZZ - Z ROTATION (INT, FULL RANGE IS 360 DEGREES)
00 00 - ALWAYS 0
XX XX XX XX - X SCALE (FLOAT)
YY YY YY YY - Y SCALE (FLOAT)
ZZ ZZ ZZ ZZ - Z SCALE (FLOAT)

BUMPER FORMAT:
XX XX XX XX - X POSITION (FLOAT)
YY YY YY YY - Y POSITION (FLOAT)
ZZ ZZ ZZ ZZ - Z POSITION (FLOAT)
XX XX - X ROTATION (INT, FULL RANGE IS 360 DEGREES)
YY YY - Y ROTATION (INT, FULL RANGE IS 360 DEGREES)
ZZ ZZ - Z ROTATION (INT, FULL RANGE IS 360 DEGREES)
00 00 - ALWAYS 0
XX XX XX XX - X SCALE (FLOAT)
YY YY YY YY - Y SCALE (FLOAT)
ZZ ZZ ZZ ZZ - Z SCALE (FLOAT)

BANANA FORMAT:
XX XX XX XX - X POSITION (FLOAT)
YY YY YY YY - Y POSITION (FLOAT)
ZZ ZZ ZZ ZZ - Z POSITION (FLOAT)
TT TT TT TT - TYPE OF BANANA (00000000 SINGLE, 00000001 BUNCH)

MODEL FORMAT:
UNKNOWN, SEEMS TO BE SOME KIND OF TREE/HIERARCHY



COLLISION TRIANGLE FORMAT

(ROTATION IS Z THEN X THEN Y)

04 X1
04 Y1
04 Z1
04 Normal X
04 Normal Y
04 Normal Z
02 X Angle
02 Y Angle
02 Z Angle
02 Zero
04 DX2X1
04 DY2Y1
04 DX3X1
04 DY3Y1
04 ?
04 ?
04 ?
04 ?