IDK why I didn't think of this sooner, but here it is.
this is the thread where people can freely discuss stuff pertaining to my resource thread:
http://forums.kc-mm.com/index.php?topic=28748.0
so if you have any info, OR comments, please post them here :)
EDIT:
if you have any questions and/or thoughts as to the format, don't be shy. ;)
First to ask! Well, when I import models other than SSBB's in BrawlBox v0.64, I don't see anything at all, but I can see the model's properties at the left of the Model Viewer (bones, textures, polygons etc...) This means any DAE or MDL0 file DOES NOT shows up in my BrawlBox, and this annoys me a lot. I have this problem since ages, on both my PC and laptop, so I wanna get rid of this, since others don't seems to have any problems. Any idea on how to fix this?
Quote from: TokoyamiTheDark on October 12, 2011, 04:46:14 PMFirst to ask! Well, when I import models other than SSBB's in BrawlBox v0.64, I don't see anything at all, but I can see the model's properties at the left of the Model Viewer (bones, textures, polygons etc...) This means any DAE or MDL0 file DOES NOT shows up in my BrawlBox, and this annoys me a lot. I have this problem since ages, on both my PC and laptop, so I wanna get rid of this, since others don't seems to have any problems. Any idea on how to fix this?
not really...
I'd have to know the src of the problem... >_>
but still...
can we keep this thread as to be reguarding the MDL0 format plz :)
it's ment to serve as a help thread to figuring out new and hidden info about the format.
I found it! I was using Windows XP, while only Windows 7 allows me to see foreign models! But they don't animate well at all... Maybe I shouldn't touch the bones AT ALL to make them work correctly. Yeah, now let's keep the subject of MDL0s for future posts!
@Toko: heh... I blame BJ for that (he's using 7)
as for the post...
I'm still trying to reverse engineer the MDL0 memory structures:
00000B40 | 00 02 9B 68 00 00 7B 30 00 00 00 68 00 00 00 05 - ..›h..{0...h....
00000B50 | FF FF 00 00 00 01 00 00 00 00 00 00 00 00 00 00 - ÿÿ..............
00000B60 | 00 3D 00 00 00 00 00 05 00 02 9A CC 00 00 7C 78 - .=........šÌ..|x
00000B70 | 00 38 00 00 00 01 00 02 00 02 9A DC 00 01 7E B8 - .8........šÜ..~¸
00000B80 | 00 39 00 00 00 02 00 04 00 02 9A EC 00 01 83 98 - .9........šì..ƒ˜
00000B90 | 00 38 00 00 00 03 00 04 00 02 9A FC 00 01 88 78 - .8........šü..ˆx
00000BA0 | 00 3A 00 00 00 03 00 05 00 02 9B 0C 00 01 8D 18 - .:........›....
^these parts
the way the numbers are decoded here don't seem to match up with anything I've seen so far >_>
ok long story here beind this...
so I've printed out FitPikachu00.mdl0 using Hex2Text to get a txt document of the hex...
I've been slowly picking at it, naming off what was needed,
and I've found something a bit interesting in reguards to my topic...
a bone, material, and node (of course) all share the same ID of '004E'
what you don't know is what they are:
bone: EyeYellowM
mat/node: EyeYellowL
mat/node: EyeYellowR has an ID of '4C'
there is also a a bone ID of '1C' and '1E'
the mat/node ID names for these would be:
'1C' - EyeR
'1E' - EyeL
(not sure what the bone names are yet)
just a little something I thopught I'd point out >_>
so i see you are really working really hard without giving up thats amazing with that kind of determination everything is possible i dont know anything about coding or i would help but i see before 2011 is over everyone will be importing models from other games and probably animations from melee keep the good work going i know you will crack it xD
Wait, you can import, Tcll?
If he can import, then I'd like to know how ;)
You and me both, fella.... I want a Miku import, like, so damn bad.
it's not really a matter of being able to import models...
it's a matter of knowing what to do with the data >_>
(if that's what you're referring to)
on a side note, I have completely redesigned the old GUI
the left bar is of course the model import/export ptions...
the right bar is the animation import/preview/export options.
(export will not be avaliable for model formats that use internal animation data)
from what I know, there are 4 types of animation data:
Action (animation of bones)
Object (IPO)
Shape
Color (common in brawl)
I'm still working out a method for the animation type import selection >_>
anyways, there are also top and bottom bars...
the bottom deals with viewing options...
the top is still pending on what to show...
also, all bars are collapsable, but the side bars take priority over the top and bottom bars...
(meaning the top and bottom bars are crushed when expanding the side bars)
other than that, there are 4 corner buttons...
the bottom 2 deal with model and anim info such as poly count or keyframe count >_>
the top right deals with making the current position of the model fit to the viewport of the expanded bars.
the top left button does nothing yet... heh
other than that, there's another bar just under the GUI header that deals with the converter's options...
when expanded, the 4 bars are pushed below the entire viewport, and the options are shown...
there isn't really much to set for options except for a mode and a theme,
but I'm sure I'll come up with more :)
(lets so you do that with a windows GUI) XDD
EDIT:
I'm sry...
I got off topic with this and started on my GUI XDD
also...
I found the names of the 2 bone ID's...
this actually kinda confused me >_>
bone names for:
'001E' - TopN
'001C' - LToeN
mat/node names:
'001E' - EyeL
'001C' - EyeR
yea... I don't understand it >_>
hey...
does anyone have anything better than the descriptions I've got for the current MDL0 resource descriptions??
since my descriptions suck and are mot very "nice" or neat...
anyone have anything better?? :|
Do you know how to get rid of the part2 part of a bone if it has one?
Or rather, if I were to delete bytes from the bones section where would I have to re-insert bytes/fix other values so that it would work.
Quote from: SqLeon on October 16, 2011, 08:52:55 PMDo you know how to get rid of the part2 part of a bone if it has one? Or rather, if I were to delete bytes from the bones section where would I have to re-insert bytes/fix other values so that it would work.
I don't think I've ran into one yet... :/
if you send me an mdl0 file that has one,
I'll tell you how once I figure it out. :)
(shouldn't be too hard unless the data conflicts with other parts of the MDL0)
-RETHINKS-
the P2 offset may deal with IK linkages O.O
(that's the only other thing I know of that deals with bones in that sence)
on other notes:
I havn't quite done the math for every bone on my FitPikachu00.MDL0 paper just yet...
but for the memory group IDs (what I'm temporarily calling them),
the first group of IDs with '0004' deal with Pika's Right Leg...
I'll create a map, once I figure it out, showing 1 of each used ID,
and how many names (for any data) are linked with that ID.
I'll also seperate each group with a - and each data type with a =
as well as put the link count above the group
eg:
_4_
name1
=
name2
name3
-
name4
that way (when compairing the data) it makes it a little easier to understand.
well I havn't quite fully figured out Pika's group ID's,
but I have figured out all his bone ID's. >_>
001E - TopN
004E - EyeYellowM
002E - TransN
0026 - XRotN, LLeg2N
0000 - YRotN
000A - HipN
0036 - HipSubN
0022 - LLegJ, WaistN
002A - LKneeJ, TailNd
0024 - LFootJ, LHandN, LThumbN
001C - LToeN
0019 - LLegN
0004 - RLegJ, RKneeJ, RFootJ, RToeN, RLegN, RLeg2N, RMimiN, RMimiNb, RShoulderN, RShoulderJ, RArmJ, RHandN, RFingerN, RThumbN, RShoulderNb
001B - TailN, BodyN, LArmJ
002D - TailNb
0028 - TailNc
0049 - LShoulderN
004A - LShoulderJ
003E - LFingerN
0056 - LShoulderNb
001A - NeckN
0012 - HatN
0014 - HaveN
0023 - LMimiN
0035 - LMimiNb
0020 - MouthN
0021 - ThrowN
that's all 48 bones
what interested me was ID 0004 was Pika's entire right side...
I took that as evidence that his right side was copied from his left side...
(only way I could think of that they would have the same ID)
so I have a suspicion that the ID's will tell a bit about how the MDL0 was created
I'm starting to think though that the ID's are only editor data, not wii data
(just like the data headers that arn't really used for much)
ok so, I've just printed off Pika's shadow model...
(just to have another MDL0 to work with)
I can't believe how many less pages I've gotten to work with
FitPikachu00.mdl0 - 33 pages
FitPikachuShd.mdl0 - 3 pages
anyways...
I've already went through it a little and noticed the bones had quite a similar ID structure to the original
maybe the ID's do play a part in the wii data...
IDK... I'll just have to look harder... =.=
to be honest, I dont believe the group ID that are in relocation to "bones" :/
cause I have seen other Group IDs in PAT0 and SRT0 but there is no bones, just Texture and Material with texture :/
even small mdl0s with like 3 bones still has "1E" and "1C" ect in the relocation D:
but I might be on a different rail, maybe you meant something else xD
eh...
It's not so much the bones...
The data structures are what intrigue me... eh heh
rmbr when I talked about these:
00000B40 | 00 02 9B 68 00 00 7B 30 00 00 00 68 00 00 00 05 - ..›h..{0...h....
00000B50 | FF FF 00 00 00 01 00 00 00 00 00 00 00 00 00 00 - ÿÿ..............
00000B60 | 00 3D 00 00 00 00 00 05 00 02 9A CC 00 00 7C 78 - .=........šÌ..|x
00000B70 | 00 38 00 00 00 01 00 02 00 02 9A DC 00 01 7E B8 - .8........šÜ..~¸
00000B80 | 00 39 00 00 00 02 00 04 00 02 9A EC 00 01 83 98 - .9........šì..ƒ˜
00000B90 | 00 38 00 00 00 03 00 04 00 02 9A FC 00 01 88 78 - .8........šü..ˆx
00000BA0 | 00 3A 00 00 00 03 00 05 00 02 9B 0C 00 01 8D 18 - .:........›....
the reason for the added red part is I think this would best fit it:
(havn't quite looked into it yet) >_>
typedef struct
{
void* headObject; // Pointer for the object linked to the head
void* tailObject; // Pointer for the object linked to the end
u16 numObjects; // Number of objects linked to the list
u16 offset; // Offset for NNSFndLink type structure member
} MEMList;
^found in revolution/mem/List.H
it's the only closest thing I've found >_>
but I'll keep looking in case there's something better <_<
EDIT:
here's the function description:
/*---------------------------------------------------------------------------*
Name: MEMList
Description: Two-way link list structure
*---------------------------------------------------------------------------*/
this was a thread to discuss every secret about the MDL0 :srs:
just quoting this for reference :P
00000B40 | 00 02 9B 68 00 00 7B 30 00 00 00 68 00 00 00 05 - ..›h..{0...h....
00000B50 | FF FF 00 00 00 01 00 00 00 00 00 00 00 00 00 00 - ÿÿ..............
00000B60 | 00 3D 00 00 00 00 00 05 00 02 9A CC 00 00 7C 78 - .=........šÌ..|x
00000B70 | 00 38 00 00 00 01 00 02 00 02 9A DC 00 01 7E B8 - .8........šÜ..~¸
00000B80 | 00 39 00 00 00 02 00 04 00 02 9A EC 00 01 83 98 - .9........šì..ƒ˜
00000B90 | 00 38 00 00 00 03 00 04 00 02 9A FC 00 01 88 78 - .8........šü..ˆx
00000BA0 | 00 3A 00 00 00 03 00 05 00 02 9B 0C 00 01 8D 18 - .:........›....