XeNTaX Forum Index
Forum MultiEx Commander Tools Tools Home
It is currently Thu Nov 23, 2017 10:32 am

All times are UTC + 1 hour


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 81 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
Author Message
 Post subject: Heroes of Might and Magic 6
PostPosted: Sun Mar 18, 2012 3:39 am 
Offline
M-M-M-Monster veteran
M-M-M-Monster veteran

Joined: Sat Apr 09, 2011 1:22 am
Posts: 2387
Has thanked: 170 times
Have thanks: 277 times














You can make the ads go away by registering

Noesis script: http://db.tt/TZ3xVIru

Someone sent some samples today so I looked at it.

Based on the initial parsing I've done, it's a chunk-based format with non-obvious tags (well, it's the stuff that appears before the chunk size, but they seem kind of random...)

I find myself skipping 3 bytes and 9 bytes again and again, so that might say something about the structure of each chunk.

Anyways I've put together a parser for some weapons (the ones with "LivingArtifact" in the name). It doesn't load any of the other ones I got (the vertex format is not the same).

The materials are a little farther past the faces, but I probably won't get to them until the general parsing format is figured out. If someone can figure out how the chunks and chunk sizes should be parsed and manages to skip over all of the structs, that would make it a lot easier. I then just have to identify which chunks I need to read and which I can skip.

Someone should upload some models with the corresponding textures (the texture path is given in each material struct, and the struct itself is pretty simple)

Image

_________________
Model Import Plugins/Scripts

Noesis Plugins | Reference files

Reference
Guide to 3D model reversal | 3D glossary


Last edited by finale00 on Fri Apr 13, 2012 11:33 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sun Mar 18, 2012 10:06 pm 
Offline
n00b

Joined: Mon Apr 12, 2010 4:08 pm
Posts: 16
Has thanked: 5 times
Have thanks: 0 time
Here's the wolf .gobj files with it's corresponding textures. Is this what you needed finale00?


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sun Mar 18, 2012 10:19 pm 
Offline
M-M-M-Monster veteran
M-M-M-Monster veteran

Joined: Sat Apr 09, 2011 1:22 am
Posts: 2387
Has thanked: 170 times
Have thanks: 277 times
Ya, that will help when trying to add UV's.

_________________
Model Import Plugins/Scripts

Noesis Plugins | Reference files

Reference
Guide to 3D model reversal | 3D glossary


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Mon Mar 19, 2012 10:22 pm 
Offline
veteran

Joined: Thu Jan 14, 2010 4:38 pm
Posts: 80
Has thanked: 1 time
Have thanks: 3 times
Will try to add some gobj and textures.
here's sarah and xana inclusive textures
http://dl.dropbox.com/u/6252145/asw/Data.zip


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Thu Mar 22, 2012 7:09 pm 
Offline
n00b

Joined: Sat Feb 18, 2012 6:47 pm
Posts: 15
Has thanked: 3 times
Have thanks: 0 time
Hey, guys! So, any luck finding UV's for Heroes6?


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sat Mar 24, 2012 8:56 pm 
Offline
mega-veteran
mega-veteran
User avatar

Joined: Fri Aug 05, 2011 9:31 pm
Posts: 240
Location: Antwerp
Has thanked: 13 times
Have thanks: 41 times
http://dl.dropbox.com/u/61765035/HoMM6/fmt_homm6_gobj.py
Image

This script loads all the models finale00 posted. I'll look for UV data.
I also saw something that resembled bone and texture names so i'll have a look at that as well.


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sun Mar 25, 2012 3:19 am 
Offline
M-M-M-Monster veteran
M-M-M-Monster veteran

Joined: Sat Apr 09, 2011 1:22 am
Posts: 2387
Has thanked: 170 times
Have thanks: 277 times
There are a lot of odd bytes scattered throughout the format.

It's definitely chunk-based, but it's littered with seemingly random 0x35 and 0x02 everywhere.

For example, if you go to offset 32, you will read an integer, followed by 0x35.
Now if you look at the size of the file, and you subtract 37 from it, that is the integer you just read.

And not surprisingly, you are 37 bytes into the file.

Perhaps it is like open-brace vs close-brace? Everytime you read 0x35, it's the start of a chunk.

Now let's assume that's how it works.

Let's look for some tags. At offset 37, you see an short followed by an int.

Code:
word tag
dword chunkSize
byte ? #indicates what kind of data follows


Now if you seek that many bytes of data, you'll find yourself just after another 0x35, followed by another chunk.

The chunk parser:

Code:
def parse_file(self):
   '''Main parser method'''
   
   idstring = self.inFile.readBytes(4)
   self.inFile.readUInt()
   self.inFile.readBytes(4)
   self.inFile.seek(18, 1)
   
   while not self.inFile.checkEOF():
      tag = self.inFile.readUShort()
      size = self.inFile.readUInt()
      self.inFile.readByte()
      if tag == 0x2031:
         print("start")
      else:
         self.inFile.seek(size, 1)
         print(tag, size, self.inFile.tell())


It actually looks like there are specific patterns for that random byte I listed in the chunk struct.

If it's a 0x35, then it's followed by another chunk.
If it's 0x00, then you read a word (0x01 0x40), followed by an int, followed by data.
If it's 0x04, ...

and ya, I think it should be closer to how we should be parsing the file.

_________________
Model Import Plugins/Scripts

Noesis Plugins | Reference files

Reference
Guide to 3D model reversal | 3D glossary


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sun Mar 25, 2012 4:32 am 
Offline
M-M-M-Monster veteran
M-M-M-Monster veteran

Joined: Sat Apr 09, 2011 1:22 am
Posts: 2387
Has thanked: 170 times
Have thanks: 277 times
I've updated the script at the top.

Right now the main chunk parser is very ugly. I haven't figured out a nice way to go from chunk to chunk. You see things like flag and tag2 which is kind of weird. But I think this is a better approach because right after the index buffer, you start getting into a whole lot of chunks...and hard-coding it might be difficult.

The flag should be important though...

Also, for the vertex and face sections, right after reading the section size, you also found that you had to read a byte to check if it's 16 or 32. If it's 16, then it's followed by 3 bytes. If 32, then it's followed by 4 bytes. Those bytes are the size of the data, but without the padded 0's.......o.O

Kind of interesting.

Also, there might be some sort of byte-alignment. I am not sure, but each chunk might be padded with 0x2's just to make the chunk size a multiple of 4 or 16.

Anyways here's Sarah. The UV's should be stored with the vertices, but they might have done something like ...reading a half-float x, and then let u = 1 - x, v = x. Simply trying out different offsets didn't work lol

Image

_________________
Model Import Plugins/Scripts

Noesis Plugins | Reference files

Reference
Guide to 3D model reversal | 3D glossary


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Sun Mar 25, 2012 4:01 pm 
Offline
veteran

Joined: Thu Jan 14, 2010 4:38 pm
Posts: 80
Has thanked: 1 time
Have thanks: 3 times
finale00 wrote:
I've updated the script at the top.

Right now the main chunk parser is very ugly. I haven't figured out a nice way to go from chunk to chunk. You see things like flag and tag2 which is kind of weird. But I think this is a better approach because right after the index buffer, you start getting into a whole lot of chunks...and hard-coding it might be difficult.

The flag should be important though...

Also, for the vertex and face sections, right after reading the section size, you also found that you had to read a byte to check if it's 16 or 32. If it's 16, then it's followed by 3 bytes. If 32, then it's followed by 4 bytes. Those bytes are the size of the data, but without the padded 0's.......o.O

Kind of interesting.

Also, there might be some sort of byte-alignment. I am not sure, but each chunk might be padded with 0x2's just to make the chunk size a multiple of 4 or 16.

Anyways here's Sarah. The UV's should be stored with the vertices, but they might have done something like ...reading a half-float x, and then let u = 1 - x, v = x. Simply trying out different offsets didn't work lol

Image

I've taken a look at at the converted sarah model, and noticed the whole mesh is duplicated - even parts of the mesh which definitely aren't two sided. So it's possible you already are reading something else in the format as well.

possible the UVW's even.


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Mon Mar 26, 2012 10:43 pm 
Offline
mega-veteran
mega-veteran
User avatar

Joined: Fri Aug 05, 2011 9:31 pm
Posts: 240
Location: Antwerp
Has thanked: 13 times
Have thanks: 41 times
I'm probably doing something wrong, but I made python loop through the vertexdata calculating half-floats. moving 1 byte to the right each loop, starting at offset 6 (after XYZ).
Then made it print out the data for the first 64 vertices (skipping each offset that had a NaN in it's array).

Code:
pos_off 0
1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000 
1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000 
1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000 
1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000 
pos_off 4
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000008  0.000008  0.000015  0.000015  0.000008  0.000008  0.000015  0.000015  0.000008  0.000008  0.000014  0.000015  0.000015  0.000014 
pos_off 10
132.875000  61.218750  445.750000  31.234375  1.006836  8.867188  0.107849  78.937500  2.591797  0.027939  51.468750  1.881836  0.028427  0.009514  0.024643  0.050018 
2.388672  0.084900  51.968750  2.435547  27.609375  17.234375  2.310547  52.718750  14.242188  1.999023  11.679688  1.889648  0.036102  1.756836  23.609375  17.109375 
1.709961  0.092224  22.109375  41.468750  20.984375  1.850586  35.718750  29.234375  2.513672  56.218750  42.718750  3.451172  103.937500  68.937500  6.121094  203.875000 
153.875000  10.554688  531.500000  199.875000  177.875000  19.109375  471.750000  172.875000  229.875000  29.859375  487.750000  253.875000  244.875000  36.218750  44.718750  395.750000 
pos_off 13
0.000007  0.000007  0.000008  0.000007  0.000007  0.000007  0.000007  0.000007  0.000007  0.000006  0.000006  0.000006  0.000006  0.000006  0.000006  0.000006 
0.000006  0.000006  0.000006  0.000006  0.000006  0.000006  0.000006  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005 
0.000005  0.000006  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000005  0.000004  0.000004 
0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004 
pos_off 14
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 15
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 16
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 21
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
pos_off 22
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 23
-0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000 
-0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000 
-0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000 
-0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000  -0.000000 
pos_off 24
1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000 
1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000 
1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000 
1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000  1.875000 
pos_off 25
0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004 
0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004 
0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004 
0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004  0.000004 
pos_off 26
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 27
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 28
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 29
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 30
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 31
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 32
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 33
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 34
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 35
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 36
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 37
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 41
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015  0.000015 
pos_off 42
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 43
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 44
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 45
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 46
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 47
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 48
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 49
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 50
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 51
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 52
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 53
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 54
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
pos_off 55
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 
0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000 


I don't really see anything that could resemble UV data, unless I'm not supposed to skip lists with NaN in it.


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Tue Mar 27, 2012 9:37 pm 
Offline
mega-veteran
mega-veteran
User avatar

Joined: Fri Aug 05, 2011 9:31 pm
Posts: 240
Location: Antwerp
Has thanked: 13 times
Have thanks: 41 times
Tried creating a 010 template for the format but it made my head explode.

Chunks start with 0x35 and end with 0x02.
After the 0x35 come 2 bytes which I called "flag". They seem to increase in numbers for example: 1010->2010->3010 and elsewhere it's 1010->1020(->2020->3020->4020)->1030 etc.
So a lot of chunks in chunks and sometimes you have chunks 0x3102 which aren't preceded by 0x35 but they do end with 0x02. These are the most annoying, I can't put a fixed format on them and started naming them x3102, x3102_2010 etc.


Attachments:


You do not have the required permissions to view the files attached to this post. Register to gain access.



Last edited by Demonsangel on Wed Mar 28, 2012 12:24 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Wed Mar 28, 2012 12:17 am 
Offline
M-M-M-Monster veteran
M-M-M-Monster veteran

Joined: Sat Apr 09, 2011 1:22 am
Posts: 2387
Has thanked: 170 times
Have thanks: 277 times
I think the 2-byte "flag" is just the chunk-type. The Ogre 3D and Lightwave formats both use those kinds of numbers for their chunks where the high-order bits represent the general type of chunk (eg: mesh, material, etc) whereas the low-order bits represent a subtype within that chunk type (eg: vertices, normals, specific material attributes, etc)

I was thinking along the same lines where 0x35 is the start of a chunk and 0x02 is the end, but the very first chunk size was throwing me off.

It is probably just one of those parenthesis-matching things

Regarding 0x31 0x02, it might be saying like, I treat it like any other chunk. It doesn't seem to be that much different from reading an 0x35.

_________________
Model Import Plugins/Scripts

Noesis Plugins | Reference files

Reference
Guide to 3D model reversal | 3D glossary


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Wed Mar 28, 2012 5:00 pm 
Offline
mega-veteran
mega-veteran
User avatar

Joined: Fri Aug 05, 2011 9:31 pm
Posts: 240
Location: Antwerp
Has thanked: 13 times
Have thanks: 41 times
Can you find anything that even resembles UV data?
There's no extra chunks that could contain these.


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Wed Mar 28, 2012 8:39 pm 
Offline
mega-veteran
mega-veteran

Joined: Thu Dec 07, 2006 11:25 pm
Posts: 288
Has thanked: 6 times
Have thanks: 54 times
Holly s**t ! I did find the missing UV datas....


Top
 Profile  
 
 Post subject: Re: Heroes of Might and Magic 6
PostPosted: Wed Mar 28, 2012 8:45 pm 
Offline
mega-veteran
mega-veteran

Joined: Thu Dec 07, 2006 11:25 pm
Posts: 288
Has thanked: 6 times
Have thanks: 54 times
X,Y,Z: HalfFloat
3*2 bytes: Normals (?)
4 bytes: Unknown
U: (2 bytes Word) / 32768
V: 1-(2 bytes Word) / 32768


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 81 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: Necroxide and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group