Home Gallery Resources The Team Rules chat Login Register
Pages: [1]
Author Topic: NOTES: DAT Resource Thread  (Read 2257 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
    « on: August 09, 2011, 05:03:46 PM »


    please don't post in this thread while it's unlocked...

    I'm posting completely new notes as my old notes are kinda out-of-date... heh

    thank you Smiley
    « Last Edit: August 11, 2011, 03:11:37 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.

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #1 on: August 11, 2011, 03:03:28 PM »


    first off, I must give full credit to Revel8n who discovered nearly

    all of the format Smiley

    The DAT standards are defined throughout the data

    the header:
    0x00(4): filesize
    0x04(4): data size
    0x08(4): relocation entry count
    0x0C(4): base count
    0x10(4): reference count
    0x14(4): unknown ('001B')
    0x18(4): unknown (0)
    0x1C(4): unknown (0)


    all offsets are relative to the data section,
    so be sure to add 32 beforereading the data

    the relocation table is located just after the data section
    follow to the offset (data size + 32) to get to the relocation table.
    NOTE: this is currently ignored as there's nothing but random data offsets w/in

    it

    if you want to get anywhere, you'll have to follow the tree of data starting at

    the bases.

    the bases are found just after the relocation table (data size + (relocation

    entry count * 4) + 32)
    bases/references:
    0x00(4): data offset
    0x04(4): string table offset

    the only well known base name is 'joint' which can be retrieved by splitting the

    full base name at each '_' and then looking at the 3rd value.
    eg: 'PlyPichu5K_Share_joint'

    the other most common name is 'matanim' which I currently am not looking at
    (not saying I won't look at it) Wink

    after the bases are the references, which I havn't actually seen... >_>
    (another thing to look into)

    following those is the string table, which is like any nintendo string table,

    with each string having an end character of '00'
    the table has no definitions or string lengths though >_>

    now that we have the basis of the DAT, we can start decoding the data structures.


    for the base name 'joint' the joint structure is the first one you'll

    use:
    joint:
    0x00 (4): unknown (0)
    0x04 (4): flags
    0x08 (4): child joint offset
    0x0C (4): sibling joint offset
    0x10 (4): data offset
    0x14(12): rotXYZ (float*3)
    0x20(12): scaXYZ (float*3)
    0x2C(12): locXYZ (float*3)
    0x38 (4): inv matrix offset
    0x3C (4): unknown (0)


    following the joint structure is the data structure:
    data:
    0x00 (4): unknown (0)
    0x04 (4): next data offset
    0x08 (4): material offset
    0x0C (4): object offset


    following the data structure is the material and object

    structures
    material:
    0x00 (4): unknown (0)
    0x04 (4): flags
    0x08 (4): texture offset
    0x0C (4): colors offset
    0x10 (4): unknown
    0x14 (4): unknown


    the colors for the materials are shared between other materials and objects
    (more explaination on that when we get to the objects)
    colors:
    0x00 (4): diffuse
    0x04 (4): ambient
    0x08 (4): specular
    0x0C (4): unknown (float)
    0x10 (4): unknown (float)


    and last for the materials is the textures:
    (almost completely unknown)
    texture:
    0x00 (4): unknown (0)
    0x04 (4): unknown (0)
    0x08 (4): unknown (0)
    0x0C (4): unknown (4)
    0x10 (4): unknown (0)
    0x14 (4): unknown (0)
    0x18 (4): unknown (0)
    0x1C (4): unknown (float) \
    0x20 (4): unknown (float)  scale??
    0x24 (4): unknown (float) /
    0x28 (4): unknown (0)
    0x2C (4): unknown (0)
    0x30 (4): unknown (0)
    0x34 (4): wrap_s
    0x38 (4): wrap_t
    0x3C (1): widthScale
    0x3D (1): heightScale
    0x3E (2): unknown (0)
    0x40 (4): unknown
    0x44 (4): unknown
    0x48 (4): unknown
    0x4C (4): image_header Offset
    0x50 (4): pallet_header Offset
    0x54 (4): unknown
    0x58 (4): unknown data offset (prbly flags)


    following that comes the image and pallet headers
    img_header:
    0x00 (4): data offset
    0x04 (2): height
    0x06 (2): width
    0x08 (4): format


    and the pallet header
    plt_header:
    0x00 (4): data offset
    0x04 (4): format
    0x08 (4): unknown
    0x0C (2): color count
    0x0E (2): unknown



    more to come
    (next is objects)



    « Last Edit: August 12, 2011, 08:12:13 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.

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #2 on: January 23, 2012, 04:24:12 AM »


    since I've created the reformatted thread, I'm opening this thread for discussion. Smiley
    (I'll finish what's left in the new thread...)

    almost everything needs to be redone anyways... heh
    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]
    Print
    Jump to: