The Forum is up for sale: XeNTaX Forum looking for new owner

World of Tanks Map format.

Post questions about game models here, or help out others!
SkaceKachna
advanced
Posts: 66
Joined: Thu Jan 14, 2016 11:32 am
Has thanked: 9 times
Been thanked: 19 times

Re: World of Tanks Map format.

Post by SkaceKachna »

Those matrixes are objects positions (probably just objects, but it's only speculation). Tried to visualise them on hills map:
2016-01-20 08_35_56-WoT Tank Viewer.jpg
Also:
BWSG contains only vertices
BWST probably contains aggregated .visual files ... but only names and keys? BWSS looks suspisious

The string lists in both of those files contains filenames AND keywords. For example, in BWSS, along with .dds files and .model files you can find strings:

Code: Select all

destBlend
diffuseMap
diffuseMap2
doubleSided
all those keys can be found in .visual file

Last word: textures probably aren't packed inside space.bin after all?
You do not have the required permissions to view the files attached to this post.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

I see you figured out how the terrain is stored :) That's good.

I can clearly see the location of the fences and even the olive shrubs in that image.
Also the location of the mine entrance model.

Yes.. The matrices are for sure the objects positions( trees, decals, anything that has a location on the map)

Knowing that each item has a matrix and they can be different types might help sort this out.
The 2 tables that have the strings in them "BWST" and "BWSG" have the entry list at the start.
The data length is 3 int32s or 12 bytes.
The first of these is a cryptic number followed by the length of the string and its offset from the start of the string data.

Figuring out what this that int32 is and what it's used for would be a great step towards sorting out this file.
That int32 is not a pointer.. it becomes to large and at some point is larger than the entire files length.
It could be an index and a pointer mixed mixed together some how. It could also be an ID number.


We know that there are at least 3 types of objects.
Models like houses.. rocks... fences..
Tree Models..
Decals..

I think looking through the list of strings and picking out the same types and than comparing them with that cryptic number might help?
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

Off topic..
Some people are trying to hack my server :
IP 61.216.2.13
Taipei, T'ai-pei (03), Taiwan
and
IP 80.254.121.85
Rostov-on-don, Rostov (61), Russian Federation

If any of you own this IP.. you had better stop trying to hack my FTP.
If you don't.. I will band the entire country by IP mask!
This means you will NEVER get download addresses again!!!
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

I dumped the string entries for BWSG and BWST.
These text files have the hex code that is associated with them.
It might help some one sort this out.
http://209.159.152.184:8080/junk/
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

Ok...
I striped out all the cdata strings from BWST
These are the map sections.
Ensk has 64 grid sections ( 8 x 8 )
The cryptic:nnnn is the cryptic Int32 in the index list at the start of BWST
http://209.159.152.184:8080/junk/BWST_cdata_list.txt
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

Ok...
SpTr starts with the length of the data type... followed by the number of entries
After this is the data list:
16 floats.. A Matrix. + 3 int32s

the data length is 0x4C or 76 bytes or 19 int32s
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

I am having no luck so far figuring out what those Int32 are for.
Like the SpTr file list has a matrix, (16 floats) the int32 and then 2 more int32s that are always = to 1.

Code: Select all

A3E62BBC 00000000 A2B6053F 00000000
00000000 D87F393F 00000000 00000000
01CB605B F0000000 A3E62BBC 00000000
08BF9AC3 FD53AE41 1DA4BDC3 0000803F
77BDC315 01000000 01000000
Here is the list of all trees in ensk.

Code: Select all

