Talk:MDL0 (File Format)

From Custom Mario Kart
Jump to navigation Jump to search

MDL, section 8

I have found string behind the last layer at offset 8. Overall I found 1885 valid string references, but also 13929 NULL and 18 other values. Because the most string contains a variation of "shadow" I believe that there is at least a conditional string. Here is a summary of all found strings (using 218 different offsets):

   1647  mat_shadow
     68  lambert1
     24  mat_shadow1
     20  shb_mat_shadow
     17  shadow
     10  map01
     10  lambert3
      9  shadow1
      4  map1
      4  map
      4  lambert318
      4  lambert239
      4  lambert233
      4  beginner_course_m
      2  nami_tx_v_x
      2  lambert9
      2  lambert42
      2  lambert404
      2  lambert400
      2  lambert351
      2  lambert326
      2  lambert321
      2  lambert313
      2  lambert282
      2  lambert264
      2  lambert242
      2  lambert238
      2  lambert19
      2  lambert11
      2  hikari1
      2  ex_lambert193
      2  ex_lambert186
      2  col_ROAD
      2  cactusColor_m
      2  c_road_m
      2  TR_sky
      2  ROAD_c
      2  ROAD_ami
      2  Map
      2  MAP_m
      1  wing1
      1  m_ef_bkBoard
      1  glow
      1  body2
I'm not aware of this. Can you give me some examples of which BRRESs have this in.
Chadderz 17:38, 6 May 2011 (CEST)
Race/Common.szs -> banana_s.brres
Race/Kart/ldf_bike_blue-la_mii_f_4.szs -> kart_model.brres
Race/Course/old_donkey_gc_d.szs -> DKrockGC.brres
Race/Course/boardcross_course.szs -> itembox.brres

And these are the sizes of the appended data areas:

   6596 * 0x180
   1884 * 0x184
   1459 * 0x188
   3128 * 0x18c
    759 * 0x190
   3698 * 0x194
   1432 * 0x198
   1569 * 0x19c = 0x180 + 0x1c

      2 * 0x598
     12 * 0x59c
      9 * 0x5a0
   1756 * 0x5a4
      4 * 0x5a8
     12 * 0x5ac
     88 * 0x5b0
      2 * 0x5b4 = 0x598 + 0x1c

It seems that there are 2 different sizes plus a little padding.

Wiimm 18:16, 6 May 2011 (CEST)
This was a failure of my. It apperars if the layer count is 0 and the layer offset points to the beginning of section 8. Then I detect the name of the base structure.
Wiimm 13:43, 11 May 2011 (CEST)


I hex edited a model so the X and Y texture settings were 02 (mirror) but showed no difference (Layers section, addresses 0x18 and 0x1c. I checked with another model, a mach bike model, and it has 00000002 there on both). I'm too lazy to edit my uv maps in 3dsmax (I'm trying to make a character but the textures are weird). I took a quick look through the page but didn't see anything else that would change this setting. Any help?
Guilmon35249vr 03:16, 16 September 2011 (CEST)

Also, has anyone ever tried adding a texture link to a map_model? --Guilmon35249vr 23:39, 25 September 2011 (CEST)

Adding polygons to pre-existing models?

There are people trying to get Paratroopa into Mario Kart Wii. After taking a look through Koopa Troopa's files, I noticed he already has EVERYTHING needed to make Paratroopa work.. except a wing model. He even has bones for the wings already!
http://i349.photobucket.com/albums/q364/MikeYoshi/koopatroopawings.png
And he has textures for them too. I would assume that.. since the bones are there, they're also animated (Recycled animations happen in MKW already.. Yoshi/Birdo share some animations. This would make me thing that Koopa Troopa and Paratroopa would share animations too). Has anyone found a way to hex edit in a new polygon?
--Guilmon35249vr 01:23, 9 November 2011 (CET)

So with nothing more then hex editing this is possible?
I haven't seen any animated character yet.
kHacker35000vr 07:21, 9 November 2011 (CET)

Is the MDL0 page correct?

At the moment I try to understand MDL0. But I can't follow the the descriptions.

Example "section 1 - bones"
The page says, that the basic structure is 0xd0 (=208) byte long, but if analyzing Nintendo Moonview Highway, it contains 26 MDL0 files and section 1 is always smaller than 0xd0, the size is most 0x28.

I can find such things also for some other sections. Either the page info is wrong or I don't understand the section concept of BRESS sub files.

Not sure what the problem is here; the page seems to be correct. I suppose calling it section 1 is a little ambiguous; it's the section 1 entry's format. The pointer at the begining is to a BRRES Index Group which then in turn points to the data described.
Chadderz 12:07, 8 January 2012 (CET)

The index group points to the different sub files (MDL0, TEX0, PAT0,...). But the MDL0 has also sections as described here. A hexdump of a typical MDL0:

MDL0 file header (equal structure for all BRRES sub files)
     0: 4d 44 4c 30  00 00 31 60  00 00 00 0b  00 00 00 00  :MDL0..1`........:
14 section offsets (is this my misunderstanding?)
    10: 00 00 00 9c  00 00 00 e4  00 00 01 2c  00 00 01 64  :...........,...d:
    20: 00 00 01 8c  00 00 01 c4  00 00 00 00  00 00 00 00  :................:
    30: 00 00 01 fc  00 00 02 34  00 00 02 6c  00 00 02 a4  :.......4...l....:
    40: 00 00 00 00  00 00 00 00
string pointer
    40:                           00 00 31 98
beginning of MDL0 header
    40:                                        00 00 00 40  :..........1....@:
    50: ff ff ff b4  00 00 00 00  00 00 00 00  00 00 02 32  :...............2:
...

Interpreting the offset table, section 01 starts a 0xe4 and ends at 0x12c (length 0x48).
Wiimm 12:23, 8 January 2012 (CET)

Yes; if you look carefully that 0x48 data structure is a BRRES Index Group structure. It then points to the section 1 bones. It's another level of indirection to allow multiple bones, ploygones, etc.
Chadderz 07:15, 9 January 2012 (CET)
Click!! Wiimm 09:06, 9 January 2012 (CET)