The current URL is datacrystal.tcrf.net.
Super Monkey Ball (GameCube)/Notes
--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 ?