0000: Cryptic:15c3bd77 : speedtree/06_Ensk/Bush.spt
0001: Cryptic:15d77cf5 : speedtree/06_Ensk/Spruce_1.spt
0002: Cryptic:49dea56c : speedtree/06_Ensk/BirchFall.spt
0003: Cryptic:70b77084 : speedtree/06_Ensk/DryTree_1.spt
0004: Cryptic:91a713e5 : speedtree/06_Ensk/HorseChestnut_1.spt
0005: Cryptic:b80b2442 : speedtree/06_Ensk/AppleTree.spt
0006: Cryptic:bfef5841 : speedtree/06_Ensk/Shrub.spt
0007: Cryptic:c6d3233b : speedtree/06_Ensk/Linden_1.spt
0008: Cryptic:f68c7360 : speedtree/06_Ensk/Maple.spt
0009: Cryptic:fdeacdc6 : speedtree/06_Ensk/Oak.spt
You do not have the required permissions to view the files attached to this post.
Last edited by Coffee on Thu Jan 21, 2016 5:45 pm, edited 1 time in total.
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

I just spotted a match in the code above.

Reverse the cryptic for the first tree and it matches the cryptic in the matrix. The 17th int32.
The cryptic in the list of trees is backwards because of little endian. It's shown as its actual value.
Hmmmm....
I'd love to change the world but I can't get my hands on the code.
SkaceKachna
advanced
Posts: 66
Joined: Thu Jan 14, 2016 11:32 am
Has thanked: 9 times
Been thanked: 19 times

Re: World of Tanks Map format.

Post by SkaceKachna »

Good job so far! Tried everything to match those cryptic numbers with positions in file or table but with no results.
I tried reading it asi two uint16, reading the size as only uint16 and then reading uint32 and uint16 .... but it never pointed to any plausible location.

I'm currently having my finals, so I don't have much time :[
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

SkaceKachna wrote: I'm currently having my finals, so I don't have much time
Stay on those FINALS... This is NO WHERE near as important as your education!!!
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

Ok...
Doing a search of the SpTr section I found 207 matches for the first trees cryptic int32.
The interesting thing is, at the end of the file there are some left over values.
I would bet these are what associates all of these trees with some more info.

Trees have a special shader and some other flags that are set.
If we can figure out how these last numbers are associated with the hidden .visual info, I think it will unlock all the files formats.
Here are those last int32s in the SpTr section.

Code: Select all

18000000
0000C8C3
3CDF27C0
0000C8C3
0000C843
00000000
00000000
I doubt the last 2 are meaningful.. Probably just padding to align the data??
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

I am uploading all the split off sections from the space.bin (ensk map)
This will take some time.. its something like 36 meg of data.
Edit:
Its done uploading.
These splits will make it easier to look at the data.
They are named the same as the sections in the space.bin
There are also some other helpers in there that I created by extracting just some of the data.
The space.bin is the ENSK file..
Ensk is 8 x 8 sections. It is the smallest map in the game. I chose this because of its size. Its less data to weed through.

http://209.159.152.184:8080/junk/
You can right click and save these to your local hard drive.
Last edited by Coffee on Thu Jan 21, 2016 4:47 pm, edited 1 time in total.
I'd love to change the world but I can't get my hands on the code.
SkaceKachna
advanced
Posts: 66
Joined: Thu Jan 14, 2016 11:32 am
Has thanked: 9 times
Been thanked: 19 times

Re: World of Tanks Map format.

Post by SkaceKachna »

Hey, maybe using the hangar_v2 space would make things easier? There aren't any trees, but it's much smaller ...
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

SkaceKachna wrote:Hey, maybe using the hangar_v2 space would make things easier? There aren't any trees, but it's much smaller ...
That's a good idea but I have been staring at the ensk files for so long its like a friend now...
I'd love to change the world but I can't get my hands on the code.
User avatar
Coffee
ultra-veteran
ultra-veteran
Posts: 518
Joined: Thu Aug 06, 2015 5:57 pm
Has thanked: 74 times
Been thanked: 205 times

Re: World of Tanks Map format.

Post by Coffee »

Code: Select all

18000000
0000C8C3
3CDF27C0
0000C8C3
0000C843
00000000
00000000
I found a match in "BWT2"
I'm assuming T2 = Terrain 2
At the start of this file there are int32s that = the maps cdata names and some other data.
You do not have the required permissions to view the files attached to this post.
I'd love to change the world but I can't get my hands on the code.
Post Reply