Kitty Corp Meow Mix Forums

Super Smash Bros. Brawl Hacking => Programming => Topic started by: DarkPikachu on October 12, 2011, 08:51:03 AM



Title: MDL0 Resource discussion thread
Post by: DarkPikachu on October 12, 2011, 08:51:03 AM
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. ;)


Title: Re: MDL0 Resource discussion thread
Post by: TokoyamiTheDark on October 12, 2011, 10:46:14 AM
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?


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 12, 2011, 10:54:51 AM
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?
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.


Title: Re: MDL0 Resource discussion thread
Post by: TokoyamiTheDark on October 12, 2011, 11:10:21 AM
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!


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 12, 2011, 11:19:14 AM
@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 >_>


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 12, 2011, 12:27:08 PM
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 >_>


Title: Re: MDL0 Resource discussion thread
Post by: Carnage on October 12, 2011, 03:54:48 PM
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


Title: Re: MDL0 Resource discussion thread
Post by: Tabuu Forte Akugun on October 12, 2011, 06:11:51 PM
Wait, you can import, Tcll?


Title: Re: MDL0 Resource discussion thread
Post by: TokoyamiTheDark on October 12, 2011, 06:46:00 PM
If he can import, then I'd like to know how ;)


Title: Re: MDL0 Resource discussion thread
Post by: Tabuu Forte Akugun on October 12, 2011, 06:47:33 PM
You and me both, fella.... I want a Miku import, like, so damn bad.


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 13, 2011, 08:57:52 AM
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


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 13, 2011, 09:45:23 AM
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 >_>


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 13, 2011, 10:30:20 AM
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?? :|


Title: Re: MDL0 Resource discussion thread
Post by: SqLeon on October 16, 2011, 02:52:55 PM
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.


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 17, 2011, 07:27:51 AM
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.
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.


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 21, 2011, 10:43:58 AM

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)


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 21, 2011, 02:38:36 PM
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... =.=


Title: Re: MDL0 Resource discussion thread
Post by: pikazz on October 21, 2011, 03:45:46 PM
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


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on October 24, 2011, 04:55:55 AM
eh...
It's not so much the bones...

The data structures are what intrigue me... eh heh


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on November 01, 2011, 04:37:24 PM
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
 *---------------------------------------------------------------------------*/


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on January 10, 2012, 05:59:33 PM
this was a thread to discuss every secret about the MDL0 :srs:


Title: Re: MDL0 Resource discussion thread
Post by: DarkPikachu on January 11, 2012, 07:33:32 PM
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 - .:........›....