Changes
From Final Fantasy Inside
no edit summary
There is no unified format for MAG files. Every file has their own naming, even extension. You can't really distinguish them.
Files starting with 10 00 00 00 09 00 00 00 are obviously TIM texture. What we know so far is how to extract GF sequence and GF environment geometry Files starting with null 4 bytes are in most cases "Packed magic file" ==Packed magic file=={| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"! style="background:rgb(204,204,204)" | Offset! style="background:rgb(ifrit ball204, Leviathan's rock204, Cerberus gate...204)" | Description|-| 0x00| Probably always null|-| 0x04| Probably bones/animation data|-| 0x08| Unknown (used to determinate texture size*)|-| 0x0C| Geometry pointer|-| 0x10| SCOT pointer|-| 0x14| Texture pointer|}
==G.F. Sequence==
short y
short w //rarely used, for skeleton weighting
==Textures==
1. See 0x08, it points almost always to null data, but also indicates where to stop watching texture pointers
2. Jump to pointer 0x14 (almost always 0x30)
3. Note all pointers if not zero until streamPosition==*(0x08)
4. If no pointers, file has no texture.
5. Jump to texture (pointer+*(0x14)) e.g. 48+21675
6. There's no sizes, so if there's another texture after the one you're getting, then subdivide next texture position from current position to get size and determine texture resolution. If it's the last texture, then it gets a bit tricky, as in many ways the file is not ending with texture but SCOT for example..