Home Gallery Resources The Team Rules chat Login Register
Pages:  1 2 3 [4] 5 6 7 ... 25
Author Topic: Bone Tree Editor- development thread : Version 1.1 released  (Read 98899 times)
0 Members and 1 Guest are viewing this topic.
DarkPikachu
Angel Kitten
***
Offline Offline

Posts: 3069


complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #45 on: December 06, 2010, 01:40:18 PM »


    I fixed the prob...
    I was using a forth float when there was only three Tongue

    so here's the template (so far):
    ...
    copy that and paste it in:
    C:/Documents and Settings\*user*\Application Data\ECSoftware\HexEdit\_mdl0.xml
    and open an mdl0 file in HexEdit...

    now, the template doesn't initiate automatically :/
    when you open the mdl0,
    go to 'view'-'template'-'split window'
    and be sure to turn the auto sync on as well (looklike 3 red arrows "back, forth, back")

    that should teach you the relocation table Wink

    I forget how to get the 'auto sync' button...
    I think you have to turn on the navigation toolbar :/
    and cool  AWESOME 2.0!
    just try to keep it as single file...
    I hate multifiles DX
    « Last Edit: December 06, 2010, 01:41:12 PM by Tcll » Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #46 on: December 06, 2010, 03:19:57 PM »


    edit: looool found it..=p
    « Last Edit: December 06, 2010, 03:27:36 PM by theshyguy » Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #47 on: December 06, 2010, 04:20:08 PM »


    heh Tongue

    hey, you wanna turn this into a dev thread Smiley
    (may help boost me in Tk as well as learning more about the MDL0 format)

    ^yes, I'll try this in Py
    if I get this, then maybe I can get my converter Wink

    btw, when I posted this,
    it was just a few minutes before my bro turned his cpu off and I lost net...

    so yea,
    I couldn't have replied to your post after that because I was either in bed,
    or at school... DX

    I only get little time to actually use my cpu before losing net (6 hrs)
    ^I need at least 10-12 for what I do (another reson development is slow)
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #48 on: December 06, 2010, 07:49:52 PM »


    just got back from stuff and am going to look at mario mdl0 using your template....it looks like you know alot....all i know are bones(mainly) 0.o.....what should the title of the dev thread be about? bones or fully editing mdl0s?

    edit: lol....its confusing...ill wait till tomoro i guess to talk about it..
    « Last Edit: December 06, 2010, 08:17:34 PM by theshyguy » Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #49 on: December 07, 2010, 01:26:16 PM »


    yea...
    I know it's confusing...
    sry bout that Tongue

    I can give you what I have of my notes (which are still growing)

    note: polygons are not fully understood yet (you'll see why in the notes)

    and I was just saying to use this page as a dev thread :/
    can't hurt much there...
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #50 on: December 07, 2010, 02:13:03 PM »


    yeh notes would be nice...atm im making that undo button but i gotta fix this one thing....keeps screwing up lol
    Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #51 on: December 07, 2010, 02:43:41 PM »


    alright ^_^

    they're a bit messy though...
    Code:
    mdl0 header:

    0x00(4): MDL0 Identifier
    0x04(4): MDL0 Size
    0x08(4): Sections
    0x0C(4): Model Nodes Offset

    0x10(4): Definitions List
    0x14(4): Bones List
    0x18(4): Vertices List
    0x1C(4): Normals List
    0x20(4): Colors List
    0x24(4): UV Points List
    0x28(4): Materials 1 List
    0x2C(4): Materials 2 List
    0x30(4): Polygons List
    0x34(4): Textures 1 List
    0x38(4): Textures 2 List

    0x3C(4): Model Name Offset
    0x40(4): Header Length
    0x44(4): Header Offset

    0x48(4): ??
    0x4C(4): ??
    0x50(4): num Vertices
    0x54(4): num Faces
    0x58(4): ??
    0x5C(4): num Nodes
    0x60(4): Version
    0x62(2): ??
    0x64(2): ??
    0x68(4): Box Min. X
    0x6C(4): Box Min. Y
    0x70(4): Box Min. Z
    0x74(4): Box Max. X
    0x78(4): Box Max. Y
    0x7C(4): Box Max. Z
    0x80(4): num Nodes (Copy??)

    nodes... (num nodes * 4)

    relocation table header: (group list)

    0x00(4): block length
    0x04(4): number of offsets
    0x08(4): 'FFFF0000'
    0x0C(2): ?? (maybe flags)
    0x0E(2): ??
    0x10(4): pad1
    0x14(4): pad2

    relocation table offset:

    0x00(2): model ID
    0x02(2): '0000'
    0x04(2): ??
    0x06(2): ??
    0x08(4): string offset (- group list)
    0x0C(4): data offset (- group list)

    Definition data header: id(1)
    --

    Bone data header: id(2)

    0x00(4): Header Length (Usually 000000D0)
    0x04(4): MDL0 Offset
    0x08(4): String Offset (- mdl0 offset)
    0x0C(4): Bone Index
    0x10(4): Node ID
    0x14(4): Flags
    0x18(4): Pad 1
    0x1C(4): Pad 2
    0x20(4): Scale X
    0x24(4): Scale Y
    0x28(4): Scale Z
    0x2C(4): Rotation X
    0x30(4): Rotation Y
    0x34(4): Rotation Z
    0x38(4): Translation X
    0x3C(4): Translation Y
    0x40(4): Translation Z
    0x44(4): Box Min. X
    0x48(4): Box Min. Y
    0x4C(4): Box Min. Z
    0x50(4): Box Max. X
    0x54(4): Box Max. Y
    0x58(4): Box Max. Z
    0x5C(4): Parent Offset
    0x60(4): First Child Offset
    0x64(4): Next Offset
    0x68(4): Previous Offset
    0x6C(4): Bone Strings/Properties Offset (part2)

    Uint32:
    0x70(4): FrameMatrix Set 1 Float 1
    0x74(4): FrameMatrix Set 2 Float 1
    0x78(4): FrameMatrix Set 3 Float 1
    0x7C(4): FrameMatrix Set 4 Float 1
    0x80(4): FrameMatrix Set 1 Float 2
    0x84(4): FrameMatrix Set 2 Float 2
    0x88(4): FrameMatrix Set 3 Float 2
    0x8C(4): FrameMatrix Set 4 Float 2
    0x90(4): FrameMatrix Set 1 Float 3
    0x94(4): FrameMatrix Set 2 Float 3
    0x98(4): FrameMatrix Set 3 Float 3
    0x9C(4): FrameMatrix Set 4 Float 3
    0xA0(4): InverseBindMatrix Set 1 Float 1
    0xA4(4): InverseBindMatrix Set 2 Float 1
    0xA8(4): InverseBindMatrix Set 3 Float 1
    0xAC(4): InverseBindMatrix Set 4 Float 1
    0xB0(4): InverseBindMatrix Set 1 Float 2
    0xB4(4): InverseBindMatrix Set 2 Float 2
    0xB8(4): InverseBindMatrix Set 3 Float 2
    0xBC(4): InverseBindMatrix Set 4 Float 2
    0xC0(4): InverseBindMatrix Set 1 Float 3
    0xC4(4): InverseBindMatrix Set 2 Float 3
    0xC8(4): InverseBindMatrix Set 3 Float 3
    0xCC(4): InverseBindMatrix Set 4 Float 3

    flags:
    0x0001 - NoTransform
    0x0002 - FixedTranslation
    0x0004 - FixedRotation
    0x0008 - FixedScale
    0x0010 - ??
    0x0100 - ??
    0x0200 - HasGeometry

    vertex data header: id(3)

    0x00(4): Block size
    0x04(4): MDL0 Offset
    0x08(4): Data Offset
    0x0C(4): String Offset (- mdl0 offset)
    0x10(4): Index ID
    0x14(4): Bounding Box (1 == true)
    0x18(4): Data type (4 == float)
    0x1C(1): Modifier (always 0 for floats)
    0x1D(1): Entry size
    0x1E(2): Number of entries
    0x20(4): Box Min. X
    0x24(4): Box Min. Y
    0x28(4): Box Min. Z
    0x2C(4): Box Max. X
    0x30(4): Box Max. Y
    0x34(4): Box Max. Z
    0x38(4): pad1
    0x3C(4): pad2
    0x40(?): Vertex data (usu 32bit)

    Colors: id(5)

    in image... (will edit)

    polygon data header: id(9)

    0x00(4): Size
    0x04(4): MDL0 offset
    0x08(4): Mesh weight/transform [NodeID] (-1)
    0x0C(4): Vertex descriptor 1 (See Bits0)
    0x10(4): Vertex descriptor 2 (See Bits1)
    0x14(4): Number of uvs, colors, and normals per vertex (See Bits2)
    0x18(4): Vertex descriptor position, normal, color source layout
    0x1C(4): Vertex descriptor uv source layout
    0x20(4): Offset to shader intructions
    0x24(4): Size of data block
    0x28(4): Size of data block (copy??)
    0x2C(4): Offset to data block
    0x30(4): Vetrex descriptor source layput
    0x34(4): Unknown (Always 0x00000000)
    0x38(4): String offset
    0x3C(4): Index
    0x40(4): Number of vertices
    0x44(4): Number of faces

    0x48(2): Position input
    0x4A(2): Normal input
    0x4C(2): Color0 input
    0x4E(2): Color1 input
    0x50(2): Coord0 input
    0x52(2): Coord1 input
    0x54(2): Coord2 input
    0x56(2): Coord3 input
    0x58(2): Coord4 input
    0x5A(2): Coord5 input
    0x5C(2): Coord6 input
    0x5E(2): Coord7 input
    0x60(4): Weights offset


    Weight List
    0x00(4): Number of weights
    0x##(2): Weight index


    Primitive Types
    0x20 - Position matrix
    0x28 - Normal matrix
    0x30 - Texture matrix
    0x38 - Light matrix

    0x80 - Quads
    0x90 - Triangles
    0x98 - Tristrip
    0xA0 - Trian
    0xA8 - Lines
    0xB0 - Linestrip
    0xB8 - Points


     _______
    |       \
    | Bits0  \
    |_________\___________________________________
    |                                             |
    | 0000 0000  0000 000A   ABBC CDDE  FGHI JKLM |
    |_____________________________________________|
    |                                             |
    | A = Color1                                  |
    | B = Color0                                  |
    | C = Normals                                 |
    | D = Posiions                                |
    | E = Texture transform0                      |
    | F = Texture transform1                      |
    | G = Texture transform2                      |
    | H = Texture transform3                      |
    | I = Texture transform4                      |
    | J = Texture transform5                      |
    | K = Texture transform6                      |
    | L = Texture transform7                      |
    | M = Position transform                      |
    |_____________________________________________|

     _______
    |       \
    | Bits1  \
    |_________\___________________________________
    |                                             |
    | 0000 0000  0000 0000   AABB CCDD  EEFF GGHH |
    |_____________________________________________|
    |                                             |
    | A = Coord7                                  |
    | B = Coord6                                  |
    | C = Coord5                                  |
    | D = Coord4                                  |
    | E = Coord3                                  |
    | F = Coord2                                  |
    | G = Coord1                                  |
    | H = Coord0                                  |
    |_____________________________________________|

     _______
    |       \
    | Bits2  \
    |_________\___________________________________
    |                                             |
    | 0000 0000  0000 0000   0000 0000  AAAA BBCC |
    |_____________________________________________|
    |                                             |
    | A = UV                                      |
    | B = Normals                                 |
    | C = Colors                                  |
    |_____________________________________________|



    * 0 = none, 1 = normal, 2 = nbt

    ------------------------------------------------------

    other useful data: these notes are kind of out of date.

    All data is big endian.

    BRES header:
    u32 magic = 'bres'
    u32 unknown
    u32 filesize
    u32 unknown
    u32 other_magic = 'root'
    u32 root directory length

    BRES root directory @0x18:
    u32 unknown
    u32 ndirents
    16 bytes unknown = ff ff 00 00 00 01 00 00
    ndirents * struct {
    u16 unknown[2]
    u16 unknown[2]
    u32 offset to dirname from start of directory
    dirname is a null terminated string
    u32 offset to data for entry from start of dir


    }


    MDL0 header:
    u32 magic = 'MDL0'
    u32 filesize
    u32 (one less than offset index count?)
    u32 unknown
    u32 offsets to data block index blocks[]

    data block index block { (0x260)
    u32 index block length
    u32 entry count (10 @ 0x264)
    u32 unknown[2]
    u32 zero[2]

    0x278 - 0x378: array {
    u16 model_id -- maps position blocks to normal blocks?
    u16 zero
    u16 unknown
    u16 unknown
    uint32 unknown (like 0x001a2f34):
    model id? when added to start offset of this data block -- consistent between positions and normals...
    uint32 offset to vertex position data block from start of this data block
    } [10]
    }

    another data block index at 0x118, unknown0 = 0x0148, count=13

    NodeMix block {
    stream:
    u8 nexttype {
    00: done
    02: mapping data, u16 -> u16
    03: weighting data
    }
    nexttype == 02: {
    u16 unknown1
    u16 unknown2
    }
    nexttype == 03: {
    u16 (some id?)
    u8 number of weights
    struct {
    u16 transform_id
    float weight
    }[] weight_set
    }
    }

    vertex position data block {
    0x40 byte header {
    uint32_t length of this block
    int32_t offset to beginning of file (always negative)
    ...
    uint32_t at 0x10:
    index # of block (starts at 0, should be no gaps)

    uint32_t at 0x14: {
    0x01 = positions, has bounding box + zero pad
    0x00 = normals, no bounding box data + zero pad
    }
    ...
    uint16_t at 0x1c: bytes per vertex (0x04 * #components) {
    0x08 = UVs
    0x0c = vertex and normal data
    }
    uint16_t at 0x1e = number of vertices to follow

    0x20 {
    float[6] (bounding box?)
    uint32_t[2] zero
    } (not present for normals)
    }
    component data follows: #vertices * #components float32
    }


    vertex array header: {
    0x140 bytes long, almost completely unknown
    u8 @ 0x0e {
    0x14 or 0x54 for u8 datas
    0x5e for u16 datas
    }
    u16 @ 0x1e (vertex count for a position data block) is:
    0x80 for a 4 or 7 byte vertex struct layout
    0xc0 for an 8 byte vertex struct layout
    u16 @ 0x94 = byte length of 3rd component in the struct
    only if @0x1e != 0xc0 and @0x0e != 0x14
    }
    vertex array data: {
    u8 list type to follow {
    0x00 == stop processing
    0xB8 == points
    0xA8 == lines
    0xB0 == line strip
    0x90 == triangles
    0x98 == triangle strip
    0xA0 == triangle fan
    0x80 == quads
    }
    u16 = #verts to follow
    if (@0x1e in header == 0xc0) {
    u8 position idx
    u8 unknown1
    u16 unknown2
    u8[4] more unknowns
    } else {
    component lengths defined in header (@0x0e, @0x94):
    position idx
    (uv or normal idx)
    (uv or normal idx)
    }
    }

    texture block: {
    u32 entry count
    entry (8 bytes) {
    u32 unknown
    u32 rel_offset to rel_offset to texture name (useless...)
    }
    }


    and here's the image for the colors:
    « Last Edit: October 05, 2022, 08:38:03 PM by DarkPikachu » Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #52 on: December 07, 2010, 05:39:27 PM »


    almost done making the undo button(technically i am) but i just need to make it so it records if you use the move up/down buttons...but im taking a break atm sooo ima look at this for a while^

    the redo button is basically the same as undo so yeh it won't take as long for the redo
    Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #53 on: December 07, 2010, 05:44:10 PM »


    template UD:

    everything from bones to uv's works now
    mat1 still needs to be finished :/

    oh and everything displays names now Tongue

    Code:
    <?xml version="1.0"?>
    <!DOCTYPE binary_file_format SYSTEM "BinaryFileFormat.dtd">
    <binary_file_format name="MDL0" type_name="" comment="" expr="" default_byte_order="big" default_read_only="false" default_char_set="ansi">
    <define_struct type_name="offset_name" comment="" expr="">
    <data type="int" name="str_len" format="unsigned" len="1" display=""/>
    <data type="string" name="name" format="ascii" len="str_len" display=""/>
    </define_struct>
    <define_struct type_name="bounds" comment="" expr="">
    <data type="int" name="min_X" format="unsigned" len="4" display=""/>
    <data type="int" name="min_Y" format="unsigned" len="4" display=""/>
    <data type="int" name="min_Z" format="unsigned" len="4" display=""/>
    <data type="int" name="max_X" format="unsigned" len="4" display=""/>
    <data type="int" name="max_Y" format="unsigned" len="4" display=""/>
    <data type="int" name="max_Z" format="unsigned" len="4" display=""/>
    <data type="none" name="pad" len="8"/>
    </define_struct>
    <define_struct type_name="relocation_group" comment="" expr="">
    <data type="int" name="block_len" format="unsigned" len="4" display=""/>
    <data type="int" name="num_offsets" format="unsigned" len="4" display=""/>
    <data type="int" name="tag" format="unsigned" len="4" display="hex"/>
    <data type="int" name="unk1" format="unsigned" len="2" display="hex"/>
    <data type="int" name="unk2" format="unsigned" len="2" display="hex"/>
    <data type="int" name="pad" format="unsigned" len="8" display="hex"/>
    </define_struct>
    <define_struct type_name="relocation_offset" comment="" expr="">
    <data type="int" name="ID" format="unsigned" len="2" display=""/>
    <data type="int" name="unk1" format="unsigned" len="2" display="hex"/>
    <data type="int" name="unk2" format="unsigned" len="2" display="hex"/>
    <data type="int" name="unk3" format="unsigned" len="2" display="hex"/>
    <data type="int" name="string_offset" format="unsigned" len="4" display=""/>
    <data type="int" name="data_offset" format="unsigned" len="4" display=""/>
    </define_struct>
    <define_struct type_name="Definitions" comment="" expr="">
    <struct name="definition_header" type_name="" comment="" expr="">
    <data type="none" name="tmp" len="4"/>
    </struct>
    </define_struct>
    <define_struct type_name="Bones" comment="" expr="">
    <struct name="bone_header" type_name="" comment="" expr="">
    <data type="int" name="header_len" len="4" format="unsigned" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="string_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="bone_index" len="4" format="unsigned" display=""/>
    <data type="int" name="node_ID" len="4" format="unsigned" display=""/>
    <data type="int" name="flags" len="4" format="unsigned" display=""/>
    <data type="int" name="pad" len="8" format="unsigned" display=""/>
    <struct name="loc_rot_sca" type_name="" comment="" expr="">
    <data type="int" name="sca_X" format="unsigned" len="4" display=""/>
    <data type="int" name="sca_Y" len="4" format="unsigned" display=""/>
    <data type="int" name="sca_Z" len="4" format="unsigned" display=""/>
    <data type="int" name="rot_X" len="4" format="unsigned" display=""/>
    <data type="int" name="rot_Y" len="4" format="unsigned" display=""/>
    <data type="int" name="rot_Z" len="4" format="unsigned" display=""/>
    <data type="int" name="loc_X" len="4" format="unsigned" display=""/>
    <data type="int" name="loc_Y" len="4" format="unsigned" display=""/>
    <data type="int" name="loc_Z" len="4" format="unsigned" display=""/>
    </struct>
    <struct name="bound" type_name="" comment="" expr="">
    <data type="int" name="min_X" len="4" format="unsigned" display=""/>
    <data type="int" name="min_Y" len="4" format="unsigned" display=""/>
    <data type="int" name="min_Z" len="4" format="unsigned" display=""/>
    <data type="int" name="max_X" len="4" format="unsigned" display=""/>
    <data type="int" name="max_Y" len="4" format="unsigned" display=""/>
    <data type="int" name="max_Z" len="4" format="unsigned" display=""/>
    </struct>
    <data type="int" name="parent" len="4" format="signed" display=""/>
    <data type="int" name="child" len="4" format="unsigned" display=""/>
    <data type="int" name="next" len="4" format="unsigned" display=""/>
    <data type="int" name="prev" len="4" format="unsigned" display=""/>
    <data type="int" name="part2" len="4" format="unsigned" display=""/>
    </struct>
    <struct name="frame_matrix" type_name="" comment="" expr="">
    <data type="int" name="s_1_1" format="signed" len="4" display=""/>
    <data type="int" name="s_2_1" format="signed" len="4" display=""/>
    <data type="int" name="s_3_1" format="signed" len="4" display=""/>
    <data type="int" name="s_4_1" format="signed" len="4" display=""/>
    <data type="int" name="s_1_2" format="signed" len="4" display=""/>
    <data type="int" name="s_2_2" format="signed" len="4" display=""/>
    <data type="int" name="s_3_2" format="signed" len="4" display=""/>
    <data type="int" name="s_4_2" format="signed" len="4" display=""/>
    <data type="int" name="s_1_3" format="signed" len="4" display=""/>
    <data type="int" name="s_2_3" format="signed" len="4" display=""/>
    <data type="int" name="s_3_3" format="signed" len="4" display=""/>
    <data type="int" name="s_4_3" format="signed" len="4" display=""/>
    </struct>
    <struct name="inverse_matrix" type_name="" comment="" expr="">
    <data type="int" name="s_1_1" format="signed" len="4" display=""/>
    <data type="int" name="s_2_1" format="signed" len="4" display=""/>
    <data type="int" name="s_3_1" format="signed" len="4" display=""/>
    <data type="int" name="s_4_1" format="signed" len="4" display=""/>
    <data type="int" name="s_1_2" format="signed" len="4" display=""/>
    <data type="int" name="s_2_2" format="signed" len="4" display=""/>
    <data type="int" name="s_3_2" format="signed" len="4" display=""/>
    <data type="int" name="s_4_2" format="signed" len="4" display=""/>
    <data type="int" name="s_1_3" format="signed" len="4" display=""/>
    <data type="int" name="s_2_3" format="signed" len="4" display=""/>
    <data type="int" name="s_3_3" format="signed" len="4" display=""/>
    <data type="int" name="s_4_3" format="signed" len="4" display=""/>
    </struct>
    </define_struct>
    <define_struct type_name="Vertices" comment="" expr="">
    <struct name="vertice_header" type_name="" comment="" expr="">
    <data type="int" name="block_size" len="4" format="unsigned" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="data_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="string_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="ID" len="4" format="unsigned" display=""/>
    <data type="int" name="isXYZ" len="4" format="unsigned" display=""/>
    <data type="int" name="type" len="4" format="unsigned" display=""/>
    <data type="int" name="modifier" len="1" format="unsigned" display=""/>
    <data type="int" name="entry_stride" len="1" format="unsigned" display=""/>
    <data type="int" name="num_vertices" len="2" format="unsigned" display=""/>
    <if test="isXYZ == 1" comment="">
    <use_struct name="bounds" expr="" type_name="bounds" comment=""/>
    </if>
    </struct>
    <data type="string" name="vertices" len="vertice_header.entry_stride * vertice_header.num_vertices" format="default" display="vert structures" comment="I could've put a 'FOR' here,
    but it'd take too long when loading the file"/>
    <data type="none" name="pad" len="vertice_header.block_size - (vertice_header.entry_stride*vertice_header.num_vertices) - 64"/>
    </define_struct>
    <define_struct type_name="Normals" comment="" expr="">
    <struct name="normal_header" type_name="" comment="" expr="">
    <data type="int" name="block_size" len="4" format="unsigned" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="data_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="string_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="ID" len="4" format="unsigned" display=""/>
    <data type="int" name="isXYZ" len="4" format="unsigned" display=""/>
    <data type="int" name="type" len="4" format="unsigned" display=""/>
    <data type="int" name="modifier" len="1" format="unsigned" display=""/>
    <data type="int" name="entry_stride" len="1" format="unsigned" display=""/>
    <data type="int" name="num_normals" len="2" format="unsigned" display=""/>
    <if test="isXYZ == 1" comment="">
    <use_struct name="bounds" expr="" type_name="bounds" comment=""/>
    </if>
    </struct>
    <data type="string" name="normals" format="default" display="normal structures" len="normal_header.entry_stride*normal_header.num_normals" comment="I could've put a 'FOR' here,
    but it'd take too long when loading the file"/>
    <data type="none" name="pad" len="normal_header.block_size - (normal_header.entry_stride*normal_header.num_normals) - 32"/>
    </define_struct>
    <define_struct type_name="Colors" comment="" expr="">
    <struct name="color_header" type_name="" comment="" expr="">
    <data type="int" name="block_size" len="4" format="signed" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="data_offset" len="4" format="signed" display=""/>
    <data type="int" name="string_offset" len="4" format="signed" display=""/>
    <data type="int" name="ID" len="4" format="signed" display=""/>
    <data type="int" name="isRGBA" len="4" format="signed" display=""/>
    <data type="int" name="type" len="4" format="signed" display=""/>
    <data type="int" name="entry_stride" len="1" format="signed" display=""/>
    <data type="int" name="modifier" len="1" format="signed" display=""/>
    <data type="int" name="num_colors" len="2" format="signed" display=""/>
    </struct>
    <for name="color" count="color_header.num_colors || color_header.num_colors - 1" stop_test="color_header.num_colors == 0" type_name="" comment="">
    <data type="none" name="color" len="color_header.entry_stride"/>
    </for>
    <data type="none" name="pad" len="color_header.block_size - (color_header.num_colors*color_header.entry_stride) - 32"/>
    </define_struct>
    <define_struct type_name="UV_Points" comment="" expr="">
    <struct name="UV_header" type_name="" comment="" expr="">
    <data type="int" name="block_size" len="4" format="unsigned" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="data_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="string_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="ID" len="4" format="unsigned" display=""/>
    <data type="int" name="isXY" len="4" format="unsigned" display=""/>
    <data type="int" name="type" len="4" format="unsigned" display=""/>
    <data type="int" name="modifier" len="1" format="unsigned" display=""/>
    <data type="int" name="entry_stride" len="1" format="unsigned" display=""/>
    <data type="int" name="num_UVs" len="2" format="unsigned" display=""/>
    <if test="isXY == 1" comment="">
    <struct name="bounds" expr="" type_name="" comment="">
    <data type="int" name="min_X" format="unsigned" len="4" display=""/>
    <data type="int" name="min_Y" format="unsigned" len="4" display=""/>
    <data type="int" name="max_X" format="unsigned" len="4" display=""/>
    <data type="int" name="max_Y" format="unsigned" len="4" display=""/>
    <data type="none" name="pad" len="16"/></struct>
    </if>
    </struct>
    <data type="string" name="UVs" len="UV_header.entry_stride * UV_header.num_UVs" format="default" display="uv structures" comment="I could've put a 'FOR' here,
    but it'd take too long when loading the file"/>
    <data type="none" name="pad" len="UV_header.block_size - (UV_header.entry_stride*UV_header.num_UVs) - 64"/>
    </define_struct>
    <define_struct type_name="Materials1" comment="" expr="">
    <struct name="header" type_name="" comment="" expr="">
    <data type="int" name="block_size" len="4" format="unsigned" display=""/>
    <data type="int" name="MDL0_offset" len="4" format="signed" display=""/>
    <data type="int" name="string_offset" len="4" format="unsigned" display=""/>
    <data type="int" name="ID" len="4" format="unsigned" display=""/>
    <data type="int" name="unk1" len="4" format="unsigned" display=""/>
    <data type="int" name="textures" len="1" format="unsigned" display=""/>
    <data type="int" name="num_layers" len="1" format="unsigned" display=""/>
    <data type="int" name="Flag3" len="1" format="unsigned" display=""/>
    <data type="int" name="Flag4" len="1" format="unsigned" display=""/>
    <data type="int" name="type" len="4" format="unsigned" display=""/>
    <data type="int" name="Flag5" len="1" format="unsigned" display=""/>
    <data type="int" name="Flag6" len="1" format="unsigned" display=""/>
    <data type="int" name="Flag7" len="1" format="unsigned" display=""/>
    <data type="int" name="Flag8" len="1" format="unsigned" display=""/>
    <data type="int" name="unk3" format="unsigned" len="4" display=""/>
    <data type="int" name="unk4" format="signed" len="4" display=""/>
    <data type="int" name="data_offset" format="signed" len="4" display=""/>
    <data type="int" name="num_textures" format="signed" len="4" display=""/>
    <data type="int" name="P3_offset" format="signed" len="4" display=""/>
    <data type="int" name="P4_offset" format="signed" len="4" display=""/>
    <data type="int" name="P5_offset" format="signed" len="4" display=""/>
    <data type="int" name="unk6" format="signed" len="4" display=""/>
    </struct>
    <jump offset="header.P3_offset+(header.MDL0_offset*-1)" comment="" origin="start">
    <struct name="texture_ref" type_name="" comment="" expr="">
    <data type="int" name="unk" format="unsigned" len="4" display=""/>
    </struct>
    </jump>
    </define_struct>
    <define_struct type_name="Materials2" comment="" expr="">
    <struct name="header" type_name="" comment="" expr="">
    <data type="none" name="tmp" len="4"/>
    </struct>
    </define_struct>
    <define_struct type_name="Polygons" comment="" expr="">
    <struct name="header" type_name="" comment="" expr="">
    <data type="none" name="tmp" len="4"/>
    </struct>
    </define_struct>
    <define_struct type_name="Textures1" comment="" expr="">
    <struct name="header" type_name="" comment="" expr="">
    <data type="none" name="tmp" len="4"/>
    </struct>
    </define_struct>
    <define_struct type_name="Textures2" comment="" expr="">
    <struct name="header" type_name="" comment="" expr="">
    <data type="none" name="tmp" len="4"/>
    </struct>
    </define_struct>
    <struct name="header" type_name="" comment="" expr="">
    <data type="string" name="magic" len="4" format="ascii" display=""/>
    <data type="int" name="filesize" format="unsigned" len="4" display=""/>
    <data type="int" name="sections" format="unsigned" len="4" display=""/>
    <data type="int" name="nodes" format="signed" len="4" display=""/>
    <struct name="lists" type_name="" comment="" expr="">
    <data type="int" name="Definitions" format="unsigned" len="4" display=""/>
    <data type="int" name="Bones" format="unsigned" len="4" display=""/>
    <data type="int" name="Vertices" format="unsigned" len="4" display=""/>
    <data type="int" name="Normals" format="unsigned" len="4" display=""/>
    <data type="int" name="Colors" format="unsigned" len="4" display=""/>
    <data type="int" name="UV_Points" format="unsigned" len="4" display=""/>
    <data type="int" name="Materials1" format="unsigned" len="4" display=""/>
    <data type="int" name="Materials2" format="unsigned" len="4" display=""/>
    <data type="int" name="Polygons" format="unsigned" len="4" display=""/>
    <data type="int" name="Textures1" format="unsigned" len="4" display=""/>
    <data type="int" name="Textures2" format="unsigned" len="4" display=""/>
    </struct>
    <data type="int" name="name_offset" format="unsigned" len="4" display=""/>
    <data type="int" name="header_len" format="unsigned" len="4" display=""/>
    <data type="int" name="header_offset" format="signed" len="4" display=""/>
    <data type="int" name="unk1" format="unsigned" len="4" display=""/>
    <data type="int" name="unk2" format="unsigned" len="4" display=""/>
    <data type="int" name="num_verticies" format="unsigned" len="4" display=""/>
    <data type="int" name="num_faces" format="unsigned" len="4" display=""/>
    <data type="int" name="unk3" format="unsigned" len="4" display=""/>
    <data type="int" name="num_nodes" format="unsigned" len="4" display=""/>
    <data type="int" name="version" format="unsigned" len="4" display=""/>
    <data type="int" name="unk4" format="unsigned" len="2" display=""/>
    <data type="int" name="unk5" format="unsigned" len="2" display=""/>
    <struct name="bounds" type_name="" comment="" expr="">
    <data type="int" name="min_X" format="unsigned" len="4" display=""/>
    <data type="int" name="min_Y" format="unsigned" len="4" display=""/>
    <data type="int" name="min_Z" format="unsigned" len="4" display=""/>
    <data type="int" name="max_X" format="unsigned" len="4" display=""/>
    <data type="int" name="max_Y" format="unsigned" len="4" display=""/>
    <data type="int" name="max_Z" format="unsigned" len="4" display=""/>
    </struct>
    </struct>
    <jump offset="header.nodes * -1" comment="" origin="start">
    <struct name="nodes" type_name="" comment="" expr="">
    <data type="int" name="num_nodes" format="signed" len="4" display=""/>
    <for name="node" count="num_nodes || num_nodes - 1" stop_test="num_nodes == 0" type_name="" comment="">
    <data type="int" name="node" format="signed" len="4" display=""/>
    </for>
    </struct>
    </jump>
    <if test="header.sections >= 0 && header.lists.Definitions != 0" comment="">
    <jump offset="header.lists.Definitions" comment="" origin="start">
    <struct name="Definitions" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Definitions" comment="" origin="start">
    <use_struct name="Definitions" expr="" type_name="Definitions" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Definitions - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 1 && header.lists.Bones != 0" comment="">
    <jump offset="header.lists.Bones" comment="" origin="start">
    <struct name="Bones" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Bones" comment="" origin="start">
    <use_struct name="Bone_data" expr="" type_name="Bones" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Bones - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 2 && header.lists.Vertices != 0" comment="">
    <jump offset="header.lists.Vertices" comment="" origin="start">
    <struct name="Vertices" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Vertices" comment="" origin="start">
    <use_struct name="Vertices" expr="" type_name="Vertices" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Vertices - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 3 && header.lists.Normals != 0" comment="">
    <jump offset="header.lists.Normals" comment="" origin="start">
    <struct name="Normals" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Normals" comment="" origin="start">
    <use_struct name="Normals" expr="" type_name="Normals" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Normals - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 4 && header.lists.Colors != 0" comment="">
    <jump offset="header.lists.Colors" comment="" origin="start">
    <struct name="Colors" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Colors" comment="" origin="start">
    <use_struct name="Colors" expr="" type_name="Colors" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Colors - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 5 && header.lists.UV_Points != 0" comment="">
    <jump offset="header.lists.UV_Points" comment="" origin="start">
    <struct name="UV_Points" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.UV_Points" comment="" origin="start">
    <use_struct name="UV_Points" expr="" type_name="UV_Points" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.UV_Points - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 6 && header.lists.Materials1 != 0" comment="">
    <jump offset="header.lists.Materials1" comment="" origin="start">
    <struct name="Materials1" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Materials1" comment="" origin="start">
    <use_struct name="Materials1" expr="" type_name="Materials1" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Materials1 - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 7 && header.lists.Materials2 != 0" comment="">
    <jump offset="header.lists.Materials2" comment="" origin="start">
    <struct name="Materials2" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Materials2" comment="" origin="start">
    <use_struct name="Materials2" expr="" type_name="Materials2" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Materials2 - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 8 && header.lists.Polygons != 0" comment="">
    <jump offset="header.lists.Polygons" comment="" origin="start">
    <struct name="Polygons" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Polygons" comment="" origin="start">
    <use_struct name="Polygons" expr="" type_name="Polygons" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Polygons - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 9 && header.lists.Textures1 != 0" comment="">
    <jump offset="header.lists.Textures1" comment="" origin="start">
    <struct name="Textures1" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Textures1" comment="" origin="start">
    <use_struct name="Textures1" expr="" type_name="Textures1" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Textures1 - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <if test="header.sections >= 10 && header.lists.Textures2 != 0" comment="">
    <jump offset="header.lists.Textures2" comment="" origin="start">
    <struct name="Textures2" type_name="" comment="" expr="">
    <use_struct name="relocation_group" expr="" type_name="relocation_group" comment=""/>
    <for name="data" count="relocation_group.num_offsets || relocation_group.num_offsets - 1" stop_test="relocation_group.num_offsets == 0" type_name="" comment="">
    <struct name="data" type_name="" comment="" expr="{this.offset_name.name}">
    <use_struct name="relocation_offset" expr="" type_name="relocation_offset" comment=""/>
    <jump offset="relocation_offset.data_offset + header.lists.Textures2" comment="" origin="start">
    <use_struct name="Textures2" expr="" type_name="Textures2" comment=""/>
    </jump>
    <jump offset="relocation_offset.string_offset + header.lists.Textures2 - 1" comment="" origin="start">
    <use_struct name="offset_name" expr="" type_name="offset_name" comment=""/>
    </jump>
    </struct>
    </for>
    </struct>
    </jump>
    </if>
    <data type="none" name="none"/>
    </binary_file_format>

    replace your existing _mdl0.xml with this^
    enjoy
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #54 on: December 07, 2010, 05:46:13 PM »


    lol..you definitely know more than me about mdl0s....

    edit: ill look  at the mdl0 stuff in prob an hour...gonna take a break lol
    « Last Edit: December 07, 2010, 05:49:56 PM by theshyguy » Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #55 on: December 07, 2010, 06:54:51 PM »


    lol..you definitely know more than me about mdl0s....

    edit: ill look  at the mdl0 stuff in prob an hour...gonna take a break lol


    heh...
    try being a game developer Tongue

    I know how models work...
    the thing I'm trying to figure out is the MDL0 shaders...

    heh...
    if I can figure those out, I could actually give Pikachu fur and make him look real Cheesy

    just look at this image:
    « Last Edit: December 07, 2010, 06:56:55 PM by Tcll » Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #56 on: December 07, 2010, 07:28:03 PM »


    niiicce...soo if you do add fur like that to pikachu wouldn't that mean rewriting the mdl0?...which means if I want to help I gotta figure out how they're set up...

    game developer huh? Have you used anything yet to create one? Ex I tried xna(indie games) and it was pretty fun...i wanted to make a shyguy fighting game...but that'd be copyright =p.
    Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #57 on: December 07, 2010, 07:47:09 PM »


    niiicce...soo if you do add fur like that to pikachu wouldn't that mean rewriting the mdl0?...which means if I want to help I gotta figure out how they're set up...
    well, there really wouldn't be too much to re-wire once the format is figured out :/

    my main goal right now is getting Pichu in brawl Cheesy (from melee)

    game developer huh? Have you used anything yet to create one? Ex I tried xna(indie games) and it was pretty fun...
    I use blender... although I havn't really came out with any games...
    but at least I know what to do, so that's a start... Tongue
    (I'm only 19, I'll get better, well... faster as I get older)

    i wanted to make a shyguy fighting game...but that'd be copyright =p.
    who cares...
    if that's true then my video would be copywrite
    title: "Pikachu vs Dark Pikachu"

    or my main vid (WIP) "Super Smash Bros. Revenge of the Forgotton"
    info: the vid includes the brawl chars, the 5 missing melee chars, and bomberman
    (BM was in brawl)
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    TheShyGuy
    Holy Kitten
    *
    Offline Offline

    Posts: 1003


  • Awards Super Saiyan Topic KCMM Veteran Heart Container Dedicated Hacker

  • View Profile Awards
    « Reply #58 on: December 07, 2010, 07:51:58 PM »


    lol i don't think they care much about vids no offense....but with xna you can sell your games on xbox 360 live market place ->indie games lol that why i wouldnt be able...id probably get sued =p

    edit: you got some errors in your newest code
    « Last Edit: December 07, 2010, 08:00:50 PM by theshyguy » Logged

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #59 on: December 07, 2010, 08:02:11 PM »


    lol i don't think they care much about vids no offense....but with xna you can sell your games on xbox 360 live market place ->indie games lol that why i wouldnt be able...id probably get sued =p

    I see...

    I'm not sure how yet, but you can compile your blender games into a single exe file :/
    (instead of having the blender player with a bunch of dll files and at least a single .blend file)

    heh, I know how to edit the exe to change the directory of the loaded .blend file Cheesy
    I learned how when I was trying to build my 3D-MUGEN game engine...

    it was supposed to be the exact same thing as MUGEN, but with a few extra features (excluding 3D)
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    Pages:  1 2 3 [4] 5 6 7 ... 25
    Print
    Jump to